TODO and NEWS updates

This commit is contained in:
Ingo Ruhnke 2011-01-28 05:27:16 +01:00
parent d59b263275
commit 813e5ed302
2 changed files with 93 additions and 73 deletions

7
NEWS
View file

@ -1,3 +1,10 @@
xboxdrv 0.7.1 - (??/???/2011)
=============================
* compatibility with older libudev versions
* fixed some missing #include directives
xboxdrv 0.7.0 - (28/Jan/2011)
=============================

159
TODO
View file

@ -22,39 +22,104 @@ add libudev, libusb-1.0 to builddependencies
$ cd ../debian/
$ git checkout master
$ git-import-orig -u 0.7.0 ~/projects/xboxdrv/htdocs/xboxdrv-linux-0.7.0.tar.bz2
$ dch -v "0.7.0-1" "xboxdrv 0.7.0 release"
$ git-import-orig -u 0.7.1 ~/projects/xboxdrv/htdocs/xboxdrv-linux-0.7.1.tar.bz2
$ dch -v "0.7.1-1" "xboxdrv 0.7.1 release"
$ git-buildpackage --git-no-create-orig --git-tag --git-builder="debuild -S"
$ sudo pbuilder --build ../xboxdrv_0.7.0-1.dsc
$ dput my-ppa ../xboxdrv_0.7.0-1_source.changes
$ sudo pbuilder --build ../xboxdrv_0.7.1-1.dsc
$ dput my-ppa ../xboxdrv_0.7.1-1_source.changes
# Ubuntu 10.04 (LTS)
$ cd ../debian/
$ git checkout master-lts
$ git merge master
$ dch -b -v "0.7.0-1~lucid1" --distribution lucid "xboxdrv 0.7.0 backport"
$ dch -b -v "0.7.1-1~lucid1" --distribution lucid "xboxdrv 0.7.1 backport"
$ git-buildpackage --git-no-create-orig --git-debian-branch=master-lts --git-tag --git-builder="debuild -S"
$ sudo pbuilder --build ../xboxdrv_0.7.0-1~lucid1.dsc
$ dput my-ppa ../xboxdrv_0.7.0-1~lucid1_source.changes
$ sudo pbuilder --build ../xboxdrv_0.7.1-1~lucid1.dsc
$ dput my-ppa ../xboxdrv_0.7.1-1~lucid1_source.changes
Stuff to do before 0.7.1 release:
=================================
* --name DEVNAME must work with multple controller slots and multiple devices
* write a tutorial
* turn EnumBox into singleton
* write lots of well documented examples
* allow --modifier help, --ui-buttonmap X2^help
* 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
* cleanup device_id, don't manually do (slot<<16) | devid (only an
issue in force feedback code)
--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
* add match rule for usb iSerial (might be the only way to tell
similar devices appart)
* fix bugs that pop up
* valgrind before release
* allow named sections in INI files (start numbering at 0 or 1?):
[controller1/modifier]
[controller1/config1/modifier]
[controller2/modifier]
[controller2/modifier]
[controller3/config1/modifier]
[controller3/config2/modifier]
* support for Playstation button names maybe? cross, triangle, circle, square, R3, L3, ...?
* check how daemon reacts on suspend
* remember controllers that couldn't be used when all slots where full
and use them when a slot got free
* figure out a good place to set the LEDs off when Xboxdrv is quit,
just doing it in the destructor causes trouble, as the usbdev might
be no longer usable (when controller got unplugged)
* 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.2 release:
=================================
* --four-way-restrictor for the dpad?
- keep whatever direction is pressed first, don't allow walking over diagonals?
- always keep last main direction until another main direction got pressed?
- --disable-dpad-diagonals ur,dl,dl
* extend usbid match rule to bcd device
* --name DEVNAME must work with multple controller slots and multiple devices
* cleanup device_id, don't manually do (slot<<16) | devid (only an
issue in force feedback code)
* get rid of all std::cout stuff when using detached daemon, redirect
log output to a file somewhere else:
@ -63,6 +128,14 @@ Stuff to do before 0.7.1 release:
--verbose: print info level log output
--debug: print debug level log output
Stuff to do before 0.7.3 release:
=================================
* turn EnumBox into singleton
* allow --modifier help, --ui-buttonmap X2^help
* 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 -> doesn't work as some code uses XBOX_BTN_UNKNOWN as 'no
@ -93,36 +166,6 @@ Stuff to do before 0.7.1 release:
* print controller type/name in daemon (little tricky as that is only
known after opening the USB connection)
* 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
* 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:
=================================
@ -173,15 +216,6 @@ Stuff to do before 0.7.x release:
--ps3-pair 00:00:00:00:00:00
--ps3-pair-with-bluetooth
* allow named sections in INI files:
[controller1/modifier]
[controller1/config1/modifier]
[controller2/modifier]
[controller2/modifier]
[controller3/config1/modifier]
[controller3/config2/modifier]
* get rid of set_button()/get_button(), turn the message objects into full classes
* document common problems, such as lack of deadzone handling in games
@ -215,12 +249,6 @@ Stuff to do before 0.7.x release:
* write UIEvent::from_string()
* --four-way-restrictor for the dpad?
- keep whatever direction is pressed first, don't allow walking over diagonals?
- always keep last main direction until another main direction got pressed?
- --disable-dpad-diagonals ur,dl,dl
* absolute mouse pointer can be created with:
abs:1-ABS_X, abs:1-ABS_Y, key:1-BTN_LEFT
@ -258,8 +286,6 @@ http://www.x.org/docs/XKB/XKBlib.pdf
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
build):
@ -294,8 +320,6 @@ http://www.mp3car.com/vbulletin/input-devices/108554-xbox360-chatpad-awsome-back
* Not implementable as they need more then one axis: squareaxis, four-way-restrictor, dpad-rotation
* support for Playstation button names maybe? cross, triangle, circle, square, R3, L3, ...?
Stuff to do before 0.7.x release:
=================================
@ -306,7 +330,7 @@ Stuff to do before 0.7.x release:
* add extra checks to make sure the evdev buttons and axis given exist on the current device
* make dummy joystick axis creation optional
* make dummy joystick axis, mouse button creation optional
* --ui-axismap LT=KEY_A:KEY_B:1
@ -324,9 +348,6 @@ disable LT and RT
--ui-axisemulation A:B=ABS_X:5
* endpoints can be taken directly from the usb configuration, thus
avoiding issues with nummeric endpoints
* bcdDevice (product release version) seem to indicate type (to many
possible versions, not enough data):
@ -335,8 +356,6 @@ old ones: 1.10
better way then to check for endpoints maybe
* 045e:028f is the play&charge kit, give an error message when somebody tries to use that
* match by protocol not, just vendor/product, from xpad.c:
/* Xbox 360 has a vendor-specific class, so we cannot match it with only
@ -353,10 +372,6 @@ better way then to check for endpoints maybe
{ XPAD_XBOX360_VENDOR_PROTOCOL(vend,1) }, \
{ XPAD_XBOX360_VENDOR_PROTOCOL(vend,129) }
* --ui-new must reset events to neutral when switching input mapping (done, but a hack)
* --ui-axismap doesn't work when same key name is given twice, either give warning or fix the issue:
--ui-axismap LT=KEY_A:KEY_A:1
* in INI files allow:
@ -401,8 +416,6 @@ http://msdn.microsoft.com/en-us/library/bb219655(VS.85).aspx
Later versions:
===============
* complex macro programming, i.e. complete evdev sequences, not just key combinations
* The World Tour wireless guitar have 5 buttons and a
slide. Currently, the slide is mapped to the x axis, but I don't
know if it allows multiple presses at once. I don't have a Xbox, so