Commit 546a6208 authored by Davide Beatrici's avatar Davide Beatrici Committed by Alexandre Julliard

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

parent b115d90b
...@@ -776,8 +776,10 @@ end: ...@@ -776,8 +776,10 @@ end:
if(stream->unit) AudioComponentInstanceDispose(stream->unit); if(stream->unit) AudioComponentInstanceDispose(stream->unit);
free(stream->fmt); free(stream->fmt);
free(stream); free(stream);
} else } else {
*params->channel_count = params->fmt->nChannels;
*params->stream = (stream_handle)(UINT_PTR)stream; *params->stream = (stream_handle)(UINT_PTR)stream;
}
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
......
...@@ -545,7 +545,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface, ...@@ -545,7 +545,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface,
ACImpl *This = impl_from_IAudioClient3(iface); ACImpl *This = impl_from_IAudioClient3(iface);
struct create_stream_params params; struct create_stream_params params;
stream_handle stream; stream_handle stream;
UINT32 i; UINT32 i, channel_count;
WCHAR *name; WCHAR *name;
TRACE("(%p)->(%x, %lx, %s, %s, %p, %s)\n", This, mode, flags, TRACE("(%p)->(%x, %lx, %s, %s, %p, %s)\n", This, mode, flags,
...@@ -593,7 +593,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface, ...@@ -593,7 +593,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface,
params.duration = duration; params.duration = duration;
params.period = period; params.period = period;
params.fmt = fmt; params.fmt = fmt;
params.channel_count = NULL; params.channel_count = &channel_count;
params.stream = &stream; params.stream = &stream;
UNIX_CALL(create_stream, &params); UNIX_CALL(create_stream, &params);
...@@ -605,18 +605,16 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface, ...@@ -605,18 +605,16 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface,
return params.result; return params.result;
} }
This->channel_count = fmt->nChannels; This->vols = HeapAlloc(GetProcessHeap(), 0, channel_count * sizeof(float));
This->vols = HeapAlloc(GetProcessHeap(), 0, This->channel_count * sizeof(float));
if(!This->vols){ if(!This->vols){
params.result = E_OUTOFMEMORY; params.result = E_OUTOFMEMORY;
goto end; goto end;
} }
for(i = 0; i < This->channel_count; ++i) for(i = 0; i < channel_count; ++i)
This->vols[i] = 1.f; This->vols[i] = 1.f;
params.result = get_audio_session(sessionguid, This->parent, fmt->nChannels, &This->session); params.result = get_audio_session(sessionguid, This->parent, channel_count, &This->session);
if(FAILED(params.result)) goto end; if(FAILED(params.result)) goto end;
list_add_tail(&This->session->clients, &This->entry); list_add_tail(&This->session->clients, &This->entry);
...@@ -628,6 +626,7 @@ end: ...@@ -628,6 +626,7 @@ end:
This->vols = NULL; This->vols = NULL;
}else{ }else{
This->stream = stream; This->stream = stream;
This->channel_count = channel_count;
set_stream_volumes(This); set_stream_volumes(This);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment