Commit 2ca15c8d authored by Rémi Bernon's avatar Rémi Bernon Committed by Alexandre Julliard

dinput: Stub HID joystick GetEffectStatus implementation.

parent 5abf6efc
...@@ -2707,11 +2707,24 @@ static HRESULT WINAPI hid_joystick_effect_Stop( IDirectInputEffect *iface ) ...@@ -2707,11 +2707,24 @@ static HRESULT WINAPI hid_joystick_effect_Stop( IDirectInputEffect *iface )
static HRESULT WINAPI hid_joystick_effect_GetEffectStatus( IDirectInputEffect *iface, DWORD *status ) static HRESULT WINAPI hid_joystick_effect_GetEffectStatus( IDirectInputEffect *iface, DWORD *status )
{ {
FIXME( "iface %p, status %p stub!\n", iface, status ); struct hid_joystick_effect *impl = impl_from_IDirectInputEffect( iface );
HRESULT hr;
FIXME( "iface %p, status %p semi-stub!\n", iface, status );
if (!status) return E_POINTER; if (!status) return E_POINTER;
*status = 0;
return DIERR_UNSUPPORTED; EnterCriticalSection( &impl->joystick->base.crit );
if (!impl->joystick->base.acquired || !(impl->joystick->base.dwCoopLevel & DISCL_EXCLUSIVE))
hr = DIERR_NOTEXCLUSIVEACQUIRED;
else if (!impl->index)
hr = DIERR_NOTDOWNLOADED;
else
hr = DI_OK;
LeaveCriticalSection( &impl->joystick->base.crit );
return hr;
} }
static void set_parameter_value( struct hid_joystick_effect *impl, char *report_buf, static void set_parameter_value( struct hid_joystick_effect *impl, char *report_buf,
......
...@@ -8873,9 +8873,7 @@ static void test_device_managed_effect(void) ...@@ -8873,9 +8873,7 @@ static void test_device_managed_effect(void)
ok( hr == E_POINTER, "GetEffectStatus returned %#x\n", hr ); ok( hr == E_POINTER, "GetEffectStatus returned %#x\n", hr );
res = 0xdeadbeef; res = 0xdeadbeef;
hr = IDirectInputEffect_GetEffectStatus( effect, &res ); hr = IDirectInputEffect_GetEffectStatus( effect, &res );
todo_wine
ok( hr == DIERR_NOTDOWNLOADED, "GetEffectStatus returned %#x\n", hr ); ok( hr == DIERR_NOTDOWNLOADED, "GetEffectStatus returned %#x\n", hr );
todo_wine
ok( res == 0, "got status %#x\n", res ); ok( res == 0, "got status %#x\n", res );
flags = DIEP_ALLPARAMS; flags = DIEP_ALLPARAMS;
...@@ -8888,7 +8886,6 @@ static void test_device_managed_effect(void) ...@@ -8888,7 +8886,6 @@ static void test_device_managed_effect(void)
set_hid_expect( file, NULL, 0 ); set_hid_expect( file, NULL, 0 );
hr = IDirectInputEffect_GetEffectStatus( effect, &res ); hr = IDirectInputEffect_GetEffectStatus( effect, &res );
todo_wine
ok( hr == DIERR_NOTEXCLUSIVEACQUIRED, "GetEffectStatus returned %#x\n", hr ); ok( hr == DIERR_NOTEXCLUSIVEACQUIRED, "GetEffectStatus returned %#x\n", hr );
set_hid_expect( file, expect_reset, sizeof(expect_reset) ); set_hid_expect( file, expect_reset, sizeof(expect_reset) );
...@@ -8898,9 +8895,7 @@ static void test_device_managed_effect(void) ...@@ -8898,9 +8895,7 @@ static void test_device_managed_effect(void)
res = 0xdeadbeef; res = 0xdeadbeef;
hr = IDirectInputEffect_GetEffectStatus( effect, &res ); hr = IDirectInputEffect_GetEffectStatus( effect, &res );
todo_wine
ok( hr == DIERR_NOTDOWNLOADED, "GetEffectStatus returned %#x\n", hr ); ok( hr == DIERR_NOTDOWNLOADED, "GetEffectStatus returned %#x\n", hr );
todo_wine
ok( res == 0, "got status %#x\n", res ); ok( res == 0, "got status %#x\n", res );
set_hid_expect( file, expect_pool, sizeof(struct hid_expect) ); set_hid_expect( file, expect_pool, sizeof(struct hid_expect) );
...@@ -8919,9 +8914,7 @@ static void test_device_managed_effect(void) ...@@ -8919,9 +8914,7 @@ static void test_device_managed_effect(void)
res = 0xdeadbeef; res = 0xdeadbeef;
hr = IDirectInputEffect_GetEffectStatus( effect, &res ); hr = IDirectInputEffect_GetEffectStatus( effect, &res );
todo_wine
ok( hr == DI_OK, "GetEffectStatus returned %#x\n", hr ); ok( hr == DI_OK, "GetEffectStatus returned %#x\n", hr );
todo_wine
ok( res == 0, "got status %#x\n", res ); ok( res == 0, "got status %#x\n", res );
set_hid_expect( file, expect_pool, sizeof(struct hid_expect) ); set_hid_expect( file, expect_pool, sizeof(struct hid_expect) );
res = 0xdeadbeef; res = 0xdeadbeef;
...@@ -8946,7 +8939,6 @@ static void test_device_managed_effect(void) ...@@ -8946,7 +8939,6 @@ static void test_device_managed_effect(void)
res = 0xdeadbeef; res = 0xdeadbeef;
hr = IDirectInputEffect_GetEffectStatus( effect, &res ); hr = IDirectInputEffect_GetEffectStatus( effect, &res );
todo_wine
ok( hr == DI_OK, "GetEffectStatus returned %#x\n", hr ); ok( hr == DI_OK, "GetEffectStatus returned %#x\n", hr );
todo_wine todo_wine
ok( res == DIEGES_PLAYING, "got status %#x\n", res ); ok( res == DIEGES_PLAYING, "got status %#x\n", res );
...@@ -8956,7 +8948,6 @@ static void test_device_managed_effect(void) ...@@ -8956,7 +8948,6 @@ static void test_device_managed_effect(void)
ok( res == WAIT_OBJECT_0, "WaitForSingleObject returned %#x\n", res ); ok( res == WAIT_OBJECT_0, "WaitForSingleObject returned %#x\n", res );
res = 0xdeadbeef; res = 0xdeadbeef;
hr = IDirectInputEffect_GetEffectStatus( effect, &res ); hr = IDirectInputEffect_GetEffectStatus( effect, &res );
todo_wine
ok( hr == DI_OK, "GetEffectStatus returned %#x\n", hr ); ok( hr == DI_OK, "GetEffectStatus returned %#x\n", hr );
todo_wine todo_wine
ok( res == DIEGES_PLAYING, "got status %#x\n", res ); ok( res == DIEGES_PLAYING, "got status %#x\n", res );
...@@ -8974,7 +8965,6 @@ static void test_device_managed_effect(void) ...@@ -8974,7 +8965,6 @@ static void test_device_managed_effect(void)
ok( res == WAIT_OBJECT_0, "WaitForSingleObject returned %#x\n", res ); ok( res == WAIT_OBJECT_0, "WaitForSingleObject returned %#x\n", res );
res = 0xdeadbeef; res = 0xdeadbeef;
hr = IDirectInputEffect_GetEffectStatus( effect, &res ); hr = IDirectInputEffect_GetEffectStatus( effect, &res );
todo_wine
ok( hr == DI_OK, "GetEffectStatus returned %#x\n", hr ); ok( hr == DI_OK, "GetEffectStatus returned %#x\n", hr );
todo_wine todo_wine
ok( res == DIEGES_PLAYING, "got status %#x\n", res ); ok( res == DIEGES_PLAYING, "got status %#x\n", res );
...@@ -8994,9 +8984,7 @@ static void test_device_managed_effect(void) ...@@ -8994,9 +8984,7 @@ static void test_device_managed_effect(void)
res = 0xdeadbeef; res = 0xdeadbeef;
hr = IDirectInputEffect_GetEffectStatus( effect, &res ); hr = IDirectInputEffect_GetEffectStatus( effect, &res );
todo_wine
ok( hr == DI_OK, "GetEffectStatus returned %#x\n", hr ); ok( hr == DI_OK, "GetEffectStatus returned %#x\n", hr );
todo_wine
ok( res == 0, "got status %#x\n", res ); ok( res == 0, "got status %#x\n", res );
set_hid_expect( file, expect_pool, sizeof(struct hid_expect) ); set_hid_expect( file, expect_pool, sizeof(struct hid_expect) );
res = 0xdeadbeef; res = 0xdeadbeef;
...@@ -9014,9 +9002,7 @@ static void test_device_managed_effect(void) ...@@ -9014,9 +9002,7 @@ static void test_device_managed_effect(void)
res = 0xdeadbeef; res = 0xdeadbeef;
hr = IDirectInputEffect_GetEffectStatus( effect, &res ); hr = IDirectInputEffect_GetEffectStatus( effect, &res );
todo_wine
ok( hr == DIERR_NOTDOWNLOADED, "GetEffectStatus returned %#x\n", hr ); ok( hr == DIERR_NOTDOWNLOADED, "GetEffectStatus returned %#x\n", hr );
todo_wine
ok( res == 0, "got status %#x\n", res ); ok( res == 0, "got status %#x\n", res );
set_hid_expect( file, expect_pool, sizeof(struct hid_expect) ); set_hid_expect( file, expect_pool, sizeof(struct hid_expect) );
res = 0xdeadbeef; res = 0xdeadbeef;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment