From 2f76356218d772155f218efd2209613376e06440 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Sat, 4 Jun 2005 15:56:45 +0000 Subject: updated joystick support on Mac OS X so that joystick twist is set to abs_rz and throttle is set to abs_throttle even when devices use different code pages (USB HID spec sucks!); minor code cleanups svn path=/trunk/externals/hcs/hid/; revision=3112 --- TODO | 70 ++++++++++++++++++++++++++++---------------------------------------- 1 file changed, 29 insertions(+), 41 deletions(-) diff --git a/TODO b/TODO index afa1075..7726230 100644 --- a/TODO +++ b/TODO @@ -4,6 +4,7 @@ - GDAM has a HID Manager implementation and probably a Linux one too + ============================================================================== = profile [hid] object and usage @@ -12,23 +13,19 @@ ============================================================================== -= 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. += device selection -The timestamps should be in seconds since the first [hid] object was -instantiated since Pd limits float resolution to 6 digits. If there were two -floats, one for seconds, and the other for microseconds, then the [hid] -timestamp could represent up to 11.5 days (999999 seconds). +by # (1,2,...), generic name (mouse1, joystick2, tablet3...), or device name +("Trackpad", "Microsoft 5-button Mouse with IntelliEye(TM)", etc.) ============================================================================== -= device selection += make second outlet for device name + +just output the USB device name to the second outlet + +- maybe the manufacturer too? -by # (1,2,...), generic name (mouse1, joystick2, tablet3...), or device name -("Trackpad", "Microsoft 5-button Mouse with IntelliEye(TM)", etc.) ============================================================================== @@ -54,6 +51,7 @@ by # (1,2,...), generic name (mouse1, joystick2, tablet3...), or device name - at standard block size (64 samples), one block = ~1.5ms + ============================================================================== = function return values @@ -101,13 +99,6 @@ void hid_post(const char *format, const char *); ============================================================================== = figure out whole degree issue -- BUG: zexy's 3D conversion objects just pass through Z rather than converting - it to elevation in rad/deg. - -- make [hid_polar] output 0 to 1 for angle rather than -pi to pi - -- [hid2rad], [hid2deg], [rad2hid], [deg2hid] - - should degree conversion also change rotation direction and 0 point? The degrees on a compass rotate the opposite direction of radians. The 0 point of a compass is due north, with radians, its right/due east. @@ -128,16 +119,10 @@ object for Fletcher-Munson Equal-loudness contours median average object -non-linear one-to-many mapping object (one curve spans the whole range of the -movement, the other curve kicks in at a specifable point. Arguments could be -start-point and start-value. - [infinitepot] for use with a [knob] or any single axis that could be infinite. [hid_debounce] -[hid_vector] - angle and distance for mouse/relative data - peak finder object "kalman filters" @@ -153,6 +138,24 @@ http://www.2dcurves.com ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/ +______________________________________________________________________________ +- 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: on MacOS X, mouse axis data is limited by the screen dimensions + +- the axes data stops outputting when the mouse pointer reaches the edge of + the screen. Hopefully the HID Manager API will allow raw mouse data + access. It must since its used with games. + + ______________________________________________________________________________ - 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. @@ -164,6 +167,7 @@ This is probably only a problem on relative axes. - 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 @@ -173,13 +177,6 @@ on the unchanged axis when the hatswitch is moved in along the X or Y axis (as opposed to diagonally). -______________________________________________________________________________ -- BUG: on MacOS X, mouse axis data is limited by the screen dimensions - -- the axes data stops outputting when the mouse pointer reaches the edge of - the screen. Hopefully the HID Manager API will allow raw mouse data - access. It must since its used with games. - ______________________________________________________________________________ - BUG: on MacOS X, two keyboard key codes are reported as hatswitches @@ -189,12 +186,3 @@ ______________________________________________________________________________ I am pretty sure this is just a hid_print_element_list() display problem. -______________________________________________________________________________ -- 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 - -- cgit v1.2.1