Module: wine Branch: master Commit: 62cd90e8acf1e26e8c813ca37bc0ded4d52134a0 URL: https://gitlab.winehq.org/wine/wine/-/commit/62cd90e8acf1e26e8c813ca37bc0ded...
Author: Davide Beatrici git@davidebeatrici.dev Date: Wed Jun 14 00:52:19 2023 +0200
winepulse: Move AudioClient's Initialize's exclusive mode check into unixlib.
---
dlls/winepulse.drv/mmdevdrv.c | 2 -- dlls/winepulse.drv/pulse.c | 9 +++++++-- 2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c index f15fa88c15e..5a276c40f4c 100644 --- a/dlls/winepulse.drv/mmdevdrv.c +++ b/dlls/winepulse.drv/mmdevdrv.c @@ -698,8 +698,6 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface,
if (mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) return E_INVALIDARG; - if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) - return AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED;
if (flags & ~(AUDCLNT_STREAMFLAGS_CROSSPROCESS | AUDCLNT_STREAMFLAGS_LOOPBACK | diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c index be540a4da2c..ab49a4cc320 100644 --- a/dlls/winepulse.drv/pulse.c +++ b/dlls/winepulse.drv/pulse.c @@ -1116,12 +1116,17 @@ static NTSTATUS pulse_create_stream(void *args) struct pulse_stream *stream; unsigned int i, bufsize_bytes; HRESULT hr; - char *name = wstr_to_str(params->name); + char *name; + + if (params->share == AUDCLNT_SHAREMODE_EXCLUSIVE) { + params->result = AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; + return STATUS_SUCCESS; + }
pulse_lock();
+ name = wstr_to_str(params->name); params->result = pulse_connect(name); - free(name);
if (FAILED(params->result))