Huw Davies (@huw) commented about dlls/winepulse.drv/pulse.c:
- /* This driver does not support exclusive mode. */ - if (exclusive && params->result == S_OK) - params->result = params->flow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; + if (exclusive) { + switch (params->result) { + case S_OK: + /* This driver does not support exclusive mode. */ + params->result = params->flow == eCapture ? + AUDCLNT_E_UNSUPPORTED_FORMAT : + AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; + break; + case S_FALSE: + params->result = AUDCLNT_E_UNSUPPORTED_FORMAT; + } + }
Perhaps something like this is clearer: ```suggestion:-11+0 if (exclusive) { /* This driver does not support exclusive mode. */ if (params->result == S_OK) params->result = params->flow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; else if (params->result == S_FALSE) params->result = AUDCLNT_E_UNSUPPORTED_FORMAT; } ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3575#note_42823