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.
This commit is contained in:
Dean Camera 2009-07-28 15:14:54 +00:00
parent 3472af91a5
commit 7f3f39b575
3 changed files with 5 additions and 6 deletions

View file

@ -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)