From: Vijay Kiran Kamuju Subject: [PATCH V2 2/3] dsdmo: Implement IDirectSoundFXEcho::GetAllParameters. Message-Id: Date: Thu, 25 Jun 2020 15:27:46 +0200 Signed-off-by: Vijay Kiran Kamuju From 0536d3daae0e681fe14d2ed2aa397aba740542b0 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 3 Sep 2019 09:03:16 +1000 Subject: [PATCH V2 2/3] dsdmo: Implement IDirectSoundFXEcho::GetAllParameters. Signed-off-by: Vijay Kiran Kamuju --- dlls/dsdmo/echo.c | 18 ++++++++++++++++-- dlls/dsound/tests/dsound8.c | 16 +++++++--------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/dlls/dsdmo/echo.c b/dlls/dsdmo/echo.c index 3e8b0be115..e9add8a019 100644 --- a/dlls/dsdmo/echo.c +++ b/dlls/dsdmo/echo.c @@ -27,6 +27,8 @@ struct dmo_echofx IMediaObject IMediaObject_iface; IMediaObjectInPlace IMediaObjectInPlace_iface; LONG ref; + + DSFXEcho params; }; static inline struct dmo_echofx *impl_from_IDirectSoundFXEcho(IDirectSoundFXEcho *iface) @@ -358,9 +360,15 @@ static HRESULT WINAPI echofx_SetAllParameters(IDirectSoundFXEcho *iface, const D static HRESULT WINAPI echofx_GetAllParameters(IDirectSoundFXEcho *iface, DSFXEcho *echo) { struct dmo_echofx *This = impl_from_IDirectSoundFXEcho(iface); - FIXME("(%p) %p\n", This, echo); - return E_NOTIMPL; + TRACE("(%p) %p\n", This, echo); + + if(!echo) + return E_INVALIDARG; + + *echo = This->params; + + return S_OK; } static const struct IDirectSoundFXEchoVtbl echofxVtbl = @@ -390,6 +398,12 @@ HRESULT WINAPI EchoFactory_CreateInstance(IClassFactory *iface, IUnknown *outer, object->IMediaObjectInPlace_iface.lpVtbl = &echo_mediainplaceVtbl; object->ref = 1; + object->params.fWetDryMix = 50.0f; + object->params.fFeedback = 50.0f; + object->params.fLeftDelay = 500.0f; + object->params.fRightDelay = 500.0f; + object->params.lPanDelay = 0; + ret = echofx_QueryInterface(&object->IDirectSoundFXEcho_iface, riid, ppv); echofx_Release(&object->IDirectSoundFXEcho_iface); diff --git a/dlls/dsound/tests/dsound8.c b/dlls/dsound/tests/dsound8.c index 8190a61736..6d42dedee4 100644 --- a/dlls/dsound/tests/dsound8.c +++ b/dlls/dsound/tests/dsound8.c @@ -1468,15 +1468,13 @@ static void test_echo_parameters(IDirectSoundBuffer8 *secondary8) DSFXEcho params; rc = IDirectSoundFXEcho_GetAllParameters(echo, ¶ms); - todo_wine ok(rc == DS_OK, "Failed: %08x\n", rc); - if (rc == DS_OK ) - { - ok(params.fWetDryMix == 50.0f, "got %f\n", params.fWetDryMix); - ok(params.fFeedback == 50.0f, "got %f\n", params.fFeedback); - ok(params.fLeftDelay == 500.0f,"got %f\n", params.fLeftDelay); - ok(params.fRightDelay == 500.0f,"got %f\n", params.fRightDelay); - ok(params.lPanDelay == 0, "got %d\n", params.lPanDelay); - } + ok(rc == DS_OK, "Failed: %08x\n", rc); + + ok(params.fWetDryMix == 50.0f, "got %f\n", params.fWetDryMix); + ok(params.fFeedback == 50.0f, "got %f\n", params.fFeedback); + ok(params.fLeftDelay == 500.0f,"got %f\n", params.fLeftDelay); + ok(params.fRightDelay == 500.0f,"got %f\n", params.fRightDelay); + ok(params.lPanDelay == 0, "got %d\n", params.lPanDelay); test_dsfx_interfaces("FXEcho", (IUnknown *)echo, &IID_IDirectSoundFXEcho); -- 2.27.0