133 lines
3.2 KiB
Text
133 lines
3.2 KiB
Text
* Guitar Hero Controller:
|
|
- lsusb -v output looks like a XBox360 controller
|
|
- usbcat looks like an XBox360 controller
|
|
- it doesn't report events
|
|
|
|
http://forums.gentoo.org/viewtopic-p-5061825.html
|
|
http://gentoo-wiki.com/HOWTO_Xbox_360_controller_on_Linux
|
|
http://happypenguin.org/show?xboxdrv
|
|
http://ubuntuforums.org/showthread.php?t=404577&page=16
|
|
|
|
* add jstest, evtest into the source
|
|
|
|
* disconnecting the pad in use will just let the driver wait forever
|
|
for new data, any way we can catch a disconnect?
|
|
|
|
* a way to configure the deadzone for axis (might be needed for some games)
|
|
|
|
* Add support for dancepad/mats (should just mean cleanup up the
|
|
buttons/axis not provided by the dancepad/mat)
|
|
|
|
New Command Line Options:
|
|
|
|
--button-map BTN
|
|
|
|
BTN is a list of integers, where each integer corresponds to the
|
|
event that gets send
|
|
|
|
A,B,X,Y,LB,RB,SL,SR,LT,RT,Start,Mode,Back,DPAD-UP,DPAD-DOWN,DPAD-LEFT,DPAD-RIGHT
|
|
A,B,X,Y,TL2,TR2,TL,TR,
|
|
|
|
#define BTN_A 0x130
|
|
#define BTN_B 0x131
|
|
#define BTN_C 0x132
|
|
#define BTN_X 0x133
|
|
#define BTN_Y 0x134
|
|
#define BTN_Z 0x135
|
|
#define BTN_TL 0x136
|
|
#define BTN_TR 0x137
|
|
#define BTN_TL2 0x138
|
|
#define BTN_TR2 0x139
|
|
#define BTN_SELECT 0x13a
|
|
#define BTN_START 0x13b
|
|
#define BTN_MODE 0x13c
|
|
#define BTN_THUMBL 0x13d
|
|
#define BTN_THUMBR 0x13e
|
|
|
|
--dpad-first
|
|
Dpad becomes first and second axis, instead of last, useful for 2D
|
|
jump'n run
|
|
|
|
--stick2-as-throttle
|
|
Makes the second stick act as throttle control
|
|
|
|
* add support to remap keys
|
|
|
|
* allow mouse emulation
|
|
|
|
* allow swapping of dpad and analog axis, so that dpad is first instead of last
|
|
|
|
* merge this thing with Pingus Input handling to get a very flexible framework?
|
|
|
|
* ...
|
|
|
|
Use cases:
|
|
==========
|
|
* flightsim:
|
|
expects: X/Y Rudder Throttle
|
|
XBox: Left-Stick LT+RT Right-Stick(rel)
|
|
|
|
* FPS:
|
|
expects: Mouse-X/Y Walk-X/Y Trigger
|
|
XBox: Left-Stick RickStick Trigger(btn)
|
|
|
|
* 2D Jump Run
|
|
needs dpad first
|
|
|
|
Needed features:
|
|
================
|
|
* stick to mouse
|
|
* relative-axis (throttle doesn't flip back, a stick does, need to handle that)
|
|
* trigger to button
|
|
* dpad to axis
|
|
* dpad to button
|
|
* inversal of axis
|
|
* soft-axis for dpad
|
|
|
|
(controller
|
|
(button (name "BTN_X") ;; X and Y send out BTN_X events
|
|
(device (xbox360-button "Y")
|
|
(xbox360-button "X")))
|
|
(button (name "BTN_A")
|
|
(device (inverse (xbox360-button "Y"))))
|
|
(axis (name "ABS_X")
|
|
...
|
|
)
|
|
|
|
;; -- Pingus Input Configuration --
|
|
(pingus-controller
|
|
(standard-pointer
|
|
(usbmouse:pointer (device "/dev/input/mx500")))
|
|
|
|
(standard-scroller
|
|
(usbmouse:scroller (device "/dev/input/marblemouse")))
|
|
|
|
(primary-button
|
|
(usbmouse:button (device "/dev/input/mx500") (button 0)))
|
|
|
|
(secondary-button
|
|
(usbmouse:button (device "/dev/input/mx500") (button 1)))
|
|
|
|
(pause-button
|
|
(usbmouse:button (device "/dev/input/mx500") (button 4)))
|
|
|
|
(fast-forward-button
|
|
(usbmouse:button (device "/dev/input/mx500") (button 3)))
|
|
|
|
;; (armageddon-button
|
|
;; (usbmouse:button (device "/dev/input/mx500") (button 4)))
|
|
|
|
(escape-button
|
|
(sdl:keyboard-button (key "escape")))
|
|
|
|
(action-up-button
|
|
(usbmouse:button (device "/dev/input/mx500") (button 6)))
|
|
|
|
(action-down-button
|
|
(usbmouse:button (device "/dev/input/mx500") (button 5)))
|
|
)
|
|
|
|
;; EOF ;;
|
|
|
|
|
|
# EOF #
|