From 9e70f31d09979c8a75e203d52e79b8ff406d8b27 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 3 Sep 2019 09:34:36 +1000 Subject: [PATCH 14/27] dsdmo: Implemnet IDirectSoundFXFlanger GetAllParameters --- dlls/dsdmo/flanger.c | 20 ++++++++++++++++++-- dlls/dsound/tests/dsound8.c | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/dlls/dsdmo/flanger.c b/dlls/dsdmo/flanger.c index 6fbc836dcd..a647c862fa 100644 --- a/dlls/dsdmo/flanger.c +++ b/dlls/dsdmo/flanger.c @@ -27,6 +27,8 @@ struct dmo_flangerfx IMediaObject IMediaObject_iface; IMediaObjectInPlace IMediaObjectInPlace_iface; LONG ref; + + DSFXFlanger params; }; static inline struct dmo_flangerfx *impl_from_IDirectSoundFXFlanger(IDirectSoundFXFlanger *iface) @@ -358,9 +360,15 @@ static HRESULT WINAPI flangerfx_SetAllParameters(IDirectSoundFXFlanger *iface, c static HRESULT WINAPI flangerfx_GetAllParameters(IDirectSoundFXFlanger *iface, DSFXFlanger *flanger) { struct dmo_flangerfx *This = impl_from_IDirectSoundFXFlanger(iface); - FIXME("(%p) %p\n", This, flanger); - return E_NOTIMPL; + TRACE("(%p) %p\n", This, flanger); + + if(!flanger) + return E_INVALIDARG; + + *flanger = This->params; + + return S_OK; } static const struct IDirectSoundFXFlangerVtbl flangerfxVtbl = @@ -390,6 +398,14 @@ HRESULT WINAPI FlangerFactory_CreateInstance(IClassFactory *iface, IUnknown *out object->IMediaObjectInPlace_iface.lpVtbl = &flanger_mediainplaceVtbl; object->ref = 1; + object->params.fWetDryMix = 50.0f; + object->params.fDepth = 100.0f; + object->params.fFeedback = -50.0f; + object->params.fFrequency = 0.25f; + object->params.lWaveform = DSFXFLANGER_WAVE_SIN; + object->params.fDelay = 2.0f; + object->params.lPhase = 2; + ret = flangerfx_QueryInterface(&object->IDirectSoundFXFlanger_iface, riid, ppv); flangerfx_Release(&object->IDirectSoundFXFlanger_iface); diff --git a/dlls/dsound/tests/dsound8.c b/dlls/dsound/tests/dsound8.c index 17026f81f5..bd417d03af 100644 --- a/dlls/dsound/tests/dsound8.c +++ b/dlls/dsound/tests/dsound8.c @@ -1464,7 +1464,7 @@ static void test_flanger_parameters(IDirectSoundBuffer8 *secondary8) DSFXFlanger params; rc = IDirectSoundFXFlanger_GetAllParameters(flanger, ¶ms); - todo_wine ok(rc == DS_OK, "Failed: %08x\n", rc); + ok(rc == DS_OK, "Failed: %08x\n", rc); if (rc == DS_OK) { ok(params.fWetDryMix == 50.0f, "got %f\n", params.fWetDryMix); -- 2.17.1