Commit 526fa796 authored by David Reid's avatar David Reid

Core Audio: Fix a bug with device tracking for auto stream routing.

parent 3ca94aeb
......@@ -24314,15 +24314,8 @@ static ma_result ma_context__uninit_device_tracking__coreaudio(ma_context* pCont
static ma_result ma_device__track__coreaudio(ma_device* pDevice)
{
ma_result result;
MA_ASSERT(pDevice != NULL);
result = ma_context__init_device_tracking__coreaudio(pDevice->pContext);
if (result != MA_SUCCESS) {
return result;
}
ma_mutex_lock(&g_DeviceTrackingMutex_CoreAudio);
{
/* Allocate memory if required. */
......@@ -24357,8 +24350,6 @@ static ma_result ma_device__track__coreaudio(ma_device* pDevice)
static ma_result ma_device__untrack__coreaudio(ma_device* pDevice)
{
ma_result result;
MA_ASSERT(pDevice != NULL);
ma_mutex_lock(&g_DeviceTrackingMutex_CoreAudio);
......@@ -24387,11 +24378,6 @@ static ma_result ma_device__untrack__coreaudio(ma_device* pDevice)
}
ma_mutex_unlock(&g_DeviceTrackingMutex_CoreAudio);
result = ma_context__uninit_device_tracking__coreaudio(pDevice->pContext);
if (result != MA_SUCCESS) {
return result;
}
return MA_SUCCESS;
}
#endif
......@@ -25234,6 +25220,8 @@ static ma_result ma_context_uninit__coreaudio(ma_context* pContext)
ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation);
#endif
ma_context__init_device_tracking__coreaudio(pContext);
(void)pContext;
return MA_SUCCESS;
}
......@@ -25261,6 +25249,8 @@ static AVAudioSessionCategory ma_to_AVAudioSessionCategory(ma_ios_session_catego
static ma_result ma_context_init__coreaudio(const ma_context_config* pConfig, ma_context* pContext)
{
ma_result result;
MA_ASSERT(pConfig != NULL);
MA_ASSERT(pContext != NULL);
......@@ -25415,6 +25405,16 @@ static ma_result ma_context_init__coreaudio(const ma_context_config* pConfig, ma
return MA_FAILED_TO_INIT_BACKEND;
}
}
result = ma_context__init_device_tracking__coreaudio(pContext);
if (result != MA_SUCCESS) {
#if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE)
ma_dlclose(pContext, pContext->coreaudio.hAudioUnit);
ma_dlclose(pContext, pContext->coreaudio.hCoreAudio);
ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation);
#endif
return result;
}
return MA_SUCCESS;
}
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