diff --git a/CHANGES.md b/CHANGES.md index eeccca75..1b67da17 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -11,6 +11,7 @@ v0.11.22 - TBD * Web: Fix a JavaScript error when initializing and then uninitializing a context before any interactivity. * AAudio: The default minimum SDK version has been increased from 26 to 27 when enabling AAudio. If you need to support version 26, you can use `#define MA_AAUDIO_MIN_ANDROID_SDK_VERSION 26`. * AAudio: Fix ma_device_get_info() implementation +* PulseAudio: Allow setting the channel map requested from PulseAudio in device configs v0.11.21 - 2023-11-15 diff --git a/miniaudio.h b/miniaudio.h index b48be2c3..75bdb6b8 100644 --- a/miniaudio.h +++ b/miniaudio.h @@ -7107,6 +7107,7 @@ struct ma_device_config { const char* pStreamNamePlayback; const char* pStreamNameCapture; + int pChannelMap; } pulse; struct { @@ -8755,6 +8756,9 @@ then be set directly on the structure. Below are the members of the `ma_device_c pulse.pStreamNameCapture PulseAudio only. Sets the stream name for capture. + pulse.pChannelMap + PulseAudio only. Sets the channel map that is requested from PulseAudio. See MA_PA_CHANNEL_MAP_* constants. Defaults to MA_PA_CHANNEL_MAP_AIFF. + coreaudio.allowNominalSampleRateChange Core Audio only. Desktop only. When enabled, allows the sample rate of the device to be changed at the operating system level. This is disabled by default in order to prevent intrusive changes to the user's system. This is useful if you want to use a sample rate @@ -30487,7 +30491,7 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi } /* Use a default channel map. */ - ((ma_pa_channel_map_init_extend_proc)pDevice->pContext->pulse.pa_channel_map_init_extend)(&cmap, ss.channels, MA_PA_CHANNEL_MAP_DEFAULT); + ((ma_pa_channel_map_init_extend_proc)pDevice->pContext->pulse.pa_channel_map_init_extend)(&cmap, ss.channels, pConfig->pulse.pChannelMap); /* Use the requested sample rate if one was specified. */ if (pDescriptorCapture->sampleRate != 0) { @@ -30639,7 +30643,7 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi } /* Use a default channel map. */ - ((ma_pa_channel_map_init_extend_proc)pDevice->pContext->pulse.pa_channel_map_init_extend)(&cmap, ss.channels, MA_PA_CHANNEL_MAP_DEFAULT); + ((ma_pa_channel_map_init_extend_proc)pDevice->pContext->pulse.pa_channel_map_init_extend)(&cmap, ss.channels, pConfig->pulse.pChannelMap); /* Use the requested sample rate if one was specified. */