From: Davide Beatrici git@davidebeatrici.dev
--- dlls/wineoss.drv/mmdevdrv.c | 37 +++++++------------------------------ 1 file changed, 7 insertions(+), 30 deletions(-)
diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c index c282fb88831..23a116f0c45 100644 --- a/dlls/wineoss.drv/mmdevdrv.c +++ b/dlls/wineoss.drv/mmdevdrv.c @@ -72,8 +72,6 @@ static CRITICAL_SECTION_DEBUG g_sessions_lock_debug = static CRITICAL_SECTION g_sessions_lock = { &g_sessions_lock_debug, -1, 0, 0, 0, 0 }; static struct list g_sessions = LIST_INIT(g_sessions);
-static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client); - static const IAudioClient3Vtbl AudioClient3_Vtbl; extern const IAudioRenderClientVtbl AudioRenderClient_Vtbl; extern const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl; @@ -84,6 +82,9 @@ extern const IAudioClock2Vtbl AudioClock2_Vtbl; extern const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl; extern const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl;
+extern struct audio_session_wrapper *session_wrapper_create( + struct audio_client *client) DECLSPEC_HIDDEN; + void DECLSPEC_HIDDEN sessions_lock(void) { EnterCriticalSection(&g_sessions_lock); @@ -897,7 +898,7 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient3 *iface, REFIID riid, *ppv = &This->IAudioStreamVolume_iface; }else if(IsEqualIID(riid, &IID_IAudioSessionControl)){ if(!This->session_wrapper){ - This->session_wrapper = AudioSessionWrapper_Create(This); + This->session_wrapper = session_wrapper_create(This); if(!This->session_wrapper){ sessions_unlock(); return E_OUTOFMEMORY; @@ -908,7 +909,7 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient3 *iface, REFIID riid, *ppv = &This->session_wrapper->IAudioSessionControl2_iface; }else if(IsEqualIID(riid, &IID_IChannelAudioVolume)){ if(!This->session_wrapper){ - This->session_wrapper = AudioSessionWrapper_Create(This); + This->session_wrapper = session_wrapper_create(This); if(!This->session_wrapper){ sessions_unlock(); return E_OUTOFMEMORY; @@ -919,7 +920,7 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient3 *iface, REFIID riid, *ppv = &This->session_wrapper->IChannelAudioVolume_iface; }else if(IsEqualIID(riid, &IID_ISimpleAudioVolume)){ if(!This->session_wrapper){ - This->session_wrapper = AudioSessionWrapper_Create(This); + This->session_wrapper = session_wrapper_create(This); if(!This->session_wrapper){ sessions_unlock(); return E_OUTOFMEMORY; @@ -987,30 +988,6 @@ static const IAudioClient3Vtbl AudioClient3_Vtbl = client_InitializeSharedAudioStream, };
-static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client) -{ - AudioSessionWrapper *ret; - - ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(AudioSessionWrapper)); - if(!ret) - return NULL; - - ret->IAudioSessionControl2_iface.lpVtbl = &AudioSessionControl2_Vtbl; - ret->ISimpleAudioVolume_iface.lpVtbl = &SimpleAudioVolume_Vtbl; - ret->IChannelAudioVolume_iface.lpVtbl = &ChannelAudioVolume_Vtbl; - - ret->ref = 1; - - ret->client = client; - if(client){ - ret->session = client->session; - IAudioClient3_AddRef(&client->IAudioClient3_iface); - } - - return ret; -} - HRESULT WINAPI AUDDRV_GetAudioSessionWrapper(const GUID *guid, IMMDevice *device, AudioSessionWrapper **out) { @@ -1020,7 +997,7 @@ HRESULT WINAPI AUDDRV_GetAudioSessionWrapper(const GUID *guid, IMMDevice *device if(FAILED(hr)) return hr;
- *out = AudioSessionWrapper_Create(NULL); + *out = session_wrapper_create(NULL); if(!*out) return E_OUTOFMEMORY;