From 30f6d2bfd82995e0fa346b3b4eb33861f6a0fde3 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 30 Jan 2011 14:40:24 +0000 Subject: Oops - forgot to add in LOGICAL MINIMUM and LOGICAL MAXIMUM report items into the standard library Joystick HID report descriptor macro. Add in support for joystick resolution reporting via PHYSICAL_MINIMUM and PHYSICAL_MAXIMUM items. --- LUFA/Drivers/USB/Class/Common/HID.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'LUFA/Drivers/USB/Class/Common/HID.h') diff --git a/LUFA/Drivers/USB/Class/Common/HID.h b/LUFA/Drivers/USB/Class/Common/HID.h index 9f12118cb..d28417ed5 100644 --- a/LUFA/Drivers/USB/Class/Common/HID.h +++ b/LUFA/Drivers/USB/Class/Common/HID.h @@ -343,11 +343,13 @@ * Where \c uintA_t is a type large enough to hold one bit per button, and \c intB_t is a type large enough to hold the * ranges of the signed \c MinAxisVal and \c MaxAxisVal values. * - * \param[in] MinAxisVal Minimum X/Y logical axis value - * \param[in] MaxAxisVal Maximum X/Y logical axis value - * \param[in] Buttons Total number of buttons in the device + * \param[in] MinAxisVal Minimum X/Y logical axis value + * \param[in] MaxAxisVal Maximum X/Y logical axis value + * \param[in] MinPhysicalVal Minimum X/Y physical axis value, for movement resolution calculations + * \param[in] MaxPhysicalVal Maximum X/Y physical axis value, for movement resolution calculations + * \param[in] Buttons Total number of buttons in the device */ - #define HID_DESCRIPTOR_JOYSTICK(MinAxisVal, MaxAxisVal, Buttons) \ + #define HID_DESCRIPTOR_JOYSTICK(MinAxisVal, MaxAxisVal, MinPhysicalVal, MaxPhysicalVal, Buttons) \ HID_RI_USAGE_PAGE(8, 0x01), \ HID_RI_USAGE(8, 0x04), \ HID_RI_COLLECTION(8, 0x01), \ @@ -355,8 +357,12 @@ HID_RI_COLLECTION(8, 0x00), \ HID_RI_USAGE(8, 0x30), \ HID_RI_USAGE(8, 0x31), \ - HID_RI_REPORT_SIZE(8, (((((uint16_t)MinAxisVal > 0xFF) && ((uint16_t)MaxAxisVal < 0xFF)) ? 8 : 16))), \ + HID_RI_LOGICAL_MINIMUM(16, MinAxisVal), \ + HID_RI_LOGICAL_MAXIMUM(16, MaxAxisVal), \ + HID_RI_PHYSICAL_MINIMUM(16, MinPhysicalVal), \ + HID_RI_PHYSICAL_MAXIMUM(16, MaxPhysicalVal), \ HID_RI_REPORT_COUNT(8, 0x02), \ + HID_RI_REPORT_SIZE(8, (((((uint16_t)MinAxisVal > 0xFF) && ((uint16_t)MaxAxisVal < 0xFF)) ? 8 : 16))), \ HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \ HID_RI_END_COLLECTION(0), \ HID_RI_USAGE_PAGE(8, 0x09), \ -- cgit v1.2.3