From 96715c9b2b6afb2f677aaa3d351c26627fd6732b Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 28 Dec 2006 23:16:03 +0000 Subject: ported b4 from Masayuki Akamatsu, fixed one minor warning svn path=/trunk/externals/io/; revision=7092 --- wiiremote/aka.wiiremote_b3_pd-port.patch | 176 +++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 wiiremote/aka.wiiremote_b3_pd-port.patch (limited to 'wiiremote/aka.wiiremote_b3_pd-port.patch') diff --git a/wiiremote/aka.wiiremote_b3_pd-port.patch b/wiiremote/aka.wiiremote_b3_pd-port.patch new file mode 100644 index 0000000..8609c62 --- /dev/null +++ b/wiiremote/aka.wiiremote_b3_pd-port.patch @@ -0,0 +1,176 @@ +--- /Users/hans/Documents/Research/HID/wiiremote/aka.wiiremote-b3-src/wiiremote.h 2006-12-20 05:29:31.000000000 -0500 ++++ wiiremote.h 2006-12-28 01:36:00.000000000 -0500 +@@ -2,8 +2,13 @@ + // Copyright by Masayuki Akamatsu + // Based on "DarwiinRemote" by Hiroaki Kimura + ++#include ++#include + #include + ++#include ++#include ++ + typedef struct { + int x, y, s; + } IRData; +--- /Users/hans/Documents/Research/HID/wiiremote/aka.wiiremote-b3-src/aka.wiiremote.c 2006-12-20 06:09:10.000000000 -0500 ++++ aka.wiiremote.c 2006-12-28 17:47:08.000000000 -0500 +@@ -4,15 +4,28 @@ + // 1.0B2 : 2006.12.15 + // 1.0B3 : 2006.12.20 + ++#ifdef PD ++#include "m_pd.h" ++#define SETLONG SETFLOAT ++static t_class *wiiremote_class; ++#else /* Max */ + #include "ext.h" ++#endif /* PD */ ++ + #include "wiiremote.h" + ++#include ++ + #define kInterval 100 + #define kMaxTrial 100 + + typedef struct _akawiiremote + { ++#ifdef PD ++ t_object x_obj; ++#else /* Max */ + struct object obj; ++#endif + + WiiRemoteRef wiiremote; + +@@ -47,7 +60,11 @@ + void *akawiiremote_new(t_symbol *s, short ac, t_atom *av); + void akawiiremote_free(t_akawiiremote *x); + ++#ifdef PD ++void wiiremote_setup() ++#else /* Max */ + void main() ++#endif /* PD */ + { + NumVersion outSoftwareVersion; + BluetoothHCIVersionInfo outHardwareVersion; +@@ -66,6 +83,32 @@ + return; + } + ++ post("aka.wiiremote 1.0B3-UB by Masayuki Akamatsu"); ++ ++#ifdef PD ++ post("\tPd port by Hans-Christoph Steiner"); ++ ++ wiiremote_class = class_new(gensym("wiiremote"), ++ (t_newmethod)akawiiremote_new, ++ (t_method)akawiiremote_free, ++ sizeof(t_akawiiremote), ++ CLASS_DEFAULT, ++ A_GIMME,0); ++ ++ class_addbang(wiiremote_class,(t_method)akawiiremote_bang); ++ class_addmethod(wiiremote_class,(t_method)akawiiremote_connect,gensym("connect"),0); ++ class_addmethod(wiiremote_class,(t_method)akawiiremote_disconnect,gensym("disconnect"),0); ++ class_addmethod(wiiremote_class,(t_method)akawiiremote_motionsensor,gensym("motionsensor"), A_DEFFLOAT, 0); ++ class_addmethod(wiiremote_class,(t_method)akawiiremote_irsensor,gensym("irsensor"), A_DEFFLOAT, 0); ++ class_addmethod(wiiremote_class,(t_method)akawiiremote_vibration,gensym("vibration"), A_DEFFLOAT, 0); ++ class_addmethod(wiiremote_class,(t_method)akawiiremote_led,gensym("led"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); ++ ++ class_addmethod(wiiremote_class,(t_method)akawiiremote_getbatterylevel,gensym("getbatterylevel"),0); ++ class_addmethod(wiiremote_class,(t_method)akawiiremote_getexpansionstatus,gensym("getexpansionstatus"),0); ++ class_addmethod(wiiremote_class,(t_method)akawiiremote_getledstatus,gensym("getledstatus"),0); ++ ++ class_addmethod(wiiremote_class,(t_method)akawiiremote_assist,gensym("assist"),A_CANT,0); ++#else /* Max */ + setup((t_messlist **)&akawiiremote_class, (method)akawiiremote_new, (method)akawiiremote_free, (short)sizeof(t_akawiiremote), 0L, A_GIMME, 0); + + addbang((method)akawiiremote_bang); +@@ -81,8 +124,7 @@ + addmess((method)akawiiremote_getledstatus,"getledstatus",0); + + addmess((method)akawiiremote_assist,"assist",A_CANT,0); +- +- post("aka.wiiremote 1.0B3-UB by Masayuki Akamatsu"); ++#endif /* PD */ + + akawiiremote_count = 0; + } +@@ -96,7 +138,11 @@ + if (x->wiiremote->device == nil) + return; // do nothing + ++#ifdef PD ++ outlet_float(x->buttonsOut, (t_float) x->wiiremote->buttonData); ++#else /* Max */ + outlet_int(x->buttonsOut, x->wiiremote->buttonData); ++#endif /* PD */ + + if (x->wiiremote->isIRSensorEnabled) + { +@@ -244,11 +290,13 @@ + + void akawiiremote_assist(t_akawiiremote *x, void *b, long m, long a, char *s) + { ++#ifndef PD /* Max */ + if (m==ASSIST_INLET) + { + sprintf(s,"connect, bang, disconnect...."); + } + else ++#endif /* NOT PD */ + { + switch(a) + { +@@ -264,6 +312,19 @@ + + void *akawiiremote_new(t_symbol *s, short ac, t_atom *av) + { ++#ifdef PD ++ t_akawiiremote *x = (t_akawiiremote *)pd_new(wiiremote_class); ++ ++ x->wiiremote = wiiremote_init(); ++ ++ x->clock = clock_new(x, (t_method)akawiiremote_clock); ++ ++ /* create anything outlet used for HID data */ ++ x->statusOut = outlet_new(&x->x_obj, 0); ++ x->buttonsOut = outlet_new(&x->x_obj, &s_float); ++ x->irOut = outlet_new(&x->x_obj, &s_list); ++ x->accOut = outlet_new(&x->x_obj, &s_list); ++#else /* Max */ + t_akawiiremote *x; + + x = (t_akawiiremote *)newobject(akawiiremote_class); +@@ -271,13 +332,14 @@ + x->wiiremote = wiiremote_init(); + + x->clock = clock_new(x, (method)akawiiremote_clock); +- x->trial = 0; +- x->interval = kInterval; + + x->statusOut = outlet_new(x, 0); + x->buttonsOut = intout(x); + x->irOut = listout(x); + x->accOut = listout(x); ++#endif /* PD */ ++ x->trial = 0; ++ x->interval = kInterval; + + akawiiremote_count++; + return x; +@@ -290,6 +352,10 @@ + wiiremote_disconnect(); + + clock_unset(x->clock); ++#ifdef PD ++ clock_free(x->clock); ++#else /* Max */ + freeobject((t_object *)x->clock); ++#endif /* PD */ + } + -- cgit v1.2.1