+\r
+ if (ParserData->UsingReportIDs)\r
+ {\r
+ CurrReportIDInfo = NULL;\r
+\r
+ for (uint8_t i = 0; i < ParserData->TotalDeviceReports; i++)\r
+ {\r
+ if (ParserData->ReportIDSizes[i].ReportID == CurrStateTable->ReportID)\r
+ {\r
+ CurrReportIDInfo = &ParserData->ReportIDSizes[i];\r
+ break;\r
+ }\r
+ }\r
+ \r
+ if (CurrReportIDInfo == NULL)\r
+ {\r
+ if (ParserData->TotalDeviceReports++ > HID_MAX_REPORT_IDS)\r
+ return HID_PARSE_InsufficientReportIDItems;\r
+ \r
+ CurrReportIDInfo = &ParserData->ReportIDSizes[ParserData->TotalDeviceReports - 1];\r
+ memset(CurrReportIDInfo, 0x00, sizeof(HID_ReportSizeInfo_t));\r
+ }\r
+ }\r
+\r
+ ParserData->UsingReportIDs = true; \r
+\r
+ CurrReportIDInfo->ReportID = CurrStateTable->ReportID;\r