aboutsummaryrefslogtreecommitdiff
path: root/wiiremote/aka.wiiremote_b3_pd-port.patch
diff options
context:
space:
mode:
Diffstat (limited to 'wiiremote/aka.wiiremote_b3_pd-port.patch')
-rw-r--r--wiiremote/aka.wiiremote_b3_pd-port.patch176
1 files changed, 176 insertions, 0 deletions
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 <CoreFoundation/CoreFoundation.h>
++#include <IOBluetooth/Bluetooth.h>
+ #include <IOBluetooth/IOBluetoothUserLib.h>
+
++#include <stdio.h>
++#include <string.h>
++
+ 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 <stdio.h>
++
+ #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 */
+ }
+