aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/Class/Common/HIDParser.c
diff options
context:
space:
mode:
Diffstat (limited to 'LUFA/Drivers/USB/Class/Common/HIDParser.c')
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDParser.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/LUFA/Drivers/USB/Class/Common/HIDParser.c b/LUFA/Drivers/USB/Class/Common/HIDParser.c
index 62f10c4e2..18c345655 100644
--- a/LUFA/Drivers/USB/Class/Common/HIDParser.c
+++ b/LUFA/Drivers/USB/Class/Common/HIDParser.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2017.
+ Copyright (C) Dean Camera, 2019.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2019 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -90,9 +90,9 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
if (CurrStateTable == &StateTable[HID_STATETABLE_STACK_DEPTH - 1])
return HID_PARSE_HIDStackOverflow;
- memcpy((CurrStateTable + 1),
+ memmove((CurrStateTable + 1),
CurrStateTable,
- sizeof(HID_ReportItem_t));
+ sizeof(HID_StateTable_t));
CurrStateTable++;
break;
@@ -105,9 +105,6 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
break;
case HID_RI_USAGE_PAGE(0):
- if ((HIDReportItem & HID_RI_DATA_SIZE_MASK) == HID_RI_DATA_BITS_32)
- CurrStateTable->Attributes.Usage.Page = (ReportItemData >> 16);
-
CurrStateTable->Attributes.Usage.Page = ReportItemData;
break;
@@ -178,6 +175,9 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
if (UsageListSize == HID_USAGE_STACK_DEPTH)
return HID_PARSE_UsageListOverflow;
+ if ((HIDReportItem & HID_RI_DATA_SIZE_MASK) == HID_RI_DATA_BITS_32)
+ CurrStateTable->Attributes.Usage.Page = (ReportItemData >> 16);
+
UsageList[UsageListSize++] = ReportItemData;
break;
@@ -386,4 +386,3 @@ uint16_t USB_GetHIDReportSize(HID_ReportInfo_t* const ParserData,
return 0;
}
-