Module: wine Branch: master Commit: 73a6f764d08e24ad06433816408f9bb39fdaa4f1 URL: https://gitlab.winehq.org/wine/wine/-/commit/73a6f764d08e24ad06433816408f9bb...
Author: David McFarland corngood@gmail.com Date: Sat Aug 12 00:11:49 2023 -0300
mmdevapi: Implement IAudioClient3_InitializeSharedAudioStream.
---
dlls/mmdevapi/client.c | 10 ++++++++-- dlls/mmdevapi/tests/render.c | 1 - 2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/mmdevapi/client.c b/dlls/mmdevapi/client.c index 3e0c70a44f4..5d71f079483 100644 --- a/dlls/mmdevapi/client.c +++ b/dlls/mmdevapi/client.c @@ -950,8 +950,14 @@ static HRESULT WINAPI client_InitializeSharedAudioStream(IAudioClient3 *iface, D const GUID *session_guid) { struct audio_client *This = impl_from_IAudioClient3(iface); - FIXME("(%p)->(0x%lx, %u, %p, %s) - stub\n", This, flags, period_frames, format, debugstr_guid(session_guid)); - return E_NOTIMPL; + REFERENCE_TIME duration; + FIXME("(%p)->(0x%lx, %u, %p, %s) - partial stub\n", This, flags, period_frames, format, debugstr_guid(session_guid)); + + if (!format) + return E_POINTER; + + duration = period_frames * (REFERENCE_TIME)10000000 / format->nSamplesPerSec; + return client_Initialize(iface, AUDCLNT_SHAREMODE_SHARED, flags, duration, 0, format, session_guid); }
const IAudioClient3Vtbl AudioClient3_Vtbl = diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c index fac88e211e4..14442036763 100644 --- a/dlls/mmdevapi/tests/render.c +++ b/dlls/mmdevapi/tests/render.c @@ -351,7 +351,6 @@ static void test_audioclient(void)
hr = IAudioClient3_InitializeSharedAudioStream( ac3, AUDCLNT_SHAREMODE_SHARED, default_period, pwfx, NULL); - todo_wine ok(hr == S_OK, "InitializeSharedAudioStream returns %08lx\n", hr);
IAudioClient3_Release(ac3);