- {\r
- NewReportItem.Attributes.Usage.Usage = 0;\r
- }\r
- \r
- switch (HIDReportItem & TAG_MASK)\r
- {\r
- case TAG_MAIN_INPUT:\r
- NewReportItem.ItemType = REPORT_ITEM_TYPE_In;\r
- NewReportItem.BitOffset = CurrReportIDInfo->BitsIn;\r
- \r
- CurrReportIDInfo->BitsIn += CurrStateTable->Attributes.BitSize;\r
- break;\r
- case TAG_MAIN_OUTPUT:\r
- NewReportItem.ItemType = REPORT_ITEM_TYPE_Out;\r
- NewReportItem.BitOffset = CurrReportIDInfo->BitsOut;\r
- \r
- CurrReportIDInfo->BitsOut += CurrStateTable->Attributes.BitSize;\r
- break;\r
- case TAG_MAIN_FEATURE:\r
- NewReportItem.ItemType = REPORT_ITEM_TYPE_Feature; \r
- NewReportItem.BitOffset = CurrReportIDInfo->BitsFeature;\r
- \r
- CurrReportIDInfo->BitsFeature += CurrStateTable->Attributes.BitSize;\r
- break;\r
- }\r
+ NewReportItem.ItemType = REPORT_ITEM_TYPE_Feature;\r
+ \r
+ NewReportItem.BitOffset = CurrReportIDInfo->ReportSizeBits[NewReportItem.ItemType];\r
+\r
+ CurrReportIDInfo->ReportSizeBits[NewReportItem.ItemType] += CurrStateTable->Attributes.BitSize;\r