hid: Don't sign-extend 16-bit values.

Some controllers (including, with the previous patch, any reported
through SDL) may report a logical range of [0,65535], which takes up
16 bits but should not be sign-extended.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2019-02-05 13:09:39 -06:00 committed by Alexandre Julliard
parent bd9e130ee5
commit b16fb11890

View file

@ -277,8 +277,6 @@ NTSTATUS WINAPI HidP_GetScaledUsageValue(HIDP_REPORT_TYPE ReportType, USAGE Usag
element->valueStartBit, element->bitCount, &rawValue);
if (rc != HIDP_STATUS_SUCCESS)
return rc;
if (element->caps.value.BitSize == 16)
rawValue = (short)rawValue;
*UsageValue = rawValue;
}
@ -925,8 +923,6 @@ NTSTATUS WINAPI HidP_GetData(HIDP_REPORT_TYPE ReportType, HIDP_DATA *DataList, U
element->valueStartBit, element->bitCount, &v);
if (rc != HIDP_STATUS_SUCCESS)
return rc;
if (element->caps.value.BitSize == 16)
v = (short)v;
DataList[uCount].DataIndex = element->caps.value.u.NotRange.DataIndex;
DataList[uCount].u.RawValue = v;
}