History

input: document gamepad API and add extra keycodes

Until today all gamepad input drivers report their data differently. It is nearly impossible to write applications for more than one device in a generic way. Therefore, this patch introduces a uniform gamepad API which will be used for all new drivers. Instead of mapping buttons by their labels, we now map them by position. This allows applications to work with any gamepad regardless of the labels on the buttons. Furthermore, we standardize the ABS_* codes for analog triggers and sticks. For D-Pads the long overdue BTN_DPAD_* codes are introduced. They should be fairly obvious how to use. To avoid confusion, the action buttons now have BTN_EAST/SOUTH/WEST/NORTH aliases.

David Herrmann committed 13 years ago

Commit d09bbfd1 parent 5b22b911 file · +9 −0Browse files

Showing the changes to include/uapi (1 of 1 file). Show all

Unified · Split

include/uapi/linux/input.h+9−0
@@ -507,10 +507,14 @@ struct input_keymap_entry { · 506 unmodified lines
507 507
508#define BTN_GAMEPAD 0x130508#define BTN_GAMEPAD 0x130
509#define BTN_A 0x130509#define BTN_A 0x130
510#define BTN_SOUTH 0x130
510#define BTN_B 0x131511#define BTN_B 0x131
512#define BTN_EAST 0x131
511#define BTN_C 0x132513#define BTN_C 0x132
512#define BTN_X 0x133514#define BTN_X 0x133
515#define BTN_NORTH 0x133
513#define BTN_Y 0x134516#define BTN_Y 0x134
517#define BTN_WEST 0x134
514#define BTN_Z 0x135518#define BTN_Z 0x135
515#define BTN_TL 0x136519#define BTN_TL 0x136
516#define BTN_TR 0x137520#define BTN_TR 0x137
@@ -707,6 +711,11 @@ struct input_keymap_entry { · 190 unmodified lines
707#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */711#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */
708#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */712#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */
709 713
714#define BTN_DPAD_UP 0x220
715#define BTN_DPAD_DOWN 0x221
716#define BTN_DPAD_LEFT 0x222
717#define BTN_DPAD_RIGHT 0x223
718
710#define BTN_TRIGGER_HAPPY 0x2c0719#define BTN_TRIGGER_HAPPY 0x2c0
711#define BTN_TRIGGER_HAPPY1 0x2c0720#define BTN_TRIGGER_HAPPY1 0x2c0
712#define BTN_TRIGGER_HAPPY2 0x2c1721#define BTN_TRIGGER_HAPPY2 0x2c1