Module: wine Branch: master Commit: 382ed33b7a770d532bcf4b7dc392ee929c987c7a URL: http://source.winehq.org/git/wine.git/?a=commit;h=382ed33b7a770d532bcf4b7dc3...
Author: Vitaliy Margolen wine-patches@kievinfo.com Date: Thu May 8 08:11:19 2008 -0600
dinput: Default value for unassigned POVs should be -1.
---
dlls/dinput/device.c | 7 +++++-- dlls/dinput/tests/joystick.c | 7 +++++++ 2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c index 1a5e25f..2c4cc6d 100644 --- a/dlls/dinput/device.c +++ b/dlls/dinput/device.c @@ -452,9 +452,12 @@ HRESULT create_DataFormat(LPCDIDATAFORMAT asked_format, DataFormat *format) dt[index].size = sizeof(DWORD); dt[index].offset_in = -1; dt[index].offset_out = asked_format->rgodf[j].dwOfs; - dt[index].value = 0; + if (asked_format->rgodf[j].dwType & DIDFT_POV) + dt[index].value = -1; + else + dt[index].value = 0; index++; - + same = 0; } } diff --git a/dlls/dinput/tests/joystick.c b/dlls/dinput/tests/joystick.c index d8c05f0..4727a5a 100644 --- a/dlls/dinput/tests/joystick.c +++ b/dlls/dinput/tests/joystick.c @@ -324,6 +324,13 @@ static BOOL CALLBACK EnumJoysticks( ok(hr == S_FALSE, "IDirectInputDevice_Acquire() should have returned S_FALSE, got: %s\n", DXGetErrorString8(hr));
+ if (info.pov < 4) + { + hr = IDirectInputDevice_GetDeviceState(pJoystick, sizeof(DIJOYSTATE2), &js); + ok(hr == DI_OK, "IDirectInputDevice_GetDeviceState() failed: %s\n", DXGetErrorString8(hr)); + ok(js.rgdwPOV[3] == -1, "Default for unassigned POV should be -1 not: %d\n", js.rgdwPOV[3]); + } + if (winetest_interactive) { trace("You have 30 seconds to test all axes, sliders, POVs and buttons\n"); count = 300;