From: Tomasz Pakuła tomasz.pakula.oficjalny@gmail.com
The descriptor defined 3 axes in the Axis Enable field but only 2 in Direction and Type Specific Block Offset --- dlls/dinput/tests/force_feedback.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/dlls/dinput/tests/force_feedback.c b/dlls/dinput/tests/force_feedback.c index 14bf9575e8f..ae04d93c0ae 100644 --- a/dlls/dinput/tests/force_feedback.c +++ b/dlls/dinput/tests/force_feedback.c @@ -2358,6 +2358,7 @@ static BOOL test_force_feedback_joystick( DWORD version ) COLLECTION(1, Logical), USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|1), USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|2), + USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|3), UNIT(1, 0x14), /* Eng Rot:Angular Pos */ UNIT_EXPONENT(1, -2), /* 10^-2 */ LOGICAL_MINIMUM(1, 0), @@ -2366,7 +2367,7 @@ static BOOL test_force_feedback_joystick( DWORD version ) PHYSICAL_MAXIMUM(4, 0x00008ca0), UNIT(1, 0), REPORT_SIZE(1, 8), - REPORT_COUNT(1, 2), + REPORT_COUNT(1, 3), OUTPUT(1, Data|Var|Abs), UNIT_EXPONENT(1, 0), UNIT(1, 0), @@ -2426,15 +2427,16 @@ static BOOL test_force_feedback_joystick( DWORD version ) COLLECTION(1, Logical), USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|1), USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|2), + USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|3), LOGICAL_MINIMUM(1, 0), LOGICAL_MAXIMUM(1, 1), PHYSICAL_MINIMUM(1, 0), PHYSICAL_MAXIMUM(1, 1), REPORT_SIZE(1, 2), - REPORT_COUNT(1, 2), + REPORT_COUNT(1, 3), OUTPUT(1, Data|Var|Abs), END_COLLECTION, - REPORT_SIZE(1, 4), + REPORT_SIZE(1, 2), /* pad to byte */ REPORT_COUNT(1, 1), OUTPUT(1, Cnst|Var|Abs),
@@ -3867,6 +3869,7 @@ static void test_device_managed_effect(void) COLLECTION(1, Logical), USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|1), USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|2), + USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|3), UNIT(1, 0x14), /* Eng Rot:Angular Pos */ UNIT_EXPONENT(1, -2), /* 10^-2 */ LOGICAL_MINIMUM(1, 0), @@ -3875,7 +3878,7 @@ static void test_device_managed_effect(void) PHYSICAL_MAXIMUM(4, 0x00008ca0), UNIT(1, 0), REPORT_SIZE(1, 8), - REPORT_COUNT(1, 2), + REPORT_COUNT(1, 3), OUTPUT(1, Data|Var|Abs), UNIT_EXPONENT(1, 0), UNIT(1, 0), @@ -3908,14 +3911,18 @@ static void test_device_managed_effect(void) COLLECTION(1, Logical), USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|1), USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|2), + USAGE(4, (HID_USAGE_PAGE_ORDINAL << 16)|3), LOGICAL_MINIMUM(1, 0), LOGICAL_MAXIMUM(1, 1), PHYSICAL_MINIMUM(1, 0), PHYSICAL_MAXIMUM(1, 1), REPORT_SIZE(1, 2), - REPORT_COUNT(1, 2), + REPORT_COUNT(1, 3), OUTPUT(1, Data|Var|Abs), END_COLLECTION, + REPORT_SIZE(1, 6), /* pad to byte */ + REPORT_COUNT(1, 1), + OUTPUT(1, Cnst|Var|Abs),
USAGE(1, PID_USAGE_CP_OFFSET), LOGICAL_MINIMUM(1, 0x80),