Updated NEWS, TODO and docs
This commit is contained in:
parent
83fdbd36c8
commit
d87c360353
4 changed files with 162 additions and 48 deletions
10
NEWS
10
NEWS
|
@ -1,7 +1,12 @@
|
|||
xboxdrv 0.7.3 - (??/Mar/2011)
|
||||
xboxdrv 0.7.3 - (16/Mar/2011)
|
||||
=============================
|
||||
|
||||
* added xboxdrvctl to control the daemon
|
||||
* fixed installation of xboxdrvctl
|
||||
* added special REL repeat value '-1' to avoid jaggy mouse emulation movement
|
||||
* added "rel-repeat:" axis-event for better scroll wheel emulation
|
||||
* added --no-dbus, to disable D-Bus support
|
||||
* reenabled USBReadThread to work around ignored input events
|
||||
* '--daemon' is broken in this release
|
||||
|
||||
|
||||
xboxdrv 0.7.2 - (06/Mar/2011)
|
||||
|
@ -10,6 +15,7 @@ xboxdrv 0.7.2 - (06/Mar/2011)
|
|||
* added --mimic-xpad-wireless
|
||||
* added --device-usbid and --device-usbids
|
||||
* added D-Bus support to the daemon
|
||||
* added xboxdrvctl to control the daemon
|
||||
* added better handling of rounding errors when sending REL_
|
||||
* added dpad-restrictor for X, Y or fourway restriction on the dpad
|
||||
* added statistic modifier that counts how often buttons are pressed
|
||||
|
|
142
TODO
142
TODO
|
@ -38,10 +38,42 @@ $ git-buildpackage --git-no-create-orig --git-debian-branch=master-lts --git-tag
|
|||
$ sudo pbuilder --build --basetgz /var/cache/pbuilder/base-lucid.tgz ../xboxdrv_0.7.3-1~lucid1.dsc
|
||||
$ dput my-ppa ../xboxdrv_0.7.3-1~lucid1_source.changes
|
||||
|
||||
# Ubuntu 10.10 - xboxdrv-stable
|
||||
|
||||
$ git checkout stable
|
||||
$ git-buildpackage --git-no-create-orig --git-debian-branch=stable --git-tag --git-builder="debuild -S" --git-debian-tag="stable/0.6.6-1"
|
||||
$ sudo pbuilder --build --basetgz /var/cache/pbuilder/base-maverick.tgz ../xboxdrv-stable_0.6.6-1.dsc
|
||||
|
||||
# Ubuntu 10.04 - xboxdrv-stable
|
||||
|
||||
$ git checkout stable-lts
|
||||
$ git-buildpackage --git-no-create-orig --git-debian-branch=stable-lts --git-tag --git-builder="debuild -S" --git-debian-tag="stable/0.6.6-1_lucid1"
|
||||
$ sudo pbuilder --build --basetgz /var/cache/pbuilder/base-lucid.tgz ../xboxdrv-stable_0.6.6-1~lucid1.dsc
|
||||
|
||||
|
||||
Must have features
|
||||
==================
|
||||
|
||||
* add --dbus option to make it optional
|
||||
|
||||
* add back USB read thread
|
||||
|
||||
* add libusb-0.1 support back (maybe only in 0.7.4)
|
||||
|
||||
|
||||
Stuff to do before 0.7.3 release:
|
||||
=================================
|
||||
|
||||
* d-bus requires X11?!
|
||||
|
||||
Autolaunch error: X11 initialization failed." failed to open connection to bus: /bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.
|
||||
|
||||
* missed events are a huge problem in ZSNES
|
||||
|
||||
* ZSNES has issue with diagonals when it comes to HAT, might be bug in ZSNES
|
||||
https://bugs.launchpad.net/ubuntu/+source/zsnes/+bug/519845
|
||||
* have named output variables to chain filters and modifiers?!
|
||||
|
||||
== Daemon ==
|
||||
|
||||
* check how daemon reacts on suspend
|
||||
|
@ -56,6 +88,15 @@ Stuff to do before 0.7.3 release:
|
|||
|
||||
== Other ==
|
||||
|
||||
* button presses are lost even with "--priority realtime" for the wireless controller
|
||||
|
||||
-> xboxdrv isn't running under realtime priority, only its subthreads, fix that
|
||||
-> figure out how USBReadThread reacts to the device being closed
|
||||
|
||||
* use static X11 keysym map to do the string translation?
|
||||
|
||||
* split src/axis_event.hpp and src/button_event.hpp
|
||||
|
||||
* mouse emulation is very jaggy (try painting in Gimp), caused by
|
||||
REL_X and REL_Y being send independently, while they should be
|
||||
synced up, this is a side-effect of the deadzone, without deadzone,
|
||||
|
@ -68,10 +109,48 @@ Stuff to do before 0.7.3 release:
|
|||
time_count = 0;
|
||||
|
||||
-> add a repeat timeout 0 that sends on each update
|
||||
|
||||
-> should be use special value '-1' or repurpose '0'?
|
||||
|
||||
-> do we need more rel types? rel-once? or can repeat values be
|
||||
abused?
|
||||
|
||||
repeat: 0 - always repeat, -1, never repeat, NUM - repeat every NUM msec
|
||||
|
||||
-> add rel-repeat:{repeat} type that repeats more often the more the
|
||||
stick is pressed, to give better scroll wheel emulation
|
||||
|
||||
* add "key-once" or something like that, that only clicks a key
|
||||
without keeping it pressed
|
||||
|
||||
* documentation needs to be improved
|
||||
|
||||
* --ui-axismap LT=KEY_A:KEY_B:1
|
||||
|
||||
Here KEY_B is the key you want to send and KEY_A is a random other key
|
||||
that you don't need. It's a hack as mapping both to KEY_B seems to
|
||||
cause some trouble with automatic key repeat for some reason. Note
|
||||
that you must not combine this with --trigger-as-zaxis as that will
|
||||
disable LT and RT
|
||||
|
||||
* add a "click" filter or something like that, that causes a button to only be clicked, not hold
|
||||
|
||||
== Documentation ==
|
||||
|
||||
* X11 will convert a REL_WHEEL value of 1 into a single click (press
|
||||
and release) of button 4, values of 3 would result in three clicks,
|
||||
etc. REL_HWEEL will be button 6 and 7, add that to documentation somewhere
|
||||
|
||||
== Bugs ==
|
||||
|
||||
* multiple ControllerThread lead to UInput::update() being called
|
||||
multiple times, as UInputMessageProcessor does call the update()
|
||||
which is wrong
|
||||
|
||||
* glib/D-Bus causes crash/exit when USBController::get_name() returns an invalid unicode string?!
|
||||
|
||||
* LED isn't set proper when wireless controllers wake up from power-down
|
||||
|
||||
|
||||
== Unsolved/WontFix ==
|
||||
|
||||
|
@ -92,9 +171,13 @@ Stuff to do before 0.7.3 release:
|
|||
and use them when a slot got free -> discard, bad idea, as it
|
||||
results in confusing behaviour
|
||||
|
||||
|
||||
* glib/D-Bus causes crash/exit when USBController::get_name() returns an invalid unicode string?!
|
||||
* daemon on regular xboxdrv have different controller orderings
|
||||
|
||||
-> hard to avoid, as wireless controllers are only picked up when
|
||||
active, which they always become later then the wired ones, which
|
||||
are active by default)
|
||||
|
||||
|
||||
* move sigint/sigterm handling out of main.cpp and into xboxdrv_daemon.cpp (needs to use gmain_quit())
|
||||
|
||||
* BTN_A@joystick.1 doesn't work for a single joystick, why? (joystick isn't id=0, why?)
|
||||
|
@ -170,11 +253,6 @@ Stuff to do before 0.7.3 release:
|
|||
|
||||
* document them, ignore axis and button time for now
|
||||
|
||||
* daemon on regular xboxdrv have different controller orderings (hard
|
||||
to avoid, as wireless controllers are only picked up when active,
|
||||
which they always become later then the wired ones, which are active
|
||||
by default)
|
||||
|
||||
* look at Joy2key for better mouse support (mouse acceleration), see Dustin Moline mails
|
||||
* timeout makes a huge difference, real MarbleMouse Trackball send around every 10msec
|
||||
* need to deal with rounding errors to allow small movements
|
||||
|
@ -195,22 +273,6 @@ Stuff to do before 0.7.3 release:
|
|||
|
||||
* add system: that takes arguments "ARG0 ARG1 ..." style
|
||||
|
||||
* add match rule for wireless id
|
||||
|
||||
* add --exclued, --exclude-group as ControllerMatchRules
|
||||
|
||||
* XboxdrvThread or XboxGenericController must hold information on
|
||||
their: bus:dev, vendor:product and other potentially useful
|
||||
information, match rule must match against controller, not
|
||||
udev_device
|
||||
-> doesn't work, as we don't have a controller at that point
|
||||
-> match against abstract ControllerInfo object?
|
||||
-> get_busnum()
|
||||
-> get_devnum()
|
||||
|
||||
-> figure out potential matches early and save the valid slots?
|
||||
-> ugly but could work
|
||||
|
||||
* add [controller0/config0] support for ControllerOptions
|
||||
|
||||
* add [controller0] support for ControllerSlotOptions
|
||||
|
@ -231,18 +293,33 @@ Stuff to do before 0.7.3 release:
|
|||
Other Stuff
|
||||
===========
|
||||
|
||||
* --ui-axismap LT=KEY_A:KEY_B:1
|
||||
|
||||
Here KEY_B is the key you want to send and KEY_A is a random other key
|
||||
that you don't need. It's a hack as mapping both to KEY_B seems to
|
||||
cause some trouble with automatic key repeat for some reason. Note
|
||||
that you must not combine this with --trigger-as-zaxis as that will
|
||||
disable LT and RT
|
||||
|
||||
* remove uinput.send_rel_repetitive() replace with just EventHandler::update()
|
||||
|
||||
-> might not be needed, send_rel_repetitive() is kind of convenient
|
||||
|
||||
-> send_rel_repetitive() doesn't work with multi-axis REL events (mouse emulation)
|
||||
|
||||
* boost::lexical_cast<> error messages are useless, make some better ones
|
||||
|
||||
Daemon Match Rules
|
||||
==================
|
||||
|
||||
* add match rule for wireless id -> not really useful as that id is
|
||||
more or less random
|
||||
|
||||
* add --exclude, --exclude-group as ControllerMatchRules
|
||||
|
||||
* XboxdrvThread or XboxGenericController must hold information on
|
||||
their: bus:dev, vendor:product and other potentially useful
|
||||
information, match rule must match against controller, not
|
||||
udev_device
|
||||
-> doesn't work, as we don't have a controller at that point
|
||||
-> match against abstract ControllerInfo object?
|
||||
-> get_busnum()
|
||||
-> get_devnum()
|
||||
|
||||
-> figure out potential matches early and save the valid slots?
|
||||
-> ugly but could work
|
||||
|
||||
* --match again sysname could make sense, seems somewhat constant:
|
||||
"5-2" Xbox1 controller results in "5-2.1", due to being really two
|
||||
|
@ -370,7 +447,8 @@ http://www.mp3car.com/vbulletin/input-devices/108554-xbox360-chatpad-awsome-back
|
|||
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
|
||||
* add extra checks to make sure the evdev buttons and axis given exist
|
||||
on the current device when using --evdev
|
||||
|
||||
* invert y axis on --evdev
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
\\$2 \(la\\$1\(ra\\$3
|
||||
..
|
||||
.if \n(.g .mso www.tmac
|
||||
.TH "xboxdrv " 1 2010-05-05 0.7.2 "User Commands"
|
||||
.TH "xboxdrv " 1 2010-05-05 0.7.3 "User Commands"
|
||||
.SH NAME
|
||||
xboxdrv
|
||||
\- A Xbox/Xbox360 gamepad driver that works in userspace
|
||||
|
@ -971,7 +971,12 @@ adjust the above to match your mouse configuration or the
|
|||
button events will come out wrong.
|
||||
.TP
|
||||
\*(T<\fB\-\-mimic\-xpad\fR\*(T>
|
||||
Causes xboxdrv to use the same axis and button names as the xpad kernel driver.
|
||||
Causes xboxdrv to use the same axis and button names as
|
||||
the xpad kernel driver for wired Xbox360 controller
|
||||
.TP
|
||||
\*(T<\fB\-\-mimic\-xpad\-wireless\fR\*(T>
|
||||
Causes xboxdrv to use the same axis and button names as
|
||||
the xpad kernel driver for wired Xbox360 controller
|
||||
.SS "UINPUT CONFIGURATION OPTIONS"
|
||||
.TP
|
||||
\*(T<\fB\-\-no\-uinput\fR\*(T>
|
||||
|
@ -1231,10 +1236,11 @@ see [Button Filter].
|
|||
.TP
|
||||
\*(T<\fB\-\-ui\-axismap\fR\*(T> \fIUIAXISSPEC,...\fR
|
||||
.nf
|
||||
\*(T<UIAXISSPEC = [ XBOXBTN "+" ] XBOXAXIS { "^" FILTER } "=" ( RELSPEC | BTNSPEC | ABSSPEC ) ;
|
||||
BTNSPEC = "KEY_" NAME ":" "KEY_" NAME ":" THRESHOLD ;
|
||||
RELSPEC = "REL_" NAME ":" VALUE ":" REPEAT ;
|
||||
ABSSPEC = "ABS_" NAME ;
|
||||
\*(T<UIAXISSPEC = [ XBOXBTN "+" ] XBOXAXIS { "^" FILTER } "=" ( RELSPEC | RELREP | KEYSPEC | ABSSPEC ) ;
|
||||
KEYSPEC = [ "key:" ] "KEY_" NAME ":" "KEY_" NAME ":" THRESHOLD ;
|
||||
RELSPEC = [ "rel:" ] "REL_" NAME ":" VALUE ":" REPEAT ;
|
||||
RELREP = "rel\-repeat:" "REL_" NAME ":" VALUE ":" REPEAT ;
|
||||
ABSSPEC = [ "abs:" ] "ABS_" NAME ;
|
||||
FILTER = ( "calibration" | "cal" ) ":" MIN ":" CENTER ":" MAX |
|
||||
( "sensitifity" | "sen" ) ":" SENSITIFITY |
|
||||
( "deadzone" | "dead" ) ":" MIN ":" MAX ":" SMOOTH |
|
||||
|
@ -1257,11 +1263,22 @@ same as for \*(T<\fB\-\-ui\-buttonmap\fR\*(T>.
|
|||
\*(T<$ xboxdrv \-\-ui\-axismap X1=REL_???:VALUE:REPEAT\*(T>
|
||||
.fi
|
||||
|
||||
\fIVALUE\fR gives the maximum value of the event (default: 10)
|
||||
\fIVALUE\fR gives
|
||||
the maximum value of the event, the actual value that gets send
|
||||
is \fIVALUE\fR * axis_state.
|
||||
(default: 10)
|
||||
|
||||
\fIREPEAT\fR
|
||||
gives the number of milisecond to pass before the event
|
||||
is fired again (default: 5)
|
||||
is fired again (default: 5).
|
||||
|
||||
The value of -1 has a special meaning, it will result in
|
||||
the REL event being fired as soon as possible (i.e.
|
||||
every \fItimeout\fR miliseconds).
|
||||
This is the recomment way for handling mouse emulation,
|
||||
as it will keep REL events syncronized and thus avoid
|
||||
jaggies in the movement, that will result from manually
|
||||
specifying a timeout.
|
||||
|
||||
.nf
|
||||
\*(T<$ xboxdrv \-\-ui\-axismap X1=KEY_UP:KEY_DOWN:THRESHOLD\*(T>
|
||||
|
|
|
@ -1800,10 +1800,11 @@ send KEY_LEFTSHIFT 0]]></programlisting>
|
|||
<varlistentry>
|
||||
<term><option>--ui-axismap</option> <replaceable class="parameter">UIAXISSPEC,...</replaceable></term>
|
||||
<listitem>
|
||||
<programlisting><![CDATA[UIAXISSPEC = [ XBOXBTN "+" ] XBOXAXIS { "^" FILTER } "=" ( RELSPEC | BTNSPEC | ABSSPEC ) ;
|
||||
BTNSPEC = "KEY_" NAME ":" "KEY_" NAME ":" THRESHOLD ;
|
||||
RELSPEC = "REL_" NAME ":" VALUE ":" REPEAT ;
|
||||
ABSSPEC = "ABS_" NAME ;
|
||||
<programlisting><![CDATA[UIAXISSPEC = [ XBOXBTN "+" ] XBOXAXIS { "^" FILTER } "=" ( RELSPEC | RELREP | KEYSPEC | ABSSPEC ) ;
|
||||
KEYSPEC = [ "key:" ] "KEY_" NAME ":" "KEY_" NAME ":" THRESHOLD ;
|
||||
RELSPEC = [ "rel:" ] "REL_" NAME ":" VALUE ":" REPEAT ;
|
||||
RELREP = "rel-repeat:" "REL_" NAME ":" VALUE ":" REPEAT ;
|
||||
ABSSPEC = [ "abs:" ] "ABS_" NAME ;
|
||||
FILTER = ( "calibration" | "cal" ) ":" MIN ":" CENTER ":" MAX |
|
||||
( "sensitifity" | "sen" ) ":" SENSITIFITY |
|
||||
( "deadzone" | "dead" ) ":" MIN ":" MAX ":" SMOOTH |
|
||||
|
@ -1823,12 +1824,24 @@ NAME = STRING ;]]></programlisting>
|
|||
</para>
|
||||
<programlisting>$ xboxdrv --ui-axismap X1=REL_???:VALUE:REPEAT</programlisting>
|
||||
<para>
|
||||
<replaceable class="parameter">VALUE</replaceable> gives the maximum value of the event (default: 10)
|
||||
<replaceable class="parameter">VALUE</replaceable> gives
|
||||
the maximum value of the event, the actual value that gets send
|
||||
is <replaceable>VALUE</replaceable> * axis_state.
|
||||
(default: 10)
|
||||
</para>
|
||||
<para>
|
||||
<replaceable class="parameter">REPEAT</replaceable>
|
||||
gives the number of milisecond to pass before the event
|
||||
is fired again (default: 5)
|
||||
is fired again (default: 5).
|
||||
</para>
|
||||
<para>
|
||||
The value of -1 has a special meaning, it will result in
|
||||
the REL event being fired as soon as possible (i.e.
|
||||
every <replaceable>timeout</replaceable> miliseconds).
|
||||
This is the recomment way for handling mouse emulation,
|
||||
as it will keep REL events syncronized and thus avoid
|
||||
jaggies in the movement, that will result from manually
|
||||
specifying a timeout.
|
||||
</para>
|
||||
|
||||
<programlisting>$ xboxdrv --ui-axismap X1=KEY_UP:KEY_DOWN:THRESHOLD</programlisting>
|
||||
|
|
Loading…
Add table
Reference in a new issue