============================================================================== = make second inlet for poll # (for [human->pd] ============================================================================== = output device data on open - Logical Min/Max i.e. [range -127 127( - device string [name Trackpad( ============================================================================== = open devices by name i.e "Trackpad" a la Max's [hi] ============================================================================== = test verbose names - matju says symbols are compared by pointer, so they are fast - try verbose names like: syn = sync snd = sound msc = misc rep = repeat pwr = power - maybe these too abs = absolute rel = relative btn = button - maybe make the type the full name, with the code using the abbreviation - change generic ev_9 to type_9 - change word "code" to "element" ============================================================================== = hid/serial - open/close status outlet - [send ( to send data - [tgl] 1/0 for open/close ============================================================================== = linux input synch events (EV_SYN) - these seem to be generated by the Linux kernel, so they probably don't fit in with the [hid] scheme. Probably the best thing is to ditch them, or figure out whether they should be used in controlling the flow of event data, as they are intended. ============================================================================== = open/close status outlet ============================================================================== = profile [hid] object and usage - find out if [autoscale] takes a lot of CPU power, or where in [hid] is using CPU where it doesn't have to be ============================================================================== = Report available FF effects - check against HID Utilities Source/PID.h ============================================================================== = 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 - at standard block size (64 samples), one block = ~1.5ms ============================================================================== = function return values - most functions probably do not need return values ============================================================================== = event name changes - make key/button Type "button" rather than "key" (undecided on this one) ============================================================================== = check out using USB timestamp - use the USB timestamp to correctly space the output data /++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BUGS BUGS BUGS BUGS BUGS BUGS BUGS BUGS BUGS BUGS BUGS BUGS BUGS BUGS BUGS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/ ______________________________________________________________________________ - BUG: figure out how to prevent segfaults on mismapped devices/elements - it should gracefully ignore things where it currently segfaults - looks like its in build_device_list ______________________________________________________________________________ - BUG: multiple instances pointing to the same device don't have seperate close/free - closing the device on one instance closing that same device on all other instances of [hid] - deleting that instance also closes the device for all other instances pointing to that same device ______________________________________________________________________________ - 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() ______________________________________________________________________________ - BUG: hatswitches on MacOS X output an event without a change in value Because of the currnently implementation of the conversion of the MacOS X style event to the Linux style event, an event with a value of zero is output on the unchanged axis when the hatswitch is moved in along the X or Y axis (as opposed to diagonally). ______________________________________________________________________________ - BUG: on MacOS X, two keyboard key codes are reported as hatswitches abs abs_hat0x Button Input, Keyboard Usage 0x39 abs abs_hat0y Button Input, Keyboard Usage 0x39 I am pretty sure this is just a hid_print_element_list() display problem.