[PATCH 3/8] wineoss: Use the global lock to lock the session.

Andrew Eikum aeikum at codeweavers.com
Mon Apr 11 08:59:36 CDT 2022


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>

On Wed, Apr 06, 2022 at 07:55:53AM +0100, Huw Davies wrote:
> Mainly for simplicity.
> 
> Signed-off-by: Huw Davies <huw at codeweavers.com>
> ---
>  dlls/wineoss.drv/mmdevdrv.c | 21 ++++++++-------------
>  1 file changed, 8 insertions(+), 13 deletions(-)
> 
> diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c
> index eb0ab7b8fc7..af49c88e6cf 100644
> --- a/dlls/wineoss.drv/mmdevdrv.c
> +++ b/dlls/wineoss.drv/mmdevdrv.c
> @@ -81,8 +81,6 @@ typedef struct _AudioSession {
>      float *channel_vols;
>      BOOL mute;
>  
> -    CRITICAL_SECTION lock;
> -
>      struct list entry;
>  } AudioSession;
>  
> @@ -835,9 +833,6 @@ static AudioSession *create_session(const GUID *guid, IMMDevice *device,
>  
>      list_add_head(&g_sessions, &ret->entry);
>  
> -    InitializeCriticalSection(&ret->lock);
> -    ret->lock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": AudioSession.lock");
> -
>      session_init_vols(ret, num_channels);
>  
>      ret->master_vol = 1.f;
> @@ -2565,13 +2560,13 @@ static HRESULT WINAPI SimpleAudioVolume_SetMasterVolume(
>      if(context)
>          FIXME("Notifications not supported yet\n");
>  
> -    EnterCriticalSection(&session->lock);
> +    EnterCriticalSection(&g_sessions_lock);
>  
>      session->master_vol = level;
>  
>      TRACE("OSS doesn't support setting volume\n");
>  
> -    LeaveCriticalSection(&session->lock);
> +    LeaveCriticalSection(&g_sessions_lock);
>  
>      return S_OK;
>  }
> @@ -2600,11 +2595,11 @@ static HRESULT WINAPI SimpleAudioVolume_SetMute(ISimpleAudioVolume *iface,
>  
>      TRACE("(%p)->(%u, %s)\n", session, mute, debugstr_guid(context));
>  
> -    EnterCriticalSection(&session->lock);
> +    EnterCriticalSection(&g_sessions_lock);
>  
>      session->mute = mute;
>  
> -    LeaveCriticalSection(&session->lock);
> +    LeaveCriticalSection(&g_sessions_lock);
>  
>      return S_OK;
>  }
> @@ -2856,13 +2851,13 @@ static HRESULT WINAPI ChannelAudioVolume_SetChannelVolume(
>      if(context)
>          FIXME("Notifications not supported yet\n");
>  
> -    EnterCriticalSection(&session->lock);
> +    EnterCriticalSection(&g_sessions_lock);
>  
>      session->channel_vols[index] = level;
>  
>      TRACE("OSS doesn't support setting volume\n");
>  
> -    LeaveCriticalSection(&session->lock);
> +    LeaveCriticalSection(&g_sessions_lock);
>  
>      return S_OK;
>  }
> @@ -2906,14 +2901,14 @@ static HRESULT WINAPI ChannelAudioVolume_SetAllVolumes(
>      if(context)
>          FIXME("Notifications not supported yet\n");
>  
> -    EnterCriticalSection(&session->lock);
> +    EnterCriticalSection(&g_sessions_lock);
>  
>      for(i = 0; i < count; ++i)
>          session->channel_vols[i] = levels[i];
>  
>      TRACE("OSS doesn't support setting volume\n");
>  
> -    LeaveCriticalSection(&session->lock);
> +    LeaveCriticalSection(&g_sessions_lock);
>  
>      return S_OK;
>  }
> -- 
> 2.25.1
> 
> 



More information about the wine-devel mailing list