[PATCH 4/7] winepulse: Store channel count directly in ACImpl.
Andrew Eikum
aeikum at codeweavers.com
Wed May 12 11:37:12 CDT 2021
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
On Tue, May 11, 2021 at 06:30:28PM +0200, Jacek Caban wrote:
> Signed-off-by: Jacek Caban <jacek at codeweavers.com>
> ---
> dlls/winepulse.drv/mmdevdrv.c | 19 ++++++++++---------
> 1 file changed, 10 insertions(+), 9 deletions(-)
>
>
> diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c
> index 0bb3491a577..0c5e08c54e6 100644
> --- a/dlls/winepulse.drv/mmdevdrv.c
> +++ b/dlls/winepulse.drv/mmdevdrv.c
> @@ -148,6 +148,7 @@ struct ACImpl {
>
> LONG ref;
> EDataFlow dataflow;
> + UINT32 channel_count;
> DWORD flags;
> AUDCLNT_SHAREMODE share;
> HANDLE event, timer;
> @@ -1170,7 +1171,7 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt)
> WARN("Unhandled tag %x\n", fmt->wFormatTag);
> return AUDCLNT_E_UNSUPPORTED_FORMAT;
> }
> - This->ss.channels = This->map.channels;
> + This->channel_count = This->ss.channels = This->map.channels;
> if (!pa_channel_map_valid(&This->map) || This->ss.format == PA_SAMPLE_INVALID) {
> ERR("Invalid format! Channel spec valid: %i, format: %i\n", pa_channel_map_valid(&This->map), This->ss.format);
> return AUDCLNT_E_UNSUPPORTED_FORMAT;
> @@ -2470,7 +2471,7 @@ static HRESULT WINAPI AudioStreamVolume_GetChannelCount(
> if (!out)
> return E_POINTER;
>
> - *out = This->ss.channels;
> + *out = This->channel_count;
>
> return S_OK;
> }
> @@ -2492,7 +2493,7 @@ static HRESULT WINAPI AudioStreamVolume_SetAllVolumes(
> if (!levels)
> return E_POINTER;
>
> - if (count != This->ss.channels)
> + if (count != This->channel_count)
> return E_INVALIDARG;
>
> pulse->lock();
> @@ -2520,7 +2521,7 @@ static HRESULT WINAPI AudioStreamVolume_GetAllVolumes(
> if (!levels)
> return E_POINTER;
>
> - if (count != This->ss.channels)
> + if (count != This->channel_count)
> return E_INVALIDARG;
>
> pulse->lock();
> @@ -2548,13 +2549,13 @@ static HRESULT WINAPI AudioStreamVolume_SetChannelVolume(
> if (level < 0.f || level > 1.f)
> return E_INVALIDARG;
>
> - if (index >= This->ss.channels)
> + if (index >= This->channel_count)
> return E_INVALIDARG;
>
> - hr = AudioStreamVolume_GetAllVolumes(iface, This->ss.channels, volumes);
> + hr = AudioStreamVolume_GetAllVolumes(iface, This->channel_count, volumes);
> volumes[index] = level;
> if (SUCCEEDED(hr))
> - hr = AudioStreamVolume_SetAllVolumes(iface, This->ss.channels, volumes);
> + hr = AudioStreamVolume_SetAllVolumes(iface, This->channel_count, volumes);
> return hr;
> }
>
> @@ -2570,10 +2571,10 @@ static HRESULT WINAPI AudioStreamVolume_GetChannelVolume(
> if (!level)
> return E_POINTER;
>
> - if (index >= This->ss.channels)
> + if (index >= This->channel_count)
> return E_INVALIDARG;
>
> - hr = AudioStreamVolume_GetAllVolumes(iface, This->ss.channels, volumes);
> + hr = AudioStreamVolume_GetAllVolumes(iface, This->channel_count, volumes);
> if (SUCCEEDED(hr))
> *level = volumes[index];
> return hr;
>
More information about the wine-devel
mailing list