aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2012-03-29 19:41:05 +0000
committerDean Camera <dean@fourwalledcubicle.com>2012-03-29 19:41:05 +0000
commitb3aaffb792aed373fecd4af16478cb3c2b8c2a8f (patch)
tree9870c34d551aeb43adec1b49ce465537abd160ac /LUFA
parent7cac5e22d7fae140b3ae4167a706d0dc07b9cf3b (diff)
downloadlufa-b3aaffb792aed373fecd4af16478cb3c2b8c2a8f.tar.gz
lufa-b3aaffb792aed373fecd4af16478cb3c2b8c2a8f.tar.bz2
lufa-b3aaffb792aed373fecd4af16478cb3c2b8c2a8f.zip
Removed variable axis support from the HID_DESCRIPTOR_JOYSTICK() macro due to OS incompatibilities, replaced with fixed 3-axis joystick report structure.
Diffstat (limited to 'LUFA')
-rw-r--r--LUFA/DoxygenPages/ChangeLog.txt3
-rw-r--r--LUFA/DoxygenPages/MigrationInformation.txt3
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDClassCommon.h23
3 files changed, 16 insertions, 13 deletions
diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index 20b190675..48dec1269 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -18,8 +18,10 @@
* - Core:
* - Android Accessory Host property strings changed from a struct of pointer to an array to prevent unaligned access on greater than 8-bit architectures
* - Audio Device Class driver changed to also require the index of the Audio Control interface within the device, for SET/GET/CUR/MIN/MAX/RES property adjustments
+ * - Removed variable axis support from the HID_DESCRIPTOR_JOYSTICK() macro due to OS incompatibilities, replaced with fixed 3-axis joystick report structure
* - Library Applications:
* - Raised the guard bits in the AVRISP-MKII clone project when in PDI and TPI to 32, to prevent communication errors on low quality connections to a target
+ * - Added additional bootloader API data to expose the bootloader start address and class to the DFU and CDC class bootloaders
*
* <b>Fixed:</b>
* - Core:
@@ -33,7 +35,6 @@
* - Fixed error in the AVRISP-MKII programmer when ISP mode is used at 64KHz (thanks to Ben R. Porter)
* - Fixed AVRISP-MKII programmer project failing to compile for the U4 chips when VTARGET_ADC_CHANNEL is defined to an invalid channel and NO_VTARGET_DETECT is
* defined (thanks to Steven Morehouse)
- * - Added additional bootloader API data to expose the bootloader start address and class to the DFU and CDC class bootloaders
*
* \section Sec_ChangeLog120219 Version 120219
* <b>New:</b>
diff --git a/LUFA/DoxygenPages/MigrationInformation.txt b/LUFA/DoxygenPages/MigrationInformation.txt
index e005af7eb..93082bb5c 100644
--- a/LUFA/DoxygenPages/MigrationInformation.txt
+++ b/LUFA/DoxygenPages/MigrationInformation.txt
@@ -14,6 +14,9 @@
* <b>Device Mode</b>
* - The device mode Audio Class driver now requires an additional configuration parameter, the Audio Control interface index. Existing applications should
* be adjusted to specify the additional configuration parameter.
+ * - The HID_DESCRIPTOR_JOYSTICK() macro no longer takes a variable number of axis as a parameter, due to OS incompatibilities; this macro now uses a fixed
+ * 3 axis of data. User applications should update their calls to this macro and their report structures to suit a fixed 3-axis joystick report. If a user
+ * application requires more than 3 axis' of data, a custom report descriptor will need to be constructed by hand.
*
* <b>Host Mode</b>
* - The Android Accessory Host class driver property strings are now a array of \c char* rather than a struct of named pointers. Existing applications
diff --git a/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h b/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h
index add6cf8c0..64383aef7 100644
--- a/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h
@@ -337,37 +337,36 @@
* \code
* struct
* {
- * intB_t X; // Signed X axis value
- * intB_t Y; // Signed Y axis value
- * int8_t Z; // Signed Z axis value
- * // Additional axis elements here
- * uintA_t Buttons; // Pressed buttons bitmask
+ * intA_t X; // Signed X axis value
+ * intA_t Y; // Signed Y axis value
+ * intA_t Z; // Signed Z axis value
+ * uintB_t Buttons; // Pressed buttons bitmask
* } Joystick_Report;
* \endcode
*
- * 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.
+ * Where \c uintA_t is a type large enough to hold the ranges of the signed \c MinAxisVal and \c MaxAxisVal values,
+ * and \c intB_t is a type large enough to hold one bit per button.
*
- * \param[in] NumAxis Number of axis in the joystick (8-bit)
* \param[in] MinAxisVal Minimum logical axis value (16-bit).
* \param[in] MaxAxisVal Maximum logical axis value (16-bit).
* \param[in] MinPhysicalVal Minimum physical axis value, for movement resolution calculations (16-bit).
* \param[in] MaxPhysicalVal Maximum physical axis value, for movement resolution calculations (16-bit).
* \param[in] Buttons Total number of buttons in the device (8-bit).
*/
- #define HID_DESCRIPTOR_JOYSTICK(NumAxis, MinAxisVal, MaxAxisVal, MinPhysicalVal, MaxPhysicalVal, 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), \
HID_RI_USAGE(8, 0x01), \
HID_RI_COLLECTION(8, 0x00), \
- HID_RI_USAGE_MINIMUM(8, 0x30), \
- HID_RI_USAGE_MAXIMUM(8, (0x30 + (NumAxis - 1))), \
+ HID_RI_USAGE_(8, 0x30), \
+ HID_RI_USAGE_(8, 0x31), \
+ HID_RI_USAGE_(8, 0x32), \
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, NumAxis), \
+ HID_RI_REPORT_COUNT(8, 3), \
HID_RI_REPORT_SIZE(8, ((((MinAxisVal >= -0xFF) && (MaxAxisVal <= 0xFF)) ? 8 : 16))), \
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \
HID_RI_END_COLLECTION(0), \