forked from mfulz_github/qmk_firmware
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:
parent
3472af91a5
commit
7f3f39b575
|
@ -260,12 +260,7 @@ void ProcessMouseReport(uint8_t* MouseReport)
|
||||||
if (!(FoundData))
|
if (!(FoundData))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
int16_t DeltaMovement;
|
int16_t DeltaMovement = (int16_t)(ReportItem->Value << (16 - ReportItem->Attributes.BitSize));
|
||||||
|
|
||||||
if (ReportItem->Attributes.BitSize > 8)
|
|
||||||
DeltaMovement = (int16_t)ReportItem->Value;
|
|
||||||
else
|
|
||||||
DeltaMovement = (int8_t)ReportItem->Value;
|
|
||||||
|
|
||||||
/* Determine if the report is for the X or Y delta movement */
|
/* Determine if the report is for the X or Y delta movement */
|
||||||
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
|
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
|
||||||
|
|
|
@ -113,6 +113,8 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData, uint16_t ReportSize, HID
|
||||||
break;
|
break;
|
||||||
case (TYPE_GLOBAL | TAG_GLOBAL_REPORTID):
|
case (TYPE_GLOBAL | TAG_GLOBAL_REPORTID):
|
||||||
CurrStateTable->ReportID = ReportItemData;
|
CurrStateTable->ReportID = ReportItemData;
|
||||||
|
BitOffsetIn = 0;
|
||||||
|
BitOffsetOut = 0;
|
||||||
break;
|
break;
|
||||||
case (TYPE_LOCAL | TAG_LOCAL_USAGE):
|
case (TYPE_LOCAL | TAG_LOCAL_USAGE):
|
||||||
if (UsageStackSize == HID_USAGE_STACK_DEPTH)
|
if (UsageStackSize == HID_USAGE_STACK_DEPTH)
|
||||||
|
|
|
@ -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 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 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 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
|
* \section Sec_ChangeLog090605 Version 090605
|
||||||
|
|
Loading…
Reference in New Issue