Author: tfaber
Date: Sat Jan 18 19:18:33 2014
New Revision: 61680
URL:
http://svn.reactos.org/svn/reactos?rev=61680&view=rev
Log:
[HIDPARSER]
- Use the full bit range of input items instead of discarding high bits
CORE-7772 #resolve
Modified:
trunk/reactos/lib/drivers/hidparser/api.c
Modified: trunk/reactos/lib/drivers/hidparser/api.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/hidparser/api.…
==============================================================================
--- trunk/reactos/lib/drivers/hidparser/api.c [iso-8859-1] (original)
+++ trunk/reactos/lib/drivers/hidparser/api.c [iso-8859-1] Sat Jan 18 19:18:33 2014
@@ -602,7 +602,7 @@
return HIDPARSER_STATUS_INVALID_REPORT_LENGTH;
}
- for(Index = 0; Index < Report->ItemCount; Index++)
+ for (Index = 0; Index < Report->ItemCount; Index++)
{
//
// get report item
@@ -632,10 +632,10 @@
ASSERT(ReportItem->ByteOffset < ReportDescriptorLength);
//
- // FIXME: support items with variable bitlength
- //
- ASSERT(ReportItem->BitCount == 16);
- Data = (ReportDescriptor[ReportItem->ByteOffset +1] & 0xFF) |
(ReportDescriptor[ReportItem->ByteOffset +2] & 0xFF) << 8;
+ // one extra shift for skipping the prepended report id
+ //
+ Data = 0;
+ Parser->Copy(&Data, &ReportDescriptor[ReportItem->ByteOffset + 1],
min(sizeof(ULONG), ReportDescriptorLength - (ReportItem->ByteOffset + 1)));
//
// shift data
@@ -699,7 +699,7 @@
return HIDPARSER_STATUS_INVALID_REPORT_LENGTH;
}
- for(Index = 0; Index < Report->ItemCount; Index++)
+ for (Index = 0; Index < Report->ItemCount; Index++)
{
//
// get report item
@@ -732,8 +732,7 @@
// one extra shift for skipping the prepended report id
//
Data = 0;
- Parser->Copy(&Data, &ReportDescriptor[ReportItem->ByteOffset +1],
min(sizeof(ULONG), ReportDescriptorLength - (ReportItem->ByteOffset + 1)));
- Data = ReportDescriptor[ReportItem->ByteOffset + 1];
+ Parser->Copy(&Data, &ReportDescriptor[ReportItem->ByteOffset + 1],
min(sizeof(ULONG), ReportDescriptorLength - (ReportItem->ByteOffset + 1)));
//
// shift data
@@ -812,7 +811,6 @@
//
return CustomerScanCodes[i].ScanCode;
}
-
}
//