Rémi Bernon : dinput: Return correct errors from HID joystick IDirectInputDevice8_Poll.
Module: wine Branch: master Commit: 54b2fc355327a46709f124bfff330ae6b92887e3 URL: https://source.winehq.org/git/wine.git/?a=commit;h=54b2fc355327a46709f124bff... Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Tue Sep 21 09:52:49 2021 +0200 dinput: Return correct errors from HID joystick IDirectInputDevice8_Poll. Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dinput/joystick_hid.c | 14 +++++++++++++- dlls/dinput8/tests/hid.c | 1 - 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/dlls/dinput/joystick_hid.c b/dlls/dinput/joystick_hid.c index 45e75588aed..f7107733d26 100644 --- a/dlls/dinput/joystick_hid.c +++ b/dlls/dinput/joystick_hid.c @@ -704,6 +704,18 @@ static HRESULT WINAPI hid_joystick_GetDeviceInfo( IDirectInputDevice8W *iface, D return S_OK; } +static HRESULT WINAPI hid_joystick_Poll( IDirectInputDevice8W *iface ) +{ + struct hid_joystick *impl = impl_from_IDirectInputDevice8W( iface ); + HRESULT hr = DI_NOEFFECT; + + EnterCriticalSection( &impl->base.crit ); + if (!impl->base.acquired) hr = DIERR_NOTACQUIRED; + LeaveCriticalSection( &impl->base.crit ); + + return hr; +} + static HRESULT WINAPI hid_joystick_BuildActionMap( IDirectInputDevice8W *iface, DIACTIONFORMATW *format, const WCHAR *username, DWORD flags ) { @@ -756,7 +768,7 @@ static const IDirectInputDevice8WVtbl hid_joystick_vtbl = IDirectInputDevice2WImpl_SendForceFeedbackCommand, IDirectInputDevice2WImpl_EnumCreatedEffectObjects, IDirectInputDevice2WImpl_Escape, - IDirectInputDevice2WImpl_Poll, + hid_joystick_Poll, IDirectInputDevice2WImpl_SendDeviceData, /*** IDirectInputDevice7 methods ***/ IDirectInputDevice7WImpl_EnumEffectsInFile, diff --git a/dlls/dinput8/tests/hid.c b/dlls/dinput8/tests/hid.c index f24acfbf70d..b4aad6b7d5a 100644 --- a/dlls/dinput8/tests/hid.c +++ b/dlls/dinput8/tests/hid.c @@ -4102,7 +4102,6 @@ static void test_simple_joystick(void) ok( hr == DI_OK, "IDirectInputDevice8_Acquire returned: %#x\n", hr ); hr = IDirectInputDevice8_Poll( device ); - todo_wine ok( hr == DI_NOEFFECT, "IDirectInputDevice8_Poll returned: %#x\n", hr ); hr = IDirectInputDevice8_GetDeviceState( device, sizeof(DIJOYSTATE2) + 1, &state );
participants (1)
-
Alexandre Julliard