Module: wine Branch: master Commit: 896855c519dc38274147582540e053dcde05d88d URL: https://gitlab.winehq.org/wine/wine/-/commit/896855c519dc38274147582540e053d...
Author: Davide Beatrici git@davidebeatrici.dev Date: Thu Jun 8 02:01:01 2023 +0200
winealsa: Use mmdevapi's AudioClient's GetCurrentPadding, GetStreamLatency, GetBufferSize.
---
dlls/winealsa.drv/mmdevdrv.c | 77 ++++++-------------------------------------- 1 file changed, 9 insertions(+), 68 deletions(-)
diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c index 4f06d5b5f2d..7c7096d584a 100644 --- a/dlls/winealsa.drv/mmdevdrv.c +++ b/dlls/winealsa.drv/mmdevdrv.c @@ -648,73 +648,14 @@ exit: return params.result; }
-static HRESULT WINAPI AudioClient_GetBufferSize(IAudioClient3 *iface, - UINT32 *out) -{ - ACImpl *This = impl_from_IAudioClient3(iface); - struct get_buffer_size_params params; - - TRACE("(%p)->(%p)\n", This, out); - - if(!out) - return E_POINTER; +extern HRESULT WINAPI client_GetBufferSize(IAudioClient3 *iface, + UINT32 *out);
- if(!This->stream) - return AUDCLNT_E_NOT_INITIALIZED; +extern HRESULT WINAPI client_GetStreamLatency(IAudioClient3 *iface, + REFERENCE_TIME *latency);
- params.stream = This->stream; - params.frames = out; - - ALSA_CALL(get_buffer_size, ¶ms); - - return params.result; -} - -static HRESULT WINAPI AudioClient_GetStreamLatency(IAudioClient3 *iface, - REFERENCE_TIME *latency) -{ - ACImpl *This = impl_from_IAudioClient3(iface); - struct get_latency_params params; - - TRACE("(%p)->(%p)\n", This, latency); - - if(!latency) - return E_POINTER; - - if(!This->stream) - return AUDCLNT_E_NOT_INITIALIZED; - - params.stream = This->stream; - params.latency = latency; - - ALSA_CALL(get_latency, ¶ms); - - return params.result; -} - -static HRESULT WINAPI AudioClient_GetCurrentPadding(IAudioClient3 *iface, - UINT32 *out) -{ - ACImpl *This = impl_from_IAudioClient3(iface); - struct get_current_padding_params params; - - TRACE("(%p)->(%p)\n", This, out); - - if(!out) - return E_POINTER; - - if(!This->stream) - return AUDCLNT_E_NOT_INITIALIZED; - - params.stream = This->stream; - params.padding = out; - - ALSA_CALL(get_current_padding, ¶ms); - - TRACE("pad: %u\n", *out); - - return params.result; -} +extern HRESULT WINAPI client_GetCurrentPadding(IAudioClient3 *iface, + UINT32 *out);
extern HRESULT WINAPI client_IsFormatSupported(IAudioClient3 *iface, AUDCLNT_SHAREMODE mode, const WAVEFORMATEX *fmt, @@ -765,9 +706,9 @@ static const IAudioClient3Vtbl AudioClient3_Vtbl = AudioClient_AddRef, AudioClient_Release, AudioClient_Initialize, - AudioClient_GetBufferSize, - AudioClient_GetStreamLatency, - AudioClient_GetCurrentPadding, + client_GetBufferSize, + client_GetStreamLatency, + client_GetCurrentPadding, client_IsFormatSupported, client_GetMixFormat, client_GetDevicePeriod,