summaryrefslogtreecommitdiff
path: root/src/class/hid/hid.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/class/hid/hid.h')
-rw-r--r--src/class/hid/hid.h79
1 files changed, 61 insertions, 18 deletions
diff --git a/src/class/hid/hid.h b/src/class/hid/hid.h
index 5cc9233b5..ec14c9c7c 100644
--- a/src/class/hid/hid.h
+++ b/src/class/hid/hid.h
@@ -201,30 +201,73 @@ typedef struct TU_ATTR_PACKED
int8_t rx; ///< Delta Rx movement of analog left trigger
int8_t ry; ///< Delta Ry movement of analog right trigger
uint8_t hat; ///< Buttons mask for currently pressed buttons in the DPad/hat
- uint16_t buttons; ///< Buttons mask for currently pressed buttons
+ uint32_t buttons; ///< Buttons mask for currently pressed buttons
}hid_gamepad_report_t;
-/// Standard Gamepad Buttons Bitmap (from Linux input event codes)
+/// Standard Gamepad Buttons Bitmap
typedef enum
{
- GAMEPAD_BUTTON_A = TU_BIT(0), ///< A/South button
- GAMEPAD_BUTTON_B = TU_BIT(1), ///< B/East button
- GAMEPAD_BUTTON_C = TU_BIT(2), ///< C button
- GAMEPAD_BUTTON_X = TU_BIT(3), ///< X/North button
- GAMEPAD_BUTTON_Y = TU_BIT(4), ///< Y/West button
- GAMEPAD_BUTTON_Z = TU_BIT(5), ///< Z button
- GAMEPAD_BUTTON_TL = TU_BIT(6), ///< L1 button
- GAMEPAD_BUTTON_TR = TU_BIT(7), ///< R1 button
- GAMEPAD_BUTTON_TL2 = TU_BIT(8), ///< L2 button
- GAMEPAD_BUTTON_TR2 = TU_BIT(9), ///< R2 button
- GAMEPAD_BUTTON_SELECT = TU_BIT(10), ///< Select button
- GAMEPAD_BUTTON_START = TU_BIT(11), ///< Start button
- GAMEPAD_BUTTON_MODE = TU_BIT(12), ///< Mode button
- GAMEPAD_BUTTON_THUMBL = TU_BIT(13), ///< L3 button
- GAMEPAD_BUTTON_THUMBR = TU_BIT(14), ///< R3 button
-//GAMEPAD_BUTTON_ = TU_BIT(15), ///< Undefined button
+ GAMEPAD_BUTTON_0 = TU_BIT(0),
+ GAMEPAD_BUTTON_1 = TU_BIT(1),
+ GAMEPAD_BUTTON_2 = TU_BIT(2),
+ GAMEPAD_BUTTON_3 = TU_BIT(3),
+ GAMEPAD_BUTTON_4 = TU_BIT(4),
+ GAMEPAD_BUTTON_5 = TU_BIT(5),
+ GAMEPAD_BUTTON_6 = TU_BIT(6),
+ GAMEPAD_BUTTON_7 = TU_BIT(7),
+ GAMEPAD_BUTTON_8 = TU_BIT(8),
+ GAMEPAD_BUTTON_9 = TU_BIT(9),
+ GAMEPAD_BUTTON_10 = TU_BIT(10),
+ GAMEPAD_BUTTON_11 = TU_BIT(11),
+ GAMEPAD_BUTTON_12 = TU_BIT(12),
+ GAMEPAD_BUTTON_13 = TU_BIT(13),
+ GAMEPAD_BUTTON_14 = TU_BIT(14),
+ GAMEPAD_BUTTON_15 = TU_BIT(15),
+ GAMEPAD_BUTTON_16 = TU_BIT(16),
+ GAMEPAD_BUTTON_17 = TU_BIT(17),
+ GAMEPAD_BUTTON_18 = TU_BIT(18),
+ GAMEPAD_BUTTON_19 = TU_BIT(19),
+ GAMEPAD_BUTTON_20 = TU_BIT(20),
+ GAMEPAD_BUTTON_21 = TU_BIT(21),
+ GAMEPAD_BUTTON_22 = TU_BIT(22),
+ GAMEPAD_BUTTON_23 = TU_BIT(23),
+ GAMEPAD_BUTTON_24 = TU_BIT(24),
+ GAMEPAD_BUTTON_25 = TU_BIT(25),
+ GAMEPAD_BUTTON_26 = TU_BIT(26),
+ GAMEPAD_BUTTON_27 = TU_BIT(27),
+ GAMEPAD_BUTTON_28 = TU_BIT(28),
+ GAMEPAD_BUTTON_29 = TU_BIT(29),
+ GAMEPAD_BUTTON_30 = TU_BIT(30),
+ GAMEPAD_BUTTON_31 = TU_BIT(31),
}hid_gamepad_button_bm_t;
+/// Standard Gamepad Buttons Naming from Linux input event codes
+/// https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h
+#define GAMEPAD_BUTTON_A GAMEPAD_BUTTON_0
+#define GAMEPAD_BUTTON_SOUTH GAMEPAD_BUTTON_0
+
+#define GAMEPAD_BUTTON_B GAMEPAD_BUTTON_1
+#define GAMEPAD_BUTTON_EAST GAMEPAD_BUTTON_1
+
+#define GAMEPAD_BUTTON_C GAMEPAD_BUTTON_2
+
+#define GAMEPAD_BUTTON_X GAMEPAD_BUTTON_3
+#define GAMEPAD_BUTTON_NORTH GAMEPAD_BUTTON_3
+
+#define GAMEPAD_BUTTON_Y GAMEPAD_BUTTON_4
+#define GAMEPAD_BUTTON_WEST GAMEPAD_BUTTON_4
+
+#define GAMEPAD_BUTTON_Z GAMEPAD_BUTTON_5
+#define GAMEPAD_BUTTON_TL GAMEPAD_BUTTON_6
+#define GAMEPAD_BUTTON_TR GAMEPAD_BUTTON_7
+#define GAMEPAD_BUTTON_TL2 GAMEPAD_BUTTON_8
+#define GAMEPAD_BUTTON_TR2 GAMEPAD_BUTTON_9
+#define GAMEPAD_BUTTON_SELECT GAMEPAD_BUTTON_10
+#define GAMEPAD_BUTTON_START GAMEPAD_BUTTON_11
+#define GAMEPAD_BUTTON_MODE GAMEPAD_BUTTON_12
+#define GAMEPAD_BUTTON_THUMBL GAMEPAD_BUTTON_13
+#define GAMEPAD_BUTTON_THUMBR GAMEPAD_BUTTON_14
+
/// Standard Gamepad HAT/DPAD Buttons (from Linux input event codes)
typedef enum
{