@@ -249,36 +249,27 @@ TU_ATTR_WEAK bool tud_hid_set_idle_cb(uint8_t idle_rate);
249
249
250
250
// Gamepad Report Descriptor Template
251
251
// with 16 buttons, 2 joysticks and 1 hat/dpad with following layout
252
- // | Button Map (2 bytes) | X | Y | Z | Rx | Ry | Rz (1 byte each) | hat/DPAD (1 byte)
252
+ // | X | Y | Z | Rz | Rx | Ry (1 byte each) | hat/DPAD (1 byte) | Button Map (2 bytes) |
253
253
#define TUD_HID_REPORT_DESC_GAMEPAD (...) \
254
254
HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\
255
255
HID_USAGE ( HID_USAGE_DESKTOP_GAMEPAD ) ,\
256
256
HID_COLLECTION ( HID_COLLECTION_APPLICATION ) ,\
257
257
/* Report ID if any */ \
258
258
__VA_ARGS__ \
259
- /* 16 bit Button Map */ \
260
- HID_USAGE_PAGE ( HID_USAGE_PAGE_BUTTON ) ,\
261
- HID_USAGE_MIN ( 1 ) ,\
262
- HID_USAGE_MAX ( 16 ) ,\
263
- HID_LOGICAL_MIN ( 0 ) ,\
264
- HID_LOGICAL_MAX ( 1 ) ,\
265
- HID_REPORT_COUNT ( 16 ) ,\
266
- HID_REPORT_SIZE ( 1 ) ,\
267
- HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ) ,\
268
- /* 8 bit X, Y, Z, Rx, Ry, Rz (min -127, max 127 ) */ \
259
+ /* 8 bit X, Y, Z, Rz, Rx, Ry (min -127, max 127 ) */ \
269
260
HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\
270
261
HID_USAGE ( HID_USAGE_DESKTOP_X ) ,\
271
262
HID_USAGE ( HID_USAGE_DESKTOP_Y ) ,\
272
263
HID_USAGE ( HID_USAGE_DESKTOP_Z ) ,\
264
+ HID_USAGE ( HID_USAGE_DESKTOP_RZ ) ,\
273
265
HID_USAGE ( HID_USAGE_DESKTOP_RX ) ,\
274
266
HID_USAGE ( HID_USAGE_DESKTOP_RY ) ,\
275
- HID_USAGE ( HID_USAGE_DESKTOP_RZ ) ,\
276
267
HID_LOGICAL_MIN ( 0x81 ) ,\
277
268
HID_LOGICAL_MAX ( 0x7f ) ,\
278
269
HID_REPORT_COUNT ( 6 ) ,\
279
270
HID_REPORT_SIZE ( 8 ) ,\
280
271
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ) ,\
281
- /* 8 bit Hat Button Map */ \
272
+ /* 8 bit DPad/ Hat Button Map */ \
282
273
HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\
283
274
HID_USAGE ( HID_USAGE_DESKTOP_HAT_SWITCH ) ,\
284
275
HID_LOGICAL_MIN ( 1 ) ,\
@@ -288,6 +279,15 @@ TU_ATTR_WEAK bool tud_hid_set_idle_cb(uint8_t idle_rate);
288
279
HID_REPORT_COUNT ( 1 ) ,\
289
280
HID_REPORT_SIZE ( 8 ) ,\
290
281
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ) ,\
282
+ /* 16 bit Button Map */ \
283
+ HID_USAGE_PAGE ( HID_USAGE_PAGE_BUTTON ) ,\
284
+ HID_USAGE_MIN ( 1 ) ,\
285
+ HID_USAGE_MAX ( 16 ) ,\
286
+ HID_LOGICAL_MIN ( 0 ) ,\
287
+ HID_LOGICAL_MAX ( 1 ) ,\
288
+ HID_REPORT_COUNT ( 16 ) ,\
289
+ HID_REPORT_SIZE ( 1 ) ,\
290
+ HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ) ,\
291
291
HID_COLLECTION_END \
292
292
293
293
// HID Generic Input & Output
0 commit comments