winealsa: Use create_stream's channel count in AudioClient's Initialize.

This commit is contained in:
Davide Beatrici 2023-06-21 12:40:24 +02:00 committed by Alexandre Julliard
parent 176d6a8be9
commit b115d90b9a
2 changed files with 7 additions and 7 deletions

View file

@ -1050,6 +1050,7 @@ exit:
free(stream->vols);
free(stream);
}else{
*params->channel_count = params->fmt->nChannels;
*params->stream = (stream_handle)(UINT_PTR)stream;
}

View file

@ -550,7 +550,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface,
ACImpl *This = impl_from_IAudioClient3(iface);
struct create_stream_params params;
stream_handle stream;
unsigned int i;
unsigned int i, channel_count;
WCHAR *name;
TRACE("(%p)->(%x, %lx, %s, %s, %p, %s)\n", This, mode, flags,
@ -598,7 +598,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface,
params.duration = duration;
params.period = period;
params.fmt = fmt;
params.channel_count = NULL;
params.channel_count = &channel_count;
params.stream = &stream;
ALSA_CALL(create_stream, &params);
@ -610,17 +610,15 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface,
return params.result;
}
This->channel_count = fmt->nChannels;
This->vols = HeapAlloc(GetProcessHeap(), 0, This->channel_count * sizeof(float));
This->vols = HeapAlloc(GetProcessHeap(), 0, channel_count * sizeof(float));
if(!This->vols){
params.result = E_OUTOFMEMORY;
goto exit;
}
for(i = 0; i < This->channel_count; ++i)
for(i = 0; i < channel_count; ++i)
This->vols[i] = 1.f;
params.result = get_audio_session(sessionguid, This->parent, This->channel_count,
&This->session);
params.result = get_audio_session(sessionguid, This->parent, channel_count, &This->session);
if(FAILED(params.result))
goto exit;
@ -633,6 +631,7 @@ exit:
This->vols = NULL;
}else{
This->stream = stream;
This->channel_count = channel_count;
set_stream_volumes(This);
}