mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-22 16:24:04 +02:00
WASAPI: Use the correct virtual device for process-specific loopback.
Public issue https://github.com/mackron/miniaudio/issues/484
This commit is contained in:
+7
-1
@@ -20925,11 +20925,14 @@ typedef struct
|
|||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define MA_VIRTUAL_AUDIO_DEVICE_PROCESS_LOOPBACK L"VAD\\Process_Loopback"
|
||||||
|
|
||||||
static ma_result ma_context_get_IAudioClient__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_uint32 loopbackProcessID, ma_bool32 loopbackProcessExclude, ma_IAudioClient** ppAudioClient, ma_WASAPIDeviceInterface** ppDeviceInterface)
|
static ma_result ma_context_get_IAudioClient__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_uint32 loopbackProcessID, ma_bool32 loopbackProcessExclude, ma_IAudioClient** ppAudioClient, ma_WASAPIDeviceInterface** ppDeviceInterface)
|
||||||
{
|
{
|
||||||
MA_AUDIOCLIENT_ACTIVATION_PARAMS audioclientActivationParams;
|
MA_AUDIOCLIENT_ACTIVATION_PARAMS audioclientActivationParams;
|
||||||
PROPVARIANT activationParams;
|
PROPVARIANT activationParams;
|
||||||
PROPVARIANT* pActivationParams = NULL;
|
PROPVARIANT* pActivationParams = NULL;
|
||||||
|
ma_device_id virtualDeviceID;
|
||||||
|
|
||||||
/* Activation parameters specific to loopback mode. */
|
/* Activation parameters specific to loopback mode. */
|
||||||
if (deviceType == ma_device_type_loopback && loopbackProcessID != 0) {
|
if (deviceType == ma_device_type_loopback && loopbackProcessID != 0) {
|
||||||
@@ -20942,8 +20945,11 @@ static ma_result ma_context_get_IAudioClient__wasapi(ma_context* pContext, ma_de
|
|||||||
activationParams.vt = VT_BLOB;
|
activationParams.vt = VT_BLOB;
|
||||||
activationParams.blob.cbSize = sizeof(audioclientActivationParams);
|
activationParams.blob.cbSize = sizeof(audioclientActivationParams);
|
||||||
activationParams.blob.pBlobData = (BYTE*)&audioclientActivationParams;
|
activationParams.blob.pBlobData = (BYTE*)&audioclientActivationParams;
|
||||||
|
|
||||||
pActivationParams = &activationParams;
|
pActivationParams = &activationParams;
|
||||||
|
|
||||||
|
/* When requesting a specific device ID we need to use a special device ID. */
|
||||||
|
MA_COPY_MEMORY(virtualDeviceID.wasapi, MA_VIRTUAL_AUDIO_DEVICE_PROCESS_LOOPBACK, (wcslen(MA_VIRTUAL_AUDIO_DEVICE_PROCESS_LOOPBACK) + 1) * sizeof(wchar_t)); /* +1 for the null terminator. */
|
||||||
|
pDeviceID = &virtualDeviceID;
|
||||||
} else {
|
} else {
|
||||||
pActivationParams = NULL; /* No activation parameters required. */
|
pActivationParams = NULL; /* No activation parameters required. */
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user