Module: wine Branch: master Commit: 3c8e2c32768a6acedcfeebce0061dea3a6d9655f URL: https://gitlab.winehq.org/wine/wine/-/commit/3c8e2c32768a6acedcfeebce0061dea...
Author: Davide Beatrici git@davidebeatrici.dev Date: Mon Jun 26 23:24:54 2023 +0200
winealsa: Use mmdevapi's AudioClient's Release, AddRef.
---
dlls/winealsa.drv/mmdevdrv.c | 39 ++++----------------------------------- 1 file changed, 4 insertions(+), 35 deletions(-)
diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c index cff2aff261d..fee1c196186 100644 --- a/dlls/winealsa.drv/mmdevdrv.c +++ b/dlls/winealsa.drv/mmdevdrv.c @@ -79,8 +79,6 @@ extern const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl; extern struct audio_session_wrapper *session_wrapper_create( struct audio_client *client) DECLSPEC_HIDDEN;
-extern HRESULT stream_release(stream_handle stream, HANDLE timer_thread); - void DECLSPEC_HIDDEN sessions_lock(void) { EnterCriticalSection(&g_sessions_lock); @@ -390,38 +388,9 @@ static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient3 *iface, return E_NOINTERFACE; }
-static ULONG WINAPI AudioClient_AddRef(IAudioClient3 *iface) -{ - ACImpl *This = impl_from_IAudioClient3(iface); - ULONG ref; - ref = InterlockedIncrement(&This->ref); - TRACE("(%p) Refcount now %lu\n", This, ref); - return ref; -} +extern ULONG WINAPI client_AddRef(IAudioClient3 *iface);
-static ULONG WINAPI AudioClient_Release(IAudioClient3 *iface) -{ - ACImpl *This = impl_from_IAudioClient3(iface); - ULONG ref; - - ref = InterlockedDecrement(&This->ref); - TRACE("(%p) Refcount now %lu\n", This, ref); - if(!ref){ - IAudioClient3_Stop(iface); - IMMDevice_Release(This->parent); - IUnknown_Release(This->marshal); - if(This->session){ - sessions_lock(); - list_remove(&This->entry); - sessions_unlock(); - } - free(This->vols); - if (This->stream) - stream_release(This->stream, This->timer_thread); - HeapFree(GetProcessHeap(), 0, This); - } - return ref; -} +extern ULONG WINAPI client_Release(IAudioClient3 *iface);
static void session_init_vols(AudioSession *session, UINT channels) { @@ -562,8 +531,8 @@ extern HRESULT WINAPI client_InitializeSharedAudioStream(IAudioClient3 *iface, static const IAudioClient3Vtbl AudioClient3_Vtbl = { AudioClient_QueryInterface, - AudioClient_AddRef, - AudioClient_Release, + client_AddRef, + client_Release, client_Initialize, client_GetBufferSize, client_GetStreamLatency,