aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/Class/Common
diff options
context:
space:
mode:
Diffstat (limited to 'LUFA/Drivers/USB/Class/Common')
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDParser.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/LUFA/Drivers/USB/Class/Common/HIDParser.c b/LUFA/Drivers/USB/Class/Common/HIDParser.c
index 4447e8a0b..4b4667b4f 100644
--- a/LUFA/Drivers/USB/Class/Common/HIDParser.c
+++ b/LUFA/Drivers/USB/Class/Common/HIDParser.c
@@ -53,7 +53,7 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
while (ReportSize)
{
uint8_t HIDReportItem = *ReportData;
- uint32_t ReportItemData = 0;
+ uint32_t ReportItemData;
ReportData++;
ReportSize--;
@@ -66,16 +66,22 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
ReportSize -= 4;
ReportData += 4;
break;
+
case HID_RI_DATA_BITS_16:
ReportItemData = (((uint16_t)ReportData[1] << 8) | (ReportData[0]));
ReportSize -= 2;
ReportData += 2;
break;
+
case HID_RI_DATA_BITS_8:
ReportItemData = ReportData[0];
ReportSize -= 1;
ReportData += 1;
break;
+
+ default:
+ ReportItemData = 0;
+ break;
}
switch (HIDReportItem & (HID_RI_TYPE_MASK | HID_RI_TAG_MASK))
@@ -269,6 +275,9 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
}
break;
+
+ default:
+ break;
}
if ((HIDReportItem & HID_RI_TYPE_MASK) == HID_RI_TYPE_MAIN)