[haiku-commits] r41846 - haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid

  • From: mmlr@xxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 31 May 2011 00:31:59 +0200 (CEST)

Author: mmlr
Date: 2011-05-31 00:31:59 +0200 (Tue, 31 May 2011)
New Revision: 41846
Changeset: https://dev.haiku-os.org/changeset/41846

Modified:
   haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid/HIDReportItem.cpp
Log:
Also take the unsigned -> signed conversion into account.


Modified: haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid/HIDReportItem.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid/HIDReportItem.cpp      
2011-05-30 22:17:56 UTC (rev 41845)
+++ haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid/HIDReportItem.cpp      
2011-05-30 22:31:59 UTC (rev 41846)
@@ -118,9 +118,14 @@
 uint32
 HIDReportItem::ScaledData(uint8 scaleToBits, bool toBeSigned)
 {
-       uint32 source = fData;
-       if (Signed() && !toBeSigned)
-               source = (uint32)((int32)fData - (int32)fMinimum);
+       uint32 source;
+       if (Signed() != toBeSigned) {
+               if (toBeSigned)
+                       source = (uint32)((int32)fData - (fMaximum + 1) / 2) & 
fMask;
+               else
+                       source = (uint32)((int32)fData - (int32)fMinimum);
+       } else
+               source = fData;
 
        if (fBitCount == scaleToBits)
                return source;


Other related posts:

  • » [haiku-commits] r41846 - haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid - mmlr