Module: wine Branch: master Commit: 7d0ee98716504d6b10ade39c2403643151f7511e URL: http://source.winehq.org/git/wine.git/?a=commit;h=7d0ee98716504d6b10ade39c24...
Author: Vincent Pelletier plr.vincent@gmail.com Date: Wed Jan 21 23:25:53 2009 +0100
dinput: Add test to show that effects are stopped after Unacquire + Acquire and preserved in dinput.
---
dlls/dinput/tests/joystick.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/dlls/dinput/tests/joystick.c b/dlls/dinput/tests/joystick.c index 286c168..133ff58 100644 --- a/dlls/dinput/tests/joystick.c +++ b/dlls/dinput/tests/joystick.c @@ -373,6 +373,8 @@ static BOOL CALLBACK EnumJoysticks(
if (effect) { + DWORD effect_status; + hr = IDirectInputEffect_Initialize(effect, hInstance, data->version, &GUID_ConstantForce); ok(hr==DI_OK,"IDirectInputEffect_Initialize failed: %08x\n", hr); @@ -389,6 +391,44 @@ static BOOL CALLBACK EnumJoysticks( hr = IDirectInputEffect_SetParameters(effect, &eff, DIEP_GAIN); ok(hr==DI_OK,"IDirectInputEffect_SetParameters failed: %08x\n", hr); } + + /* Check effect status. + * State: initialy stopped + * start + * State: started + * unacquire, acquire, download + * State: stopped + * start + * State: started + * + * Shows that: + * - effects are stopped after Unacquire + Acquire + * - effects are preserved (Download + Start doesn't complain + * about incomplete effect) + */ + hr = IDirectInputEffect_GetEffectStatus(effect, &effect_status); + ok(hr==DI_OK,"IDirectInputEffect_GetEffectStatus() failed: %08x\n", hr); + ok(effect_status==0,"IDirectInputEffect_GetEffectStatus() reported effect as started\n"); + hr = IDirectInputEffect_SetParameters(effect, &eff, DIEP_START); + ok(hr==DI_OK,"IDirectInputEffect_SetParameters failed: %08x\n", hr); + hr = IDirectInputEffect_GetEffectStatus(effect, &effect_status); + ok(hr==DI_OK,"IDirectInputEffect_GetEffectStatus() failed: %08x\n", hr); + todo_wine ok(effect_status!=0,"IDirectInputEffect_GetEffectStatus() reported effect as stopped\n"); + hr = IDirectInputDevice_Unacquire(pJoystick); + ok(hr==DI_OK,"IDirectInputDevice_Unacquire() failed: %08x\n", hr); + hr = IDirectInputDevice_Acquire(pJoystick); + ok(hr==DI_OK,"IDirectInputDevice_Acquire() failed: %08x\n", hr); + hr = IDirectInputEffect_Download(effect); + ok(hr==DI_OK,"IDirectInputEffect_Download() failed: %08x\n", hr); + hr = IDirectInputEffect_GetEffectStatus(effect, &effect_status); + ok(hr==DI_OK,"IDirectInputEffect_GetEffectStatus() failed: %08x\n", hr); + ok(effect_status==0,"IDirectInputEffect_GetEffectStatus() reported effect as started\n"); + hr = IDirectInputEffect_Start(effect, 1, 0); + ok(hr==DI_OK,"IDirectInputEffect_Start() failed: %08x\n", hr); + hr = IDirectInputEffect_GetEffectStatus(effect, &effect_status); + ok(hr==DI_OK,"IDirectInputEffect_GetEffectStatus() failed: %08x\n", hr); + todo_wine ok(effect_status!=0,"IDirectInputEffect_GetEffectStatus() reported effect as stopped\n"); + ref = IUnknown_Release(effect); ok(ref == 0, "IDirectInputDevice_Release() reference count = %d\n", ref); }