From: Davide Beatrici git@davidebeatrici.dev
--- dlls/wineoss.drv/mmdevdrv.c | 2 ++ dlls/wineoss.drv/oss.c | 4 ++++ dlls/wineoss.drv/unixlib.h | 2 ++ 3 files changed, 8 insertions(+)
diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c index 1bb1ab01574..cf30d92a69b 100644 --- a/dlls/wineoss.drv/mmdevdrv.c +++ b/dlls/wineoss.drv/mmdevdrv.c @@ -710,6 +710,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface, return AUDCLNT_E_ALREADY_INITIALIZED; }
+ params.name = NULL; params.device = This->devnode; params.flow = This->dataflow; params.share = mode; @@ -717,6 +718,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface, params.duration = duration; params.period = period; params.fmt = fmt; + params.channel_count = NULL; params.stream = &stream;
OSS_CALL(create_stream, ¶ms); diff --git a/dlls/wineoss.drv/oss.c b/dlls/wineoss.drv/oss.c index d74466f51c2..00ce263aaff 100644 --- a/dlls/wineoss.drv/oss.c +++ b/dlls/wineoss.drv/oss.c @@ -1664,6 +1664,7 @@ static NTSTATUS oss_wow64_create_stream(void *args) { struct { + PTR32 name; PTR32 device; EDataFlow flow; AUDCLNT_SHAREMODE share; @@ -1672,10 +1673,12 @@ static NTSTATUS oss_wow64_create_stream(void *args) REFERENCE_TIME period; PTR32 fmt; HRESULT result; + PTR32 channel_count; PTR32 stream; } *params32 = args; struct create_stream_params params = { + .name = ULongToPtr(params32->name), .device = ULongToPtr(params32->device), .flow = params32->flow, .share = params32->share, @@ -1683,6 +1686,7 @@ static NTSTATUS oss_wow64_create_stream(void *args) .duration = params32->duration, .period = params32->period, .fmt = ULongToPtr(params32->fmt), + .channel_count = ULongToPtr(params32->channel_count), .stream = ULongToPtr(params32->stream) }; oss_create_stream(¶ms); diff --git a/dlls/wineoss.drv/unixlib.h b/dlls/wineoss.drv/unixlib.h index 86a31f68001..03d0cdb39c7 100644 --- a/dlls/wineoss.drv/unixlib.h +++ b/dlls/wineoss.drv/unixlib.h @@ -53,6 +53,7 @@ struct get_endpoint_ids_params
struct create_stream_params { + const char *name; const char *device; EDataFlow flow; AUDCLNT_SHAREMODE share; @@ -61,6 +62,7 @@ struct create_stream_params REFERENCE_TIME period; const WAVEFORMATEX *fmt; HRESULT result; + UINT32 *channel_count; stream_handle *stream; };