From 645359e5d06758172fe3b6c22ad62641af56b4ad Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 26 Apr 2022 08:54:34 +1000 Subject: Joystick: Simplify report descriptor and clean up error messages (#16926) --- tmk_core/protocol/usb_descriptor.c | 43 +++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 24 deletions(-) (limited to 'tmk_core') diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index 0b992ba6c5..063bd2c3f1 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -347,49 +347,44 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM ConsoleReport[] = { #endif #ifdef JOYSTICK_ENABLE -# if JOYSTICK_AXES_COUNT == 0 && JOYSTICK_BUTTON_COUNT == 0 -# error Need at least one axis or button for joystick -# endif 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_COLLECTION(8, 0x00), // Physical + HID_RI_USAGE_PAGE(8, 0x01), // Generic Desktop + HID_RI_USAGE(8, 0x04), // Joystick + HID_RI_COLLECTION(8, 0x01), // Application + HID_RI_COLLECTION(8, 0x00), // Physical +# if JOYSTICK_AXES_COUNT > 0 HID_RI_USAGE_PAGE(8, 0x01), // Generic Desktop -# if JOYSTICK_AXES_COUNT >= 1 HID_RI_USAGE(8, 0x30), // X -# endif -# if JOYSTICK_AXES_COUNT >= 2 +# if JOYSTICK_AXES_COUNT > 1 HID_RI_USAGE(8, 0x31), // Y -# endif -# if JOYSTICK_AXES_COUNT >= 3 +# endif +# if JOYSTICK_AXES_COUNT > 2 HID_RI_USAGE(8, 0x32), // Z -# endif -# if JOYSTICK_AXES_COUNT >= 4 +# endif +# if JOYSTICK_AXES_COUNT > 3 HID_RI_USAGE(8, 0x33), // Rx -# endif -# if JOYSTICK_AXES_COUNT >= 5 +# endif +# if JOYSTICK_AXES_COUNT > 4 HID_RI_USAGE(8, 0x34), // Ry -# endif -# if JOYSTICK_AXES_COUNT >= 6 +# endif +# if JOYSTICK_AXES_COUNT > 5 HID_RI_USAGE(8, 0x35), // Rz -# endif -# if JOYSTICK_AXES_COUNT >= 1 - # if JOYSTICK_AXES_RESOLUTION == 8 +# endif +# if JOYSTICK_AXES_RESOLUTION == 8 HID_RI_LOGICAL_MINIMUM(8, -JOYSTICK_RESOLUTION), HID_RI_LOGICAL_MAXIMUM(8, JOYSTICK_RESOLUTION), HID_RI_REPORT_COUNT(8, JOYSTICK_AXES_COUNT), HID_RI_REPORT_SIZE(8, 0x08), - # else +# else HID_RI_LOGICAL_MINIMUM(16, -JOYSTICK_RESOLUTION), HID_RI_LOGICAL_MAXIMUM(16, JOYSTICK_RESOLUTION), HID_RI_REPORT_COUNT(8, JOYSTICK_AXES_COUNT), HID_RI_REPORT_SIZE(8, 0x10), - # endif +# endif HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), # endif -# if JOYSTICK_BUTTON_COUNT >= 1 +# if JOYSTICK_BUTTON_COUNT > 0 HID_RI_USAGE_PAGE(8, 0x09), // Button HID_RI_USAGE_MINIMUM(8, 0x01), HID_RI_USAGE_MAXIMUM(8, JOYSTICK_BUTTON_COUNT), -- cgit v1.2.1