X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/a7ade9f28dac6b42e2a85823ec80d5539c176667..df29aa37c05ff0251bd17f54c750bac56d7279b7:/LUFA/Drivers/USB/Class/Host/HIDParser.c diff --git a/LUFA/Drivers/USB/Class/Host/HIDParser.c b/LUFA/Drivers/USB/Class/Host/HIDParser.c index 7ec003f27..fdce8e577 100644 --- a/LUFA/Drivers/USB/Class/Host/HIDParser.c +++ b/LUFA/Drivers/USB/Class/Host/HIDParser.c @@ -81,8 +81,8 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData, uint16_t ReportSize, HID if (CurrStateTable == &StateTable[HID_STATETABLE_STACK_DEPTH - 1]) return HID_PARSE_HIDStackOverflow; - memcpy(CurrStateTable, - (CurrStateTable + 1), + memcpy((CurrStateTable + 1), + CurrStateTable, sizeof(HID_ReportItem_t)); CurrStateTable++; @@ -122,8 +122,13 @@ 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; + ParserData->UsingMultipleReports = true; + BitOffsetIn = 0; + BitOffsetOut = 0; + + #if defined(HID_ENABLE_FEATURE_PROCESSING) + BitOffsetFeature = 0; + #endif break; case (TYPE_LOCAL | TAG_LOCAL_USAGE): if (UsageStackSize == HID_USAGE_STACK_DEPTH)