Commit d6a56e40 authored by David Reid's avatar David Reid

iOS: A small change to the experimental fix from the previous commit.

parent 9ec38874
...@@ -25995,19 +25995,8 @@ static ma_result ma_device__untrack__coreaudio(ma_device* pDevice) ...@@ -25995,19 +25995,8 @@ static ma_result ma_device__untrack__coreaudio(ma_device* pDevice)
case AVAudioSessionRouteChangeReasonNewDeviceAvailable: case AVAudioSessionRouteChangeReasonNewDeviceAvailable:
{ {
#if defined(MA_DEBUG_OUTPUT) #if defined(MA_DEBUG_OUTPUT)
printf("[Core Audio] Route Changed: AVAudioSessionRouteChangeReasonNewDeviceAvailable. inputNumberChannels=%d; outputNumberOfChannels=%d.\n", pSession.inputNumberOfChannels, pSession.outputNumberOfChannels); printf("[Core Audio] Route Changed: AVAudioSessionRouteChangeReasonNewDeviceAvailable\n");
#endif #endif
m_pDevice->sampleRate = (ma_uint32)pSession.sampleRate;
if (m_pDevice->type == ma_device_type_capture || m_pDevice->type == ma_device_type_duplex) {
m_pDevice->capture.internalChannels = (ma_uint32)pSession.inputNumberOfChannels;
ma_device__post_init_setup(m_pDevice, ma_device_type_capture);
}
if (m_pDevice->type == ma_device_type_playback || m_pDevice->type == ma_device_type_duplex) {
m_pDevice->playback.internalChannels = (ma_uint32)pSession.outputNumberOfChannels;
ma_device__post_init_setup(m_pDevice, ma_device_type_playback);
}
} break; } break;
case AVAudioSessionRouteChangeReasonNoSuitableRouteForCategory: case AVAudioSessionRouteChangeReasonNoSuitableRouteForCategory:
...@@ -26046,6 +26035,23 @@ static ma_result ma_device__untrack__coreaudio(ma_device* pDevice) ...@@ -26046,6 +26035,23 @@ static ma_result ma_device__untrack__coreaudio(ma_device* pDevice)
#endif #endif
} break; } break;
} }
if (reason == AVAudioSessionRouteChangeReasonNewDeviceAvailable || reason == AVAudioSessionRouteChangeReasonCategoryChange || reason == AVAudioSessionRouteChangeReasonOverride) {
#if defined(MA_DEBUG_OUTPUT)
printf("[Core Audio] Changing Route. inputNumberChannels=%d; outputNumberOfChannels=%d\n", pSession.inputNumberOfChannels, pSession.outputNumberOfChannels);
#endif
m_pDevice->sampleRate = (ma_uint32)pSession.sampleRate;
if (m_pDevice->type == ma_device_type_capture || m_pDevice->type == ma_device_type_duplex) {
m_pDevice->capture.internalChannels = (ma_uint32)pSession.inputNumberOfChannels;
ma_device__post_init_setup(m_pDevice, ma_device_type_capture);
}
if (m_pDevice->type == ma_device_type_playback || m_pDevice->type == ma_device_type_duplex) {
m_pDevice->playback.internalChannels = (ma_uint32)pSession.outputNumberOfChannels;
ma_device__post_init_setup(m_pDevice, ma_device_type_playback);
}
}
} }
@end @end
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment