Also take the unsigned -> signed conversion into account.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41846 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz 2011-05-30 22:31:59 +00:00
parent 2925a66e80
commit 6d551ee44f

View File

@ -118,9 +118,14 @@ HIDReportItem::SetData(uint32 data)
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;