Documentation updates

This commit is contained in:
Ingo Ruhnke 2011-01-09 17:25:32 +01:00
parent 055ad33700
commit c709838724
5 changed files with 114 additions and 35 deletions

12
NEWS
View file

@ -1,13 +1,15 @@
xboxdrv 0.6.3 - (??/Jan/2011)
xboxdrv 0.6.3 - (09/Jan/2011)
=============================
* chatpad support, enable with --chatpad, special thanks to Jani
Virta, Andy Kirkham, dwomac and GAFBlizzard who helped make it
possible
* cleanup of modifier code
* chatpad support (still rough), special thanks to Jani Virta, Andy
Kirkham, dwomac and GAFBlizzard who helped make it possible
* added --chatpad, --chatpad-no-init and --chatpad-debug
* added optional abs:/rel:/key: prefixes to --ui-axismap
* fixed multiple bugs that made it impossible to assign events to
specific devices
* allow input filters in --axismap and --buttonmap
* added --headset, --headset-dump FILE and --headset-play FILE, for
experimentation only
xboxdrv 0.6.2 - (31/Dec/2010)

62
TODO
View file

@ -27,14 +27,40 @@ $ dput my-ppa xboxdrv_0.6.3_source.changes
Stuff to do before 0.6.4 release:
=================================
* integrate filters into --buttonmap and --axismap:
* write documentation
--buttonmap X^toggle:autofire=B
--axismap Y1^relative
* add chatpad/headset options to ini
main purpose: allow to make shift a toggle button
* cleanup --help, some newlines missing in there
* bug: when shifting the last axis state sticks even when they key was released
* basic Dualstrike mouse emulation with absolute position:
./xboxdrv-dualstrike \
--ui-clear \
--ui-buttonmap rb=key:1-BTN_LEFT,lb=key:1-BTN_RIGHT \
--ui-axismap x2^cal:-25000:0:25000=abs:1-ABS_X,y2^cal:-25000:0:25000=abs:1-ABS_Y
--ui-axismap x1=KEY_LEFT:KEY_RIGHT,y1=KEY_DOWN:KEY_UP -s
* can't parse:
--ui-axismap x2=2-ABS_X,y2=2-ABS_Y
only this works:
--ui-axismap x2=abs:2-ABS_X,y2=abs:2-ABS_Y
implement better guessing
* bug: when shifting the last axis state sticks even when the key was released
Stuff to do before 0.6.x release:
=================================
* figure out what to do with deprecated stuff:
--deadzone - can probably stay for convenience
--deadzone-trigger - can probably stay for convenience
--relative-axis - should go
--autofire - should go
Figure out a way to load custom keymaps:
@ -42,9 +68,25 @@ Figure out a way to load custom keymaps:
* http://stackoverflow.com/questions/1557689/keyboard-remapping-with-more-modifiers
* http://tldp.org/HOWTO/Keyboard-and-Console-HOWTO-15.html
Stuff to do before 0.6.x release:
=================================
* setxkbmap -device ... -I xboxdrv/xorg/
xkbprint -label name $DISPLAY - | gv -orientation=seascape -
http://www.charvolant.org/~doug/xkb/html/xkb.html
http://pascal.tsu.ru/en/xkb/
http://wiki.debian.org/XStrikeForce/InputHotplugGuide
http://git.madduck.net/v/etc/xsession.git?a=blob;f=.xkb/symbols/madduck;hb=refs/heads/xkb
http://www.x.org/wiki/XKB
http://sourceforge.net/tracker/download.php?group_id=286545&atid=1214224&file_id=361450&aid=2945171
http://www.x.org/docs/XKB/XKBlib.pdf
* --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
* limit --four-way-restrictor to a single axis
* write UIEvent::from_string()
@ -52,9 +94,9 @@ Stuff to do before 0.6.x release:
* absolute mouse pointer can be created with:
ABS_X, ABS_Y, BTN_LEFT
abs:1-ABS_X, abs:1-ABS_Y, key:1-BTN_LEFT
document that somewhere
document that somewhere, device must not contain REL_X, REL_Y or BTN_A or it won't work in X11
http://www.mp3car.com/vbulletin/input-devices/108554-xbox360-chatpad-awsome-backlit-mini-keyboard-16.html#post1256444

View file

@ -820,7 +820,7 @@ Lets the controller act as a mouse. It is indendical to:
.fi
You can customize it by the usual means, just make sure
that \*(T<\fB\-\-mouse\fR\*(T> comes before you
that \*(T<\fB\-\-mouse\fR\*(T> comes before your
customization options on the command line.
Note that if you have your mouse buttons switched you must
@ -993,7 +993,9 @@ You can change the rumble strength via:
\*(T<$ xboxdrv \-\-rumble\-gain 50%\*(T>
.fi
Values larger then 100% are possible as well.
Values larger then 100% are possible as well and will
amplify small rumble commands, rumble commands already
at the maximum will stay unchanged.
.SH "INPUT FILTER"
Input filter allow to manipulate the events that come from the
controller. They can be used
@ -1036,7 +1038,7 @@ provided as parameter that will be outputed before the
event.
.SS "AXIS FILTER"
.TP
\*(T<\fBcal\fR\*(T>, \*(T<\fBcalibration\fR\*(T>
\*(T<\fBcal\fR\*(T>, \*(T<\fBcalibration\fR\*(T>:\fIMIN\fR:\fICENTER\fR:\fIMAX\fR
See \*(T<\fB\-\-calibration\fR\*(T>.
.TP
\*(T<\fBsen\fR\*(T>, \*(T<\fBsensitivity\fR\*(T>:\fISENSITIVITY\fR

View file

@ -1019,7 +1019,7 @@ NAME = STRING ;]]></programlisting>
--ui-buttonmap "start=KEY_FORWARD,back=KEY_BACK,guide=KEY_ESC,tl=void,tr=void"]]></programlisting>
<para>
You can customize it by the usual means, just make sure
that <option>--mouse</option> comes before you
that <option>--mouse</option> comes before your
customization options on the command line.
</para>
<para>
@ -1239,7 +1239,11 @@ pos = (1.0f - (1.0f - pos) ** t) ** (1 / t);]]></programlisting>
<programlisting>$ xboxdrv --rumble-gain 50%</programlisting>
<para>Values larger then 100% are possible as well.</para>
<para>
Values larger then 100% are possible as well and will
amplify small rumble commands, rumble commands already
at the maximum will stay unchanged.
</para>
</listitem>
</varlistentry>
</variablelist>
@ -1323,7 +1327,7 @@ pos = (1.0f - (1.0f - pos) ** t) ** (1 / t);]]></programlisting>
<title id="axisfilter.title">Axis Filter</title>
<variablelist>
<varlistentry>
<term><option>cal</option>, <option>calibration</option></term>
<term><option>cal</option>, <option>calibration</option>:<replaceable>MIN</replaceable>:<replaceable>CENTER</replaceable>:<replaceable>MAX</replaceable></term>
<listitem>
<para>
See <option>--calibration</option>.

View file

@ -139,7 +139,6 @@ CommandLineParser::init_argp()
.add_option(OPTION_TEST_RUMBLE, 'R', "test-rumble", "", "map rumbling to LT and RT (for testing only)")
.add_option(OPTION_NO_UINPUT, 0, "no-uinput", "", "do not try to start uinput event dispatching")
.add_option(OPTION_NO_EXTRA_DEVICES, 0, "no-extra-devices", "", "Do not create separate virtual keyboard and mouse devices, just use a single virtual device")
.add_option(OPTION_MIMIC_XPAD, 0, "mimic-xpad", "", "Causes xboxdrv to use the same axis and button names as the xpad kernel driver")
.add_option(OPTION_DAEMON, 'D', "daemon", "", "run as daemon")
.add_option(OPTION_CONFIG, 'c', "config", "FILE", "read configuration from FILE")
.add_option(OPTION_CONFIG_OPTION,'o', "option", "NAME=VALUE", "Set the given configuration option")
@ -154,11 +153,17 @@ CommandLineParser::init_argp()
.add_option(OPTION_DEVICE_BY_PATH, 0, "device-by-path", "BUS:DEV", "Use device BUS:DEV, do not do any scanning")
.add_option(OPTION_DEVICE_BY_ID, 0, "device-by-id", "VENDOR:PRODUCT", "Use device that matches VENDOR:PRODUCT (as returned by lsusb)")
.add_option(OPTION_TYPE, 0, "type", "TYPE", "Ignore autodetection and enforce controller type (xbox, xbox-mat, xbox360, xbox360-wireless, xbox360-guitar)")
.add_newline()
.add_text("Evdev Options: ")
.add_option(OPTION_EVDEV, 0, "evdev", "DEVICE", "Read events from a evdev device, instead of USB")
.add_option(OPTION_EVDEV_DEBUG, 0, "evdev-debug", "", "Print out all events received from evdev")
.add_option(OPTION_EVDEV_NO_GRAB, 0, "evdev-no-grab", "", "Do not grab the event device, allow other apps to receive events")
.add_option(OPTION_EVDEV_ABSMAP, 0, "evdev-absmap", "MAP", "Map evdev key events to Xbox360 button events")
.add_option(OPTION_EVDEV_KEYMAP, 0, "evdev-keymap", "MAP", "Map evdev abs events to Xbox360 axis events")
.add_newline()
.add_text("Peripherals: ")
.add_option(OPTION_CHATPAD, 0, "chatpad", "", "Enable Chatpad support for Xbox360 USB controller")
.add_option(OPTION_CHATPAD_NO_INIT, 0, "chatpad-no-init", "", "To not send init code to the Chatpad")
.add_option(OPTION_CHATPAD_DEBUG, 0, "chatpad-debug", "", "To not send init code to the Chatpad")
@ -167,6 +172,11 @@ CommandLineParser::init_argp()
.add_option(OPTION_HEADSET_PLAY, 0, "headset-play", "FILE", "Play FILE on the headset")
.add_newline()
.add_text("Force Feedback: ")
.add_option(OPTION_FORCE_FEEDBACK, 0, "force-feedback", "", "Enable force feedback support")
.add_option(OPTION_RUMBLE_GAIN, 0, "rumble-gain", "NUM", "Set relative rumble strength (default: 255)")
.add_newline()
.add_text("Status Options: ")
.add_option(OPTION_LED, 'l', "led", "NUM", "set LED status, see --help-led (default: 0)")
.add_option(OPTION_RUMBLE, 'r', "rumble", "L,R", "set the speed for both rumble motors [0-255] (default: 0,0)")
@ -182,14 +192,6 @@ CommandLineParser::init_argp()
.add_option(OPTION_DPAD_ONLY, 0, "dpad-only", "", "Both sticks are ignored, only DPad sends out axis events")
.add_option(OPTION_BUTTONMAP, 'b', "buttonmap", "MAP", "Remap the buttons as specified by MAP (example: B=A,X=A,Y=A)")
.add_option(OPTION_AXISMAP, 'a', "axismap", "MAP", "Remap the axis as specified by MAP (example: -Y1=Y1,X1=X2)")
.add_option(OPTION_NAME, 0, "name", "DEVNAME", "Changes the descriptive name the device will have")
.add_option(OPTION_UI_NEW, 0, "ui-new", "", "Create a new uinput configuration")
.add_option(OPTION_UI_CLEAR, 0, "ui-clear", "", "Removes all existing uinput bindings")
.add_option(OPTION_UI_TOGGLE, 0, "ui-toggle", "BTN", "Set button to use for toggling between configs")
.add_option(OPTION_UI_BUTTONMAP, 0, "ui-buttonmap", "MAP", "Changes the uinput events send when hitting a button (example: X=BTN_Y,A=KEY_A)")
.add_option(OPTION_UI_AXISMAP, 0, "ui-axismap", "MAP", "Changes the uinput events send when moving a axis (example: X1=ABS_X2)")
.add_option(OPTION_MOUSE, 'm', "mouse", "", "Enable mouse emulation")
.add_option(OPTION_GUITAR, 0, "guitar", "", "Enables guitar button and axis mapping")
.add_option(OPTION_SQUARE_AXIS, 0, "square-axis", "", "Cause the diagonals to be reported as (1,1) instead of (0.7, 0.7)")
.add_option(OPTION_FOUR_WAY_RESTRICTOR,0, "four-way-restrictor", "", "Restrict axis movement to one axis at a time")
.add_option(OPTION_DPAD_ROTATION, 0, "dpad-rotation", "DEGREE", "Rotate the dpad by the given DEGREE, must be a multiple of 45")
@ -197,14 +199,41 @@ CommandLineParser::init_argp()
.add_option(OPTION_RELATIVE_AXIS, 0, "relative-axis", "MAP", "Make an axis emulate a joystick throttle (example: y2=64000)")
.add_option(OPTION_AUTOFIRE, 0, "autofire", "MAP", "Cause the given buttons to act as autofire (example: A=250)")
.add_option(OPTION_CALIBRARIOTION, 0, "calibration", "MAP", "Changes the calibration for the given axis (example: X2=-32768:0:32767)")
.add_text("Force Feedback: ")
.add_option(OPTION_FORCE_FEEDBACK, 0, "force-feedback", "", "Enable force feedback support")
.add_option(OPTION_RUMBLE_GAIN, 0, "rumble-gain", "NUM", "Set relative rumble strength (default: 255)")
.add_newline()
.add_text("Uinput Configuration Options: ")
.add_option(OPTION_NAME, 0, "name", "DEVNAME", "Changes the descriptive name the device will have")
.add_option(OPTION_UI_NEW, 0, "ui-new", "", "Create a new uinput configuration entry")
.add_option(OPTION_UI_CLEAR, 0, "ui-clear", "", "Removes all existing uinput bindings")
.add_option(OPTION_UI_TOGGLE, 0, "ui-toggle", "BTN", "Set button to use for toggling between configs")
.add_option(OPTION_UI_BUTTONMAP, 0, "ui-buttonmap", "MAP", "Changes the uinput events send when hitting a button (example: X=BTN_Y,A=KEY_A)")
.add_option(OPTION_UI_AXISMAP, 0, "ui-axismap", "MAP", "Changes the uinput events send when moving a axis (example: X1=ABS_X2)")
.add_newline()
.add_text("Configuration Options: ")
.add_option(OPTION_MOUSE, 'm', "mouse", "", "Enable mouse emulation")
.add_option(OPTION_GUITAR, 0, "guitar", "", "Enables guitar button and axis mapping")
.add_option(OPTION_MIMIC_XPAD, 0, "mimic-xpad", "", "Causes xboxdrv to use the same axis and button names as the xpad kernel driver")
.add_newline()
.add_text("Axis Filter:")
.add_pseudo(" cal, calibration MIN:CENTER:MAX", "Set the calibration values for the axis")
.add_pseudo(" sen, sensitivity:SENSITIVITY", "Set the axis sensitivity")
.add_pseudo(" dead, deadzone:VALUE, deadzone:MIN:CENTER:MAX", "Set the axis deadzone")
.add_pseudo(" rel, relative:SPEED", "Turn axis into a relative-axis")
.add_pseudo(" resp, response:VALUES:...", "Set values of the response curve")
.add_pseudo(" log:STRING", "Print axis value to stdout")
.add_newline()
.add_text("Button Filter:")
.add_pseudo(" tog, toggle", "Turn button into a toggle button")
.add_pseudo(" inv, invert", "Invert the button value")
.add_pseudo(" auto, autofire:RATE:DELAY", "Enable automatic button press repetition")
.add_pseudo(" log:STRING", "Print button value to stdout")
.add_newline()
.add_text("See README for more documentation and examples.")
.add_text("Report bugs to Ingo Ruhnke <grumbel@gmx.de>");
.add_text("Report bugs to Ingo Ruhnke <grumbel@gmail.com>");
}
void