diff --git a/TODO b/TODO index 819f373..e266508 100644 --- a/TODO +++ b/TODO @@ -42,7 +42,12 @@ $ dput my-ppa ../xboxdrv_0.7.0-1~lucid1_source.changes Stuff to do before 0.7.0 release: ================================= -* print controller type/name in daemon +* update docu on force feedback for multi controller + +* rename --list-key to --help-key? + +* print controller type/name in daemon (little tricky as that is only + known after opening the USB connection) * log levels: @@ -59,38 +64,54 @@ Stuff to do before 0.7.0 release: * fix the FIXME's -* fix event output (have it pre-modifier or post-modifier?), don't - output on daemon use (ever?!) - * need to hide/disable the toggle button from the UIButtonmap + - maybe implement some full post-parsing option verification to + check for conflicts and necessary modifications? * move XBOX_BTN_UNKNOWN behind XBOX_BTN_MAX, so iteration can start from 0 instead of 1, also fix incorrect iterations all over the - place + place -> doesn't work as some code uses XBOX_BTN_UNKNOWN as 'no + button is pressed' Daemon Related Stuff ==================== +* cleanup device_id, don't manually do (slot<<16) | devid + +* need to properly tear down the rumble callback to avoid calling it + before XboxGenericController gets destructed + +* get rid of all std::cout stuff, redirect it somewhere else + * unplugging a controller should reset it to neutral position * improve output on which uinput devices are created -* fix --no-uinput - -* implement --on-connect and --on-disconnect for the daemon - - maybe have a more general event interface that allows to run stuff - on configuration changes, controller plug-ins, etc. (notifiy area as example) - - also supply useful information as argument - -* handle multiple controllers in a sane manner (requires cloning of - modifier maps, also auto increment of "auto" device id's) - * need magic to assign controller to a slot: what: match product/vendor-id, match device name where: match USB path, match /dev/input/??? path when: just assign them to the next free slot + --match RULE,... # match any of the given rules + --match-group RULE,... # match all of the given rules + + Rules: + ====== + usbpath=005:003 (implicit vendor/product match) + usbid=045f:028f + evdev=/dev/input/event5 + (no rules means it always matches) + + 1) search for match + 2) if no match is found search slots without rules + + * matching by usbpath makes very little sense, as the dev argument + gets incremented with each replug, bus alone might be usable + + * match again sysname could make sense, seems somewhat constant: "5-2" + Xbox1 controller results in "5-2.1", due to being really two devices + * might need magic to give device-ids in a slot fashion: from: 1-ABS_X (second uinput device) to: 2.1-ABS_X (third uinput device for the second slot) @@ -99,15 +120,13 @@ Daemon Related Stuff 1.auto-BTN_MIDDLE auto-BTN_MIDDLE + change syntax: BTN_MIDDLE@mouse, BTN_MIDDLE@2.mouse + + must make sure it doesn't conflict with anything + List Output =========== -* make controller type part of the message, instead of manually - carrying around type variable: - - -> doesn't really work, as some gamepads just emulate other message - types, need to restructure the whole messaging infrastructure - * do modifier/filter dump when --verbose is given, make verbose overall more useful @@ -125,12 +144,22 @@ List Output 1 Author: Aaron Denney <wnoise@ofb.net> 1 hal daemon from Thomas Debouverie <debouverie_thomas@yahoo.fr> 1 Implemented --ui-buttonmap A=BTN_A@{device_id} ??!?!? + +Stuff to do before 0.7.1 release: +================================= + +* implement --on-connect and --on-disconnect for the daemon + - maybe have a more general event interface that allows to run stuff + on configuration changes, controller plug-ins, etc. (notifiy area as example) + - also supply useful information as argument Stuff to do before 0.7.x release: ================================= -* add ABS support to macros +* -R, --rumble-test is broken for FirestormDualController (has no analog triggers) + +* add ABS support to macros (need to deal with min/max) * Playstation 3 controller support - http://www.pabr.org/sixlinux/sixlinux.en.html @@ -187,9 +216,6 @@ Stuff to do before 0.7.x release: * document common problems, such as lack of deadzone handling in games -* give a warning when the user uses X as axis, instead of X1 (X is the - xbox1 analog button), maybe rename X button to btn_x or xbtn ybtn - * make chatpad configurable: --ui-chatpad a=KEY_A,green+a=SHIFT_X+KEY_B,... @@ -198,6 +224,7 @@ Stuff to do before 0.7.x release: shifted/mode_switched in the keymap, i.e. send key combination * can't parse: + --ui-axismap x2=2-ABS_X,y2=2-ABS_Y only this works: @@ -206,10 +233,6 @@ Stuff to do before 0.7.x release: implement better guessing -* have separate ControllerConfig for each controller_slot - -* use pretty print to print copyright notice - * current deadzone code messes up the diagonals * shifted axis without default mapping don't work: @@ -263,9 +286,9 @@ http://sourceforge.net/tracker/download.php?group_id=286545&atid=1214224&file_id http://www.x.org/docs/XKB/XKBlib.pdf -* find a way to bring back --no-extra-devices, saves typing - http://www.mp3car.com/vbulletin/input-devices/108554-xbox360-chatpad-awsome-backlit-mini-keyboard-16.html#post1256444 + +* find a way to bring back --no-extra-devices, saves typing * change default axis/button map depending on controller type (tricky as type is only really known after the axis/buttonmap as already been