aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: 5f5df00b3fa8583853acea7064bf20fd6b6c2f33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
==============================================================================
= define generic event timestamp struct (probably Pd-ized input_event )

The question is whether the timeval is needed at all.  Linux and Darwin
support it.  Currently, I can only think of UPS PWR events actually using
timevals.



===============================================================================
= HID Manager Type/Usage/UsagePage -> Linux Type/Code mapping

 UsagePage


LED UsagePage => ev_led
LED Usages == Linux ev_led codes



==============================================================================
= device selection 

by # (1,2,...), generic name (mouse1, joystick2, tablet3...), or device name
("Trackpad", "Microsoft 5-button Mouse with IntelliEye(TM)", etc.)

 first get # working, that's probably the easiest

by #
------------------------------
GNU/Linux
    sprintf(x_devname->s_name,"/dev/input/event%d",deviceNum + 1);

Darwin
	 prHIDBuildDeviceList();
	 currentHIDDevice = discoveredDevices[gNumberOfHIDDevices];


==============================================================================
= figure out how to store device ID in obj struct

(in SC_HID.c its locID and cookie)

- it should probably just store the Pd arguments

- this will have to be dealt with when the "mouse0", "joystick2" arguments are
  implemented 


==============================================================================
= pollfn for mouse-like devices

- determine whether using a pollfn is actually better than using a t_clock

- any device that acts like a system mouse can be used with a pollfn, since
  the mouse data will go thru Pd's network port, triggering the pollfn.

- this is probably unnecessary since the t_clock seems to run well at 1ms delay


==============================================================================
= function return values

- most functions probably do not need return values

- return (1) seems to be the default on many functions


==============================================================================
= control input messages

- the [delay( message should be replaced by the [poll( msg

- should [poll( also start things, or should it just set polling time?

- are [start( and [stop( needed?  is 0/1 enough?


==============================================================================
= ditch x_devname in hid_linux.c

- use sprintf(arg,"/dev/input/event%d",x_ddevice_number); instead



==============================================================================
=  consistent console output 

void hid_post(const char *format, const char *);


==============================================================================
= if device is closed and obj is started, open device and start


______________________________________________________________________________
------------------------------------------------------------------------------
BUGS
______________________________________________________________________________
------------------------------------------------------------------------------

______________________________________________________________________________
- BUG x->x_delay reset to default when device is opened

______________________________________________________________________________
- BUG: [mouse] and [joystick] arguments don't work to open device

______________________________________________________________________________
- BUG: [open('ing a device causes all other active [hid] objs to have their
devices closed

- this means only one [hid] object can have an open device at one time

- I thought this was due to the hid_close_device() call in hid_open(), which releases
  the device list, but this doesn't seem to be the case.

______________________________________________________________________________
- BUG: getting events from the queue doesn't output a 0 value event when the
  motion stops, so when the mouse stops, the sound keeps playing.

This is probably only a problem on relative axes.

  This will probably have to be implemented on a platform-specific level:  

  - On Darwin/MacOSX, I think that the HIDGetEvent() loop will have to be
    followed by one call to HIDGetElementValue()