aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-02-09 12:30:51 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-02-09 12:30:51 +0000
commit35a0fe93848cc6e1a79d2e606a2e3f6a84ba5755 (patch)
tree66d7ecb248071bca4f6159d783ba0970bf37caa1 /LUFA/Drivers
parent3ab0b3a027db2549bc024780d7787061705056f6 (diff)
downloadlufa-35a0fe93848cc6e1a79d2e606a2e3f6a84ba5755.tar.gz
lufa-35a0fe93848cc6e1a79d2e606a2e3f6a84ba5755.tar.bz2
lufa-35a0fe93848cc6e1a79d2e606a2e3f6a84ba5755.zip
Fixed USB_GetHIDReportSize() returning the number of bits in the specified report instead of bytes.
Moved the USB_GetHIDReportItemInfo() calls into the main report item passing loop in the *HostWithParser demos - it is fast enough not to effect performance, and avoids duplicate code. Make Webserver project report the LUFA version as part of the HTTP header.
Diffstat (limited to 'LUFA/Drivers')
-rw-r--r--LUFA/Drivers/USB/Class/Host/HIDParser.c4
-rw-r--r--LUFA/Drivers/USB/Class/Host/HIDParser.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/LUFA/Drivers/USB/Class/Host/HIDParser.c b/LUFA/Drivers/USB/Class/Host/HIDParser.c
index 3ef9c7812..6c81ae8e5 100644
--- a/LUFA/Drivers/USB/Class/Host/HIDParser.c
+++ b/LUFA/Drivers/USB/Class/Host/HIDParser.c
@@ -340,8 +340,10 @@ uint16_t USB_GetHIDReportSize(HID_ReportInfo_t* const ParserData, const uint8_t
{
for (uint8_t i = 0; i < HID_MAX_REPORT_IDS; i++)
{
+ uint16_t ReportSizeBits = ParserData->ReportIDSizes[i].ReportSizeBits[ReportType];
+
if (ParserData->ReportIDSizes[i].ReportID == ReportID)
- return ParserData->ReportIDSizes[i].ReportSizeBits[ReportType];
+ return ((ReportSizeBits >> 3) + ((ReportSizeBits & 0x07) ? 1 : 0));
}
return 0;
diff --git a/LUFA/Drivers/USB/Class/Host/HIDParser.h b/LUFA/Drivers/USB/Class/Host/HIDParser.h
index 53601ec61..b7225f332 100644
--- a/LUFA/Drivers/USB/Class/Host/HIDParser.h
+++ b/LUFA/Drivers/USB/Class/Host/HIDParser.h
@@ -215,7 +215,7 @@
typedef struct
{
uint8_t ReportID; /** Report ID of the report within the HID interface */
- uint8_t ReportSizeBits[3]; /** Total number of bits in each report type for the given Report ID,
+ uint16_t ReportSizeBits[3]; /** Total number of bits in each report type for the given Report ID,
* indexed by the \ref HID_ReportItemTypes_t enum
*/
} HID_ReportSizeInfo_t;