Add HIDReportItem::ScaledRangeData() that scales the data into a pariticular
range. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42033 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -146,6 +146,20 @@ HIDReportItem::ScaledData(uint8 scaleToBits, bool toBeSigned)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint32
|
||||||
|
HIDReportItem::ScaledRangeData(uint32 minimum, uint32 maximum)
|
||||||
|
{
|
||||||
|
uint64 zeroBasedData;
|
||||||
|
if (Signed())
|
||||||
|
zeroBasedData = (int32)fData - (int32)fMinimum;
|
||||||
|
else
|
||||||
|
zeroBasedData = fData - fMinimum;
|
||||||
|
|
||||||
|
return zeroBasedData * (maximum - minimum + 1) / (fMaximum - fMinimum + 1)
|
||||||
|
+ minimum;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
float
|
float
|
||||||
HIDReportItem::ScaledFloatData()
|
HIDReportItem::ScaledFloatData()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ public:
|
|||||||
uint32 Data() { return fData; };
|
uint32 Data() { return fData; };
|
||||||
|
|
||||||
uint32 ScaledData(uint8 scaleToBits, bool toBeSigned);
|
uint32 ScaledData(uint8 scaleToBits, bool toBeSigned);
|
||||||
|
uint32 ScaledRangeData(uint32 minimum, uint32 maximum);
|
||||||
float ScaledFloatData();
|
float ScaledFloatData();
|
||||||
|
|
||||||
bool Valid() { return fValid; };
|
bool Valid() { return fValid; };
|
||||||
|
|||||||
Reference in New Issue
Block a user