[PATCH v2 2/7] winepulse: Simplify checks for stream being initialized.

Andrew Eikum aeikum at codeweavers.com
Tue May 25 11:53:09 CDT 2021


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

On Mon, May 24, 2021 at 06:21:52PM +0200, Jacek Caban wrote:
> 
> Signed-off-by: Jacek Caban <jacek at codeweavers.com>
> ---
>  dlls/winepulse.drv/mmdevdrv.c | 37 ++++++++---------------------------
>  1 file changed, 8 insertions(+), 29 deletions(-)
> 
> 

> diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c
> index 0178cdb9e7b..8e717f9d18f 100644
> --- a/dlls/winepulse.drv/mmdevdrv.c
> +++ b/dlls/winepulse.drv/mmdevdrv.c
> @@ -230,14 +230,6 @@ static char *get_application_name(void)
>      return str;
>  }
>  
> -static HRESULT pulse_stream_valid(ACImpl *This) {
> -    if (!This->pulse_stream)
> -        return AUDCLNT_E_NOT_INITIALIZED;
> -    if (pa_stream_get_state(This->pulse_stream->stream) != PA_STREAM_READY)
> -        return AUDCLNT_E_DEVICE_INVALIDATED;
> -    return S_OK;
> -}
> -
>  static DWORD WINAPI pulse_timer_cb(void *user)
>  {
>      ACImpl *This = user;
> @@ -905,7 +897,6 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient3 *iface, REFIID riid,
>          void **ppv)
>  {
>      ACImpl *This = impl_from_IAudioClient3(iface);
> -    HRESULT hr;
>  
>      TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppv);
>  
> @@ -913,11 +904,8 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient3 *iface, REFIID riid,
>          return E_POINTER;
>      *ppv = NULL;
>  
> -    pulse->lock();
> -    hr = pulse_stream_valid(This);
> -    pulse->unlock();
> -    if (FAILED(hr))
> -        return hr;
> +    if (!This->pulse_stream)
> +        return AUDCLNT_E_NOT_INITIALIZED;
>  
>      if (IsEqualIID(riid, &IID_IAudioRenderClient)) {
>          if (This->dataflow != eRender)
> @@ -1436,7 +1424,6 @@ static HRESULT WINAPI AudioStreamVolume_SetAllVolumes(
>          IAudioStreamVolume *iface, UINT32 count, const float *levels)
>  {
>      ACImpl *This = impl_from_IAudioStreamVolume(iface);
> -    HRESULT hr;
>      int i;
>  
>      TRACE("(%p)->(%d, %p)\n", This, count, levels);
> @@ -1444,28 +1431,24 @@ static HRESULT WINAPI AudioStreamVolume_SetAllVolumes(
>      if (!levels)
>          return E_POINTER;
>  
> +    if (!This->pulse_stream)
> +        return AUDCLNT_E_NOT_INITIALIZED;
>      if (count != This->channel_count)
>          return E_INVALIDARG;
>  
>      pulse->lock();
> -    hr = pulse_stream_valid(This);
> -    if (FAILED(hr))
> -        goto out;
> -
>      for (i = 0; i < count; ++i)
>          This->vol[i] = levels[i];
>  
>      set_stream_volumes(This);
> -out:
>      pulse->unlock();
> -    return hr;
> +    return S_OK;
>  }
>  
>  static HRESULT WINAPI AudioStreamVolume_GetAllVolumes(
>          IAudioStreamVolume *iface, UINT32 count, float *levels)
>  {
>      ACImpl *This = impl_from_IAudioStreamVolume(iface);
> -    HRESULT hr;
>      int i;
>  
>      TRACE("(%p)->(%d, %p)\n", This, count, levels);
> @@ -1473,20 +1456,16 @@ static HRESULT WINAPI AudioStreamVolume_GetAllVolumes(
>      if (!levels)
>          return E_POINTER;
>  
> +    if (!This->pulse_stream)
> +        return AUDCLNT_E_NOT_INITIALIZED;
>      if (count != This->channel_count)
>          return E_INVALIDARG;
>  
>      pulse->lock();
> -    hr = pulse_stream_valid(This);
> -    if (FAILED(hr))
> -        goto out;
> -
>      for (i = 0; i < count; ++i)
>          levels[i] = This->vol[i];
> -
> -out:
>      pulse->unlock();
> -    return hr;
> +    return S_OK;
>  }
>  
>  static HRESULT WINAPI AudioStreamVolume_SetChannelVolume(
> 




More information about the wine-devel mailing list