Partial commit: Rename USBFOO LED driver to fix capitalisation of file name, which...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Common / HIDParser.c
index 7b13f1a..b90f89e 100644 (file)
@@ -61,12 +61,12 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
                switch (HIDReportItem & HID_RI_DATA_SIZE_MASK)
                {
                        case HID_RI_DATA_BITS_32:
-                               ReportItemData  = *((uint32_t*)ReportData);
+                               ReportItemData  = le32_to_cpu(*((uint32_t*)ReportData));
                                ReportSize     -= 4;
                                ReportData     += 4;
                                break;
                        case HID_RI_DATA_BITS_16:
-                               ReportItemData  = *((uint16_t*)ReportData);
+                               ReportItemData  = le16_to_cpu(*((uint16_t*)ReportData));
                                ReportSize     -= 2;
                                ReportData     += 2;
                                break;
@@ -96,6 +96,9 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
                                CurrStateTable--;
                                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;
                        case HID_RI_LOGICAL_MINIMUM(0):
@@ -348,7 +351,7 @@ uint16_t USB_GetHIDReportSize(HID_ReportInfo_t* const ParserData,
                uint16_t ReportSizeBits = ParserData->ReportIDSizes[i].ReportSizeBits[ReportType];
 
                if (ParserData->ReportIDSizes[i].ReportID == ReportID)
-                 return ((ReportSizeBits >> 3) + ((ReportSizeBits & 0x07) ? 1 : 0));
+                 return (ReportSizeBits / 8) + ((ReportSizeBits % 8) ? 1 : 0);
        }
 
        return 0;