diff options
-rw-r--r-- | Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c | 7 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Class/Host/HIDParser.c | 2 | ||||
-rw-r--r-- | LUFA/ManPages/ChangeLog.txt | 2 |
3 files changed, 5 insertions, 6 deletions
diff --git a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c index 63fce0dcb..8ea5e7201 100644 --- a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c +++ b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c @@ -260,12 +260,7 @@ void ProcessMouseReport(uint8_t* MouseReport) if (!(FoundData))
continue;
- int16_t DeltaMovement;
-
- if (ReportItem->Attributes.BitSize > 8)
- DeltaMovement = (int16_t)ReportItem->Value;
- else
- DeltaMovement = (int8_t)ReportItem->Value;
+ int16_t DeltaMovement = (int16_t)(ReportItem->Value << (16 - ReportItem->Attributes.BitSize));
/* Determine if the report is for the X or Y delta movement */
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
diff --git a/LUFA/Drivers/USB/Class/Host/HIDParser.c b/LUFA/Drivers/USB/Class/Host/HIDParser.c index 18519a018..cee602a33 100644 --- a/LUFA/Drivers/USB/Class/Host/HIDParser.c +++ b/LUFA/Drivers/USB/Class/Host/HIDParser.c @@ -113,6 +113,8 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData, uint16_t ReportSize, HID break;
case (TYPE_GLOBAL | TAG_GLOBAL_REPORTID):
CurrStateTable->ReportID = ReportItemData;
+ BitOffsetIn = 0;
+ BitOffsetOut = 0;
break;
case (TYPE_LOCAL | TAG_LOCAL_USAGE):
if (UsageStackSize == HID_USAGE_STACK_DEPTH)
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 2aaef12d4..1a09e8b8e 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -73,6 +73,8 @@ * - Fixed Mouse/Keyboard demos not performing the correct arithmetic on the Idle period at the right times (thanks to Brian Dickman)
* - Fixed GenericHID failing HID class tests due to incorrect Logical Minimum and Logical Maximum values (thanks to S�ren Greiner)
* - Fixed incorrect PIPE_EPNUM_MASK mask causing pipe failures on devices with endpoint addresses of 8 and above (thanks to John Andrews)
+ * - Fixed report data alignment issues in the MouseHostWithParser demo when X and Y movement data size is not a multiple of 8 bits
+ * - Fixed HID Report Descriptor Parser not correctly resetting internal states when a REPORT ID element is encountered
*
*
* \section Sec_ChangeLog090605 Version 090605
|