2011-01-24 21:10:48 -07:00
Pre Release Testing:
====================
2009-01-10 19:26:57 -07:00
2009-02-19 11:54:15 -07:00
* check the version number
2009-01-10 19:26:57 -07:00
2011-05-25 17:11:09 -06:00
* update NEWS
* check git status
2011-03-18 02:22:23 -06:00
2011-05-25 16:53:17 -06:00
* remove log_tmp()
2010-05-26 10:56:05 -06:00
VERSION="$(cat VERSION)"
2009-01-24 07:59:04 -07:00
TAG="v${VERSION}"
2009-02-17 14:51:47 -07:00
git tag -s "${TAG}" -m "xboxdrv ${TAG}"
2010-05-08 09:46:16 -06:00
# Normal Source
2009-07-29 07:43:25 -06:00
git archive --format=tar --prefix="xboxdrv-linux-${VERSION}/" ${TAG} | bzip2 -c > /tmp/xboxdrv-linux-${VERSION}.tar.bz2
2010-05-01 12:18:44 -06:00
2009-01-16 22:31:14 -07:00
git push --tags
2010-12-25 05:25:02 -07:00
Ubuntu Package:
===============
2011-08-06 18:46:38 -06:00
cd ../debian/xboxdrv
2011-01-13 10:05:57 -07:00
2011-08-06 18:46:38 -06:00
# Ubuntu 11.04
# ============
git checkout master
git-import-orig -u 0.8.2 ~/projects/xboxdrv/htdocs/xboxdrv-linux-0.8.2.tar.bz2
dch -v "0.8.2-1" "xboxdrv 0.8.2 release"
git commit -m "xboxdrv 0.8.2 release" -a
git-buildpackage --git-no-create-orig --git-tag --git-builder="debuild -S"
sudo pbuilder --build --basetgz /var/cache/pbuilder/base-natty.tgz ../xboxdrv_0.8.2-1.dsc
dput my-ppa ../xboxdrv_0.8.2-1_source.changes
2011-05-26 10:09:07 -06:00
# Ubuntu 10.10
2011-08-06 18:46:38 -06:00
# ============
git checkout master-10.10
git merge master
git show master:debian/changelog > debian/changelog
dch -b -v "0.8.2-1~maverick1" --distribution maverick "xboxdrv 0.8.2 backport"
git commit -m "xboxdrv 0.8.2 backport" -a
git-buildpackage --git-no-create-orig --git-debian-branch=master-10.10 --git-tag --git-builder="debuild -S"
sudo pbuilder --build --basetgz /var/cache/pbuilder/base-maverick.tgz ../xboxdrv_0.8.2-1~maverick1.dsc
dput my-ppa ../xboxdrv_0.8.2-1~maverick1_source.changes
2011-01-13 10:05:57 -07:00
# Ubuntu 10.04 (LTS)
2011-08-06 18:46:38 -06:00
# ==================
git checkout master-lts
git merge master
git show master:debian/changelog > debian/changelog
dch -b -v "0.8.2-1~lucid1" --distribution lucid "xboxdrv 0.8.2 backport"
git commit -m "xboxdrv 0.8.2 backport" -a
git-buildpackage --git-no-create-orig --git-debian-branch=master-lts --git-tag --git-builder="debuild -S"
sudo pbuilder --build --basetgz /var/cache/pbuilder/base-lucid.tgz ../xboxdrv_0.8.2-1~lucid1.dsc
dput my-ppa ../xboxdrv_0.8.2-1~lucid1_source.changes
2011-01-02 11:12:32 -07:00
2011-03-16 03:37:26 -06:00
# Ubuntu 10.10 - xboxdrv-stable
2011-08-06 18:46:38 -06:00
# =============================
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
2011-03-16 03:37:26 -06:00
# Ubuntu 10.04 - xboxdrv-stable
2011-08-06 18:46:38 -06:00
# =============================
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_lucid2"
sudo pbuilder --build --basetgz /var/cache/pbuilder/base-lucid.tgz ../xboxdrv-stable_0.6.6-1~lucid2.dsc
2011-03-16 03:37:26 -06:00
2011-08-06 18:26:55 -06:00
Target for 0.8.3
2011-07-17 17:02:08 -06:00
================
2011-07-16 19:25:56 -06:00
2011-08-23 03:51:42 -06:00
* test if its possible to mix cycle-key with macro: or other advanced
ButtonEvents
2011-08-22 11:15:06 -06:00
* "--dbus system" currently does not work as expected
$ sudo ./xboxdrv --daemon --dbus system --quiet
[ERROR] XboxdrvDaemon::run(): fatal exception: failed to get unique dbus name: Connection ":1.55" is not allowed to own the service "org.seul.Xboxdrv" due to security policies in the configuration file
libusb:warning [libusb_close] internal signalling write failed, closing anyway
libusb:warning [libusb_close] internal signalling write failed, closing anyway
libusb:warning [libusb_close] internal signalling write failed, closing anyway
libusb:warning [libusb_close] internal signalling write failed, closing anyway
-> http://stackoverflow.com/questions/4560877/dbus-bus-request-name-connections-are-not-allowed-to-own-the-service
2011-07-17 17:02:08 -06:00
* update/fix man-page
2011-07-16 19:25:56 -06:00
2011-07-19 11:59:18 -06:00
-> rewrite the --ui-axismap, --ui-buttonmap section, currently kind
of confusing
2011-08-22 11:15:06 -06:00
-> add --dbus documentation
2011-07-06 19:54:30 -06:00
* cycle-key is incomplete, should have additional mode that allows
next/prev without sending events, also has issues with stuck buttons
when multiple keys are pressed
2011-07-07 10:09:58 -06:00
-> only one key should be allowed to be pressed, last one will always be released (still fishy)
-> separate last and curr key to allow toggle without press
-> have each ButtonEvent be responsible to release the keys it
pressed? -> tricky, as it doesn't know those right now
-> need a time delay before button is actually send for situations
where sending the key is expensive (weapon switching in game might be slow)
2011-07-07 21:24:27 -06:00
-> add an option to have the cycle sequence not wrap around:
-> possible use: throttle in a flightsim mapped to 1-9
2011-08-23 03:51:42 -06:00
Possible future improvements:
- next/prev button that don't trigger the key, an activate button or
activate by timeout (to work around slow weapon change in some
games)
- graphical overlay that displays the current position
-> requires separate process
- single button inventory: next, hold to activate
2011-07-06 19:54:30 -06:00
2011-07-11 17:08:45 -06:00
Target for 0.9.0
================
2011-07-17 17:02:08 -06:00
* ./xboxdrv --axismap X1=X2,-Y1=Y2,X2=X1,-Y2=Y1 --mouse -s
Why do have the axis to be inverted in this case?
* alternative inventory solution: use the dpad, which gives however
only eight directions, need some timeout thing to make the
directions sticky
* MacroButtonEventHandler is still using raw UInput::send(), should
use UIEventEmitterPtr instead, UInput::send_rel_repetitive() should
be removed
* develop a simple scripting language or use an existing one
* look at suspend handling
* pass /dev/input/eventX, slot and serial number to on-connect script
* write DummyController that can be used in automated test cases
2011-07-11 17:08:45 -06:00
* allow the creation of virtual mice and keyboards with all buttons
and rel events, to allow realtime reconfiguration
2011-06-24 20:18:42 -06:00
2011-07-11 17:08:45 -06:00
* OR all output buttons and axis together
* native REL events
2011-07-17 17:02:08 -06:00
* get rid of UIEvent::resolve_device_id() if possible
2011-07-11 18:44:33 -06:00
* implement filter that removes glitched button events, i.e. events
that happen in very low timespans and are caused by broken micro switches
2011-06-24 20:18:42 -06:00
* use FIXME for random code improvements, use BUG for actual problems
* Collect Linux games with force feedback support: Bzflag?
* provide more meaningful debug output for force feedback
* cleanup UIEvent, add UIEventSequence
* --chatpad-debug is broken, use it for all the log_tmp()
2011-05-26 10:09:07 -06:00
* XboxController rumble code is wrong, old usb stuff
* there is a long delay in processing rumble messages, currently
worked around by only sending rumble commands on changes, but that
isn't a full solution, proper solution would be discarding messages
and only sending the current value
2011-05-25 16:53:17 -06:00
* -r 128,128 --quit doesn't work:
[TEMP] USBController::~USBController(): ~USBController
libusb:warning [libusb_close] internal signalling write failed, closing anyway
* chatpad doesn't get a 0x1b signal when its connected after xboxdrv
is already running
* active wireless controller aren't detected on startup of the daemon,
only they have send an event, any way to get activity status of the thing?
2011-04-13 11:44:04 -06:00
* print which sub features are enabled: chatpad, force feedback, headset
2011-03-25 11:02:21 -06:00
* check force feedback
2011-04-13 11:44:04 -06:00
* rumble-test is broken completely
2011-03-20 11:36:23 -06:00
* check output when --silent not given
* check clean shutdown
* check valgrind
* check daemon
* check autofire and other modifier that depend on time
* test all controller
* check that the child process works
* check that uinput gets its timeout/update calls (send_rel_event)
2011-03-20 06:18:37 -06:00
2011-03-20 14:39:45 -06:00
* cleanup a lot of the log_trace() and other temporary debug output
2011-03-22 08:29:27 -06:00
* check that repeated wireless controller connects and disconnects work [done]
* check that --quit works, currently broken
2011-03-20 14:39:45 -06:00
2011-03-23 10:58:57 -06:00
* search for "#ifdef FIXME"
2011-03-23 16:03:05 -06:00
* do proper error checking:
xboxdrv: src/usb_controller.cpp:218: void USBController::on_read_data(libusb_transfer*): Assertion `ret == LIBUSB_SUCCESS' failed.
Aborted
2011-03-25 11:02:21 -06:00
* exceptions in glib main loop might be dangerous and not really do what is intended
2011-03-23 16:03:05 -06:00
2011-03-25 11:02:21 -06:00
* move sigint/sigterm handling out of main.cpp and into xboxdrv_daemon.cpp (needs to use gmain_quit())
2011-03-23 16:03:05 -06:00
2011-03-25 11:02:21 -06:00
* LED do currently not get down on controller quit
2011-03-23 16:03:05 -06:00
2011-03-25 11:02:21 -06:00
* move LED setting into ControllerThread or somewhere else, not at controller creation time
2011-03-16 03:37:26 -06:00
2011-03-25 11:02:21 -06:00
* check that threads are cleaned up in daemon
2011-01-26 17:10:51 -07:00
2011-04-13 11:44:04 -06:00
* go through checklist, disable headset and chatpad support for now,
do a source only release
2011-05-25 16:53:17 -06:00
Stuff to do before 0.8.x release:
2011-03-25 15:45:13 -06:00
=================================
2011-05-25 16:53:17 -06:00
* add LD_PRELOAD joystick override hack to running xboxdrv with an app.exe
* change response curve syntax to allow defining two values for the
same point, one for the left one for the right to allow hard jumps
or allow giving x,y coordinates to have points net evenly spaced out, maybe both
* add expression modifier:
--modifier X1^expr=V*6+1<<2
2011-05-20 07:31:53 -06:00
* old udev errors:
g++ -o src/xboxdrv_daemon.o -c -isystem/usr/include/dbus-1.0 -isystem/
usr/lib/dbus-1.0/include -isystem/usr/include/glib-2.0 -isystem/usr/
lib/glib-2.0/include -pthread -isystem/usr/local/include/libusb-1.0 -g
-O3 -Wall -ansi -pedantic -DPACKAGE_VERSION='"0.7.3"' -Isrc src/
xboxdrv_daemon.cpp
src/xboxdrv_daemon.cpp: In member function 'void
XboxdrvDaemon::init_udev_monitor(const Options&)':
src/xboxdrv_daemon.cpp:251: error:
'udev_monitor_filter_add_match_subsystem_devtype' was not declared in
this scope
scons: *** [src/xboxdrv_daemon.o] Error 1
scons: building terminated because of errors.
make: *** [xboxdrv] Error 2
* add "null" button and key event to disable a button or axis (useful
to not triggering regular events when a shift button is pressed)
2011-04-13 11:44:04 -06:00
* macro support needs to search files in a few more locations;
* current directory
* directory of parent .ini file
* users xboxdrv config directory (don't have that yet)
* macro supports needs "init" command (somewhat done)
* add support for "include" in macro
* add support for macros that always reload when evaluated (makes testing easier)
* document REL_ -1 better
* when verbose is given, warn when keys are dual mapped, give list of free keys
* space is currently illegal, but shouldn't be "GUIDE = KEY_LEFTALT + KEY_E"
2011-05-25 16:53:17 -06:00
* write macro that calibrates the joystick for DOS games
2011-04-13 11:44:04 -06:00
* extra-devices adds a button when one only uses JS_0 buttons, shouldn't happen
2011-03-25 15:45:13 -06:00
* invert y axis on --evdev
2011-03-25 11:02:21 -06:00
* add double-click button, in the same wayne as hold-button
* add --controller 4 or --controller-count 4 or something like that
* add special LED status set switches the LED with the given config
2011-03-18 14:15:12 -06:00
* export build-in config files, both as text and as directory, so that users can browse them
* deadzone:MIN:MAX:SMOOTH is broken (fixed)
2011-03-18 02:22:23 -06:00
* deadzone filter documentation is wrong
2011-03-18 14:15:12 -06:00
* d-bus requires X11?! -> try system bus when running as root
2011-03-16 03:37:26 -06:00
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.
2011-03-16 05:52:21 -06:00
* add named output variables to chain filters and modifiers?!
2011-03-16 03:37:26 -06:00
2011-03-09 00:15:25 -07:00
== Daemon ==
* check how daemon reacts on suspend
- suspending the computer leads to LIBUSB_ERROR_IO, unplugging the
controller leads to LIBUSB_ERROR_OTHER
-> couldn't be replicated, both give LIBUSB_ERROR_OTHER
- errno is set to EBUSY
- the device handle can't be reused, device has to be reallocated
- integrate this with the "keep backlog of devices currently in use"
* do something with stdout/stderr when its run in --detach mode
== Other ==
2011-05-25 16:53:17 -06:00
* add a way to refresh/reshuffle controller asignment with xboxdrvctrl
(i.e. having two controller and unplugging the first won't reassign
the second to the first slot, that should be available on request)
2011-03-16 03:37:26 -06:00
* 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
2011-03-16 03:51:30 -06:00
-> USBReadThread doesn't react at all, it becomes stuck in the last call
2011-03-16 03:37:26 -06:00
* use static X11 keysym map to do the string translation?
* split src/axis_event.hpp and src/button_event.hpp
2011-03-09 00:15:25 -07:00
* 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,
no jaggies
-> UInput::send_rel_repetitive() needs to syncronize all REL events
with the same repeat interval whenever a new event comes in
2011-02-16 10:54:07 -07:00
2011-03-09 00:15:25 -07:00
send_val = value * time_count / repeat;
time_count = 0;
-> add a repeat timeout 0 that sends on each update
2011-03-16 03:37:26 -06:00
-> 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
2011-03-20 11:36:23 -06:00
* add "key-repeat", similar to rel-repeat
2011-03-16 03:37:26 -06:00
* 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
2011-03-25 11:02:21 -06:00
disable LT and RT -> already fixed, check it
2011-03-16 03:37:26 -06:00
* 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 ==
2011-03-09 00:15:25 -07:00
* multiple ControllerThread lead to UInput::update() being called
multiple times, as UInputMessageProcessor does call the update()
which is wrong
2011-03-16 03:37:26 -06:00
* 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
2011-03-05 03:06:05 -07:00
== Unsolved/WontFix ==
2011-02-28 21:24:54 -07:00
2011-03-05 03:06:05 -07:00
* after every thread cleanup, do an enumeration over all USB devices,
find those not currently used by a Slot and recreate them, this
should fix resume issues, this would also fix the issue with
ignoring controllers when all slots are full
2011-02-28 21:24:54 -07:00
2011-03-05 03:06:05 -07:00
-> bad idea, as it would let unused controllers slip into the free
slots, could lead to unexpected behaviour
2011-02-28 21:24:54 -07:00
2011-03-05 03:06:05 -07:00
-> maybe as D-Bus interface?
* allow multiple controllers in non-daemon mode
-> not a good idea, complicates stuff and duplicates code
2011-07-17 17:02:08 -06:00
-> make daemon mode the default in the future and make it as solid
as non-daemon mode
2011-03-05 03:06:05 -07:00
* remember controllers that couldn't be used when all slots where full
and use them when a slot got free -> discard, bad idea, as it
results in confusing behaviour
2011-03-16 03:37:26 -06:00
* 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)
2011-03-02 21:50:47 -07:00
* BTN_A@joystick.1 doesn't work for a single joystick, why? (joystick isn't id=0, why?)
2011-02-28 21:24:54 -07:00
* improve output on which uinput devices are created (even with udev
there doesn't seem to be a bullet proof way to detect what gets
created)
2011-03-02 21:50:47 -07:00
-> insert "guess code" before the uinput create call and just pretent thats bullet proof
-> figure out how exactly device names are choosen (first free or
are there other means? need to take special axes/buttons into account)
2011-03-05 03:06:05 -07:00
== Daemon ==
* improve output in daemon mode, when --quiet is not given print the
number of allocated controller slots
2011-02-28 21:24:54 -07:00
* get rid of all std::cout stuff when using detached daemon, redirect
log output to a file, syslog or somewhere else:
--silent: stops event output
2011-03-05 03:06:05 -07:00
--quiet: stops all stdout output (automatically used when --detach is given, except for errors)
2011-02-28 21:24:54 -07:00
--verbose: print info level log output
--debug: print debug level log output
2011-03-03 17:00:34 -07:00
== D-Bus ==
* interface for next release:
Daemon/GetControllerSlotCount -> INT // do we need those or can
Daemon/GetControllerCount -> INT // directories be browsed?
2011-03-05 03:06:05 -07:00
== Other ==
* document that Xbox360 wireless controller shuts down at 15min
* give proper exit code when no controller is found
* sort options a bit more between global ones, slot local ones and
config local ones
2011-03-03 17:00:34 -07:00
* in INI files should allow:
[xboxdrv]
ui-buttonmap = A=BTN_A,B=BTN_B,...
- in general cleanup config handling, turn almost everything into
proper functions and use the same functions for both cmdline and ini
* allow setting a --default-name from which all other controller names
are derived
-> already there in the form of auto.auto?
-> No, as those don't derive the name, but set a fixed one
* allow swap/assign of controller to slots via dbus
2011-02-28 21:24:54 -07:00
* do modifier/filter dump when --verbose is given, make verbose
overall more useful
* make more use of percentance values (in deadzone filter for example)
* couldn't convert 'XK_Page_Up' to enum, not a member of X11Keysym
currenty code can't handle multple names for a single key
2011-02-14 13:45:43 -07:00
* add a fun modifier that counts button presses and other useless stuff
- count button presses (done)
- count time a button is held down, both in min:sec and percent
- count distance an axis travels
2011-02-28 21:24:54 -07:00
- allow access/reset via dbus
2011-02-14 13:45:43 -07:00
2011-02-28 21:24:54 -07:00
* document them, ignore axis and button time for now
2011-02-14 13:45:43 -07:00
2011-02-28 21:24:54 -07:00
* 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
2011-02-14 13:45:43 -07:00
* add --ui-buttonmap A=KEY_A:KEY_B:1000:1
the last 0/1 parameter tells if it should do:
- 0: send on release
- 1: always send when pressed
2011-02-28 21:24:54 -07:00
different games might require different behaviours for the
hold-button, so it should be an user option
2011-02-14 13:45:43 -07:00
* add double shift buttons: L+R+start
* add execv: that takes arguments in ARG0:ARG1,... style
* add system: that takes arguments "ARG0 ARG1 ..." style
2011-01-30 12:45:53 -07:00
* add [controller0/config0] support for ControllerOptions
* add [controller0] support for ControllerSlotOptions
2011-01-30 10:33:22 -07:00
* write relaxation modifier/filter
2011-01-30 11:18:49 -07:00
* make extra-event creation a bit more clever, i.e. only create BTN_A
when needed, not when another button is present that can be used to
identify the device as joystick, also document exactly which
buttons/axis combinations are valid.
2011-02-02 21:27:23 -07:00
* allow something like:
void = BTN_A
to create empty events on uinput
2011-01-30 10:33:22 -07:00
Other Stuff
===========
2011-01-29 19:20:29 -07:00
* remove uinput.send_rel_repetitive() replace with just EventHandler::update()
2011-03-16 03:37:26 -06:00
2011-02-28 21:24:54 -07:00
-> might not be needed, send_rel_repetitive() is kind of convenient
2011-01-28 21:10:34 -07:00
2011-03-16 03:37:26 -06:00
-> send_rel_repetitive() doesn't work with multi-axis REL events (mouse emulation)
2011-01-28 18:29:25 -07:00
* boost::lexical_cast<> error messages are useless, make some better ones
2011-03-16 03:37:26 -06:00
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
2011-01-28 18:29:25 -07:00
2011-01-28 18:10:35 -07:00
* --match again sysname could make sense, seems somewhat constant:
"5-2" Xbox1 controller results in "5-2.1", due to being really two
devices, would help to now how exactly those are formed
2011-02-28 21:24:54 -07:00
* extend usbid match rule to bcd device
2011-01-26 17:10:51 -07:00
2011-01-27 21:27:16 -07:00
Stuff to do before 0.7.3 release:
=================================
* turn EnumBox into singleton
2011-01-28 18:29:25 -07:00
* allow EnumBox to have multiple names per values per key
2011-01-27 21:27:16 -07:00
* allow --modifier help, --ui-buttonmap X2^help
2011-01-28 18:29:25 -07:00
* move XBOX_BTN_UNKNOWN behind XBOX_BTN_MAX (or make it -1), 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 button is pressed'
2011-01-20 16:14:21 -07:00
* document significant patches in AUTHORS
2011-01-14 11:04:25 -07:00
2011-01-22 04:17:31 -07:00
2 Added latest version of runxboxdrv from Michael Rans <rans@email.com>
1 Added trigger deadzone patch from Jan Henning Thorsen <git@flodhest.net> with a few changes
1 Applied daniel åkerud <daniel.akerud@gmail.com>'s SIGTERM patch
1 Applied low latency patch from daniel åkerud <daniel.akerud@gmail.com>
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} ??!?!?
2011-01-26 17:10:51 -07:00
* 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?
- Options::finish() to do final things?
2011-01-26 09:26:17 -07:00
2011-01-20 16:14:21 -07:00
Stuff to do before 0.7.x release:
=================================
2011-01-28 20:43:15 -07:00
* add Wiimote and PS3 bluetooth support
2011-01-26 09:26:17 -07:00
* -R, --rumble-test is broken for FirestormDualController (has no analog triggers)
2011-01-28 18:29:25 -07:00
* add ABS support to macros events (need to deal with min/max)
2011-01-24 11:09:26 -07:00
2011-01-23 20:35:52 -07:00
* add support for pairing the controller to the PC (or zero)
--ps3-pair 00:00:00:00:00:00
--ps3-pair-with-bluetooth
2011-01-22 08:31:56 -07:00
* get rid of set_button()/get_button(), turn the message objects into full classes
2011-01-20 16:14:21 -07:00
* make chatpad configurable:
--ui-chatpad a=KEY_A,green+a=SHIFT_X+KEY_B,...
* make sure that XK_??? names work with keys that are
shifted/mode_switched in the keymap, i.e. send key combination
2011-01-09 09:25:32 -07:00
* can't parse:
2011-01-26 09:26:17 -07:00
2011-01-09 09:25:32 -07:00
--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
2011-01-20 16:14:21 -07:00
* current deadzone code messes up the diagonals
2011-01-13 10:05:57 -07:00
2011-01-20 16:14:21 -07:00
* shifted axis without default mapping don't work:
2011-01-13 10:05:57 -07:00
2011-01-20 16:14:21 -07:00
./xboxdrv --ui-axismap lb+x1^cal:-64000:0:64000
2011-01-13 10:05:57 -07:00
2011-01-20 16:14:21 -07:00
in those cases the default mapping for the unshifted axis should be used
2011-01-13 10:05:57 -07:00
2011-01-20 16:14:21 -07:00
* add analog emulation for button (i.e. the longer its pressed, the higher the value)
* write UIEvent::from_string()
2011-01-13 10:05:57 -07:00
* basic Dualstrike mouse emulation with absolute position:
./xboxdrv-dualstrike \
--ui-clear \
--ui-buttonmap rb=key:1-BTN_LEFT,lb=key:1-BTN_RIGHT \
2011-01-24 21:10:48 -07:00
--ui-axismap x2^cal:-25000:0:25000=abs:1-ABS_X,y2^cal:-25000:0:25000=abs:1-ABS_Y \
2011-01-13 10:05:57 -07:00
--ui-axismap x1=KEY_LEFT:KEY_RIGHT,y1=KEY_DOWN:KEY_UP -s
2011-01-20 14:37:36 -07:00
Chatpad
=======
2011-01-02 11:12:32 -07:00
Figure out a way to load custom keymaps:
* http://madduck.net/docs/extending-xkb/
* http://stackoverflow.com/questions/1557689/keyboard-remapping-with-more-modifiers
* http://tldp.org/HOWTO/Keyboard-and-Console-HOWTO-15.html
2010-12-25 05:25:02 -07:00
2011-01-09 09:25:32 -07:00
* 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
2011-01-02 11:12:32 -07:00
http://www.mp3car.com/vbulletin/input-devices/108554-xbox360-chatpad-awsome-backlit-mini-keyboard-16.html#post1256444
2011-01-26 09:26:17 -07:00
2010-12-31 14:01:47 -07:00
* change default axis/button map depending on controller type (tricky as
type is only really known after the axis/buttonmap as already been
build):
2010-12-29 09:46:41 -07:00
2010-12-30 15:23:32 -07:00
* remove guide button from default mapping when its an Xbox1 controller
2010-12-31 09:31:17 -07:00
2010-12-31 14:01:47 -07:00
* guitar handling was changed in a4e1003cba0ff925358ce5ed84d2bf9a728e93d6
2010-12-28 11:07:59 -07:00
2010-12-30 15:23:32 -07:00
* REL_ events could need acceleration support, as mouse emulation is currently kind of imprecise
2010-12-25 05:25:02 -07:00
2011-01-24 21:10:48 -07:00
Stuff to do before 0.7.x release:
2010-12-25 05:25:02 -07:00
=================================
2011-03-16 03:37:26 -06:00
* add extra checks to make sure the evdev buttons and axis given exist
on the current device when using --evdev
2010-12-17 06:16:57 -07:00
2010-12-13 01:43:17 -07:00
* allow --type to work even when --device-by-id is not given
* axis emulation
--ui-axisemulation A:B=ABS_X:5
2010-05-30 06:49:32 -06:00
* match by protocol not, just vendor/product, from xpad.c:
/* Xbox 360 has a vendor-specific class, so we cannot match it with only
* USB_INTERFACE_INFO (also specifically refused by USB subsystem), so we
* match against vendor id as well. Wired Xbox 360 devices have protocol 1,
* wireless controllers have protocol 129. */
#define XPAD_XBOX360_VENDOR_PROTOCOL(vend,pr) \
.match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_INT_INFO, \
.idVendor = (vend), \
.bInterfaceClass = USB_CLASS_VENDOR_SPEC, \
.bInterfaceSubClass = 93, \
.bInterfaceProtocol = (pr)
#define XPAD_XBOX360_VENDOR(vend) \
{ XPAD_XBOX360_VENDOR_PROTOCOL(vend,1) }, \
{ XPAD_XBOX360_VENDOR_PROTOCOL(vend,129) }
2010-12-17 06:16:57 -07:00
--ui-axismap LT=KEY_A:KEY_A:1
2010-05-19 22:57:01 -06:00
2010-05-26 10:56:05 -06:00
Feature
=======
2009-06-22 19:42:40 -06:00
* figure out a way to make userspace force feedback driver not become dead processes
2009-01-24 10:48:17 -07:00
* test TR:Anniversary with max effect 16
2010-12-17 06:16:57 -07:00
2009-01-16 22:31:14 -07:00
2009-01-01 19:21:31 -07:00
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0) <- 21 == EV_FF (status report?)
2009-01-05 14:15:08 -07:00
2009-01-01 19:21:31 -07:00
http://www.immersion.com/developer/downloads/ImmFundamentals/HTML/
2009-01-23 12:00:02 -07:00
http://msdn.microsoft.com/en-us/library/bb219655(VS.85).aspx
2009-01-14 01:23:18 -07:00
Later versions:
===============
2009-06-18 14:50:22 -06:00
* 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
I don't know if it is allowed at all in the console.
2009-06-20 15:22:47 -06:00
Colour: Button: Value in X1 (slide):
Green A -27500
Red B -12900
Yellow Y +7000
Blue X +18500
Orange LB1 +32767
(None) (None) -300
2009-01-24 07:48:02 -07:00
* send FF status reports (maybe, is that used by anything?)
* figure out the max values of force feedback effects so that stuff is
mapped more properly (kind of done, could need verification)
2009-01-16 22:31:14 -07:00
* figure out which devices xorg/hal handles as keyboard and how to
make it always happen, seems to require two keyboard keys, devices
with only one aren't registered
* report more precisly what devices got created, include device name (HAL has that information)
2009-01-14 01:23:18 -07:00
* add support for LED messages (can this be used by anything?)
2009-01-06 23:19:06 -07:00
2011-02-02 21:27:23 -07:00
Stuff to do before 0.8.0 release:
=================================
* Playstation 3 controller bluetooth support
- http://www.pabr.org/sixlinux/sixlinux.en.html
- http://www.motioninjoy.com/
- figure out what the remaining unknown bits mean:
data from just pluging the controller in and out a few times
without much pause inbetween:
Dualshock3:
// leaving controller plugged in for a longer time settles to this:
00 00 03 ef 16 00 00 00 00 33 fc 77 01 de
00 00 03 ef 16 00 00 00 00 33 fc 77 01 de
00 00 03 ef 16 00 00 00 00 33 fc 77 01 c0
00 00 02 ee 12 00 00 00 00 12 fc 77 01 de
^^^^^ ^^^^^
00 00 01 ee 12 00 00 00 00 12 fc 77 01 de
00 00 03 ef 16 00 00 00 00 11 fc 77 01 de
00 00 03 ef 16 00 00 00 00 33 fc 77 01 de
00 00 02 ee 12 00 00 00 00 12 fc 77 01 de
wrong ideas: bluetooth master id
00 00 01 ef 16 00 00 00 00 11 fc 77 01 c0
00 00 03 ef 16 00 00 00 00 11 fc 77 01 c0
SIXAXIS:
00 00 06 ee 10 00 00 00 00 06 83 77 01 81
00 00 06 ee 10 00 00 00 00 06 83 77 01
00 00 06 ee 10 00 00 00 00 06 83 77
// taken from: http://www.pabr.org/sixlinux/sixlinux.en.html
00 00 02 ee 10 00 00 00 00 02 b2 77 01 81
random guesses: bluetooth id, serial number, calibration data,
battery status
* Wiimote support (either native or via libcwiid
2009-01-05 20:07:09 -07:00
2011-02-02 21:27:23 -07:00
Random Stuff
============
2009-01-01 19:21:31 -07:00
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2007-March/060263.html
2008-12-29 22:43:06 -07:00
- fix http://userweb.kernel.org/~dtor/eviocgbit-bug.html in evtest
- cleanup evtest some more, add more features
2008-11-06 07:41:12 -07:00
- using rumble in scripts doesn't work, since you can't reset rumble back to 0,0
2008-08-07 08:44:23 -06:00
- thread away on all endpoints
- read from stdin on the main thread
- send output to file or so
usb -d 005:006 -c 5:in,5:out,6:in,7:in,8:out -o /tmp/out, else stdin
2008-05-03 04:26:38 -06:00
2008-04-11 05:59:07 -06:00
# EOF #