|
|
@@ -284,9 +284,8 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
|
|
|
HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
|
|
|
HID_RI_USAGE(8, 0x04), /* Joystick */
|
|
|
HID_RI_COLLECTION(8, 0x01), /* Application */
|
|
|
- HID_RI_USAGE(8, 0x01), /* Pointer */
|
|
|
HID_RI_COLLECTION(8, 0x00), /* Physical */
|
|
|
-
|
|
|
+ HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
|
|
|
#if JOYSTICK_AXES_COUNT >= 1
|
|
|
HID_RI_USAGE(8, 0x30), // USAGE (X)
|
|
|
#endif
|
|
|
@@ -309,8 +308,8 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
|
|
|
HID_RI_LOGICAL_MAXIMUM(8, 127),
|
|
|
HID_RI_REPORT_COUNT(8, JOYSTICK_AXES_COUNT),
|
|
|
HID_RI_REPORT_SIZE(8, 0x08),
|
|
|
- HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE),
|
|
|
-
|
|
|
+ HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
|
|
|
+
|
|
|
HID_RI_USAGE_PAGE(8, 0x09), /* Button */
|
|
|
HID_RI_USAGE_MINIMUM(8, 0x01), /* Button 1 */
|
|
|
HID_RI_USAGE_MAXIMUM(8, JOYSTICK_BUTTON_COUNT), /* Button 5 */
|
|
|
@@ -319,7 +318,12 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
|
|
|
HID_RI_REPORT_COUNT(8, JOYSTICK_BUTTON_COUNT),
|
|
|
HID_RI_REPORT_SIZE(8, 0x01),
|
|
|
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
|
|
|
-
|
|
|
+
|
|
|
+ #if (JOYSTICK_BUTTON_COUNT % 8) != 0
|
|
|
+ HID_RI_REPORT_SIZE(8, 0x01),
|
|
|
+ HID_RI_REPORT_COUNT(8, 8 - (JOYSTICK_BUTTON_COUNT % 8)),
|
|
|
+ HID_RI_INPUT(8, HID_IOF_CONSTANT),
|
|
|
+ #endif
|
|
|
HID_RI_END_COLLECTION(0),
|
|
|
HID_RI_END_COLLECTION(0),
|
|
|
};
|