From: Davide Beatrici git@davidebeatrici.dev
--- dlls/winecoreaudio.drv/coreaudio.c | 6 ++++++ dlls/winecoreaudio.drv/mmdevdrv.c | 3 +++ dlls/winecoreaudio.drv/unixlib.h | 3 +++ 3 files changed, 12 insertions(+)
diff --git a/dlls/winecoreaudio.drv/coreaudio.c b/dlls/winecoreaudio.drv/coreaudio.c index cc6ef17f914..2b9675604d0 100644 --- a/dlls/winecoreaudio.drv/coreaudio.c +++ b/dlls/winecoreaudio.drv/coreaudio.c @@ -1700,23 +1700,29 @@ static NTSTATUS unix_wow64_create_stream(void *args) { struct { + PTR32 name; PTR32 device; EDataFlow flow; AUDCLNT_SHAREMODE share; + DWORD flags; REFERENCE_TIME duration; 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, + .flags = params32->flags, .duration = params32->duration, .period = params32->period, .fmt = ULongToPtr(params32->fmt), + .channel_count = ULongToPtr(params32->channel_count), .stream = ULongToPtr(params32->stream) }; unix_create_stream(¶ms); diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c index ee5fd0ba991..acbe7229b4f 100644 --- a/dlls/winecoreaudio.drv/mmdevdrv.c +++ b/dlls/winecoreaudio.drv/mmdevdrv.c @@ -732,12 +732,15 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface, return AUDCLNT_E_ALREADY_INITIALIZED; }
+ params.name = NULL; params.device = This->dev_name; params.flow = This->dataflow; params.share = mode; + params.flags = flags; params.duration = duration; params.period = period; params.fmt = fmt; + params.channel_count = NULL; params.stream = &stream;
UNIX_CALL(create_stream, ¶ms); diff --git a/dlls/winecoreaudio.drv/unixlib.h b/dlls/winecoreaudio.drv/unixlib.h index 2bb3a49820a..37357e1122a 100644 --- a/dlls/winecoreaudio.drv/unixlib.h +++ b/dlls/winecoreaudio.drv/unixlib.h @@ -41,13 +41,16 @@ struct get_endpoint_ids_params
struct create_stream_params { + const char *name; const char *device; EDataFlow flow; AUDCLNT_SHAREMODE share; + DWORD flags; REFERENCE_TIME duration; REFERENCE_TIME period; const WAVEFORMATEX *fmt; HRESULT result; + UINT32 *channel_count; stream_handle *stream; };