diff --git a/modules/juce_audio_devices/native/juce_ios_Audio.cpp b/modules/juce_audio_devices/native/juce_ios_Audio.cpp index 06f3fb5b91..63dd6a1314 100644 --- a/modules/juce_audio_devices/native/juce_ios_Audio.cpp +++ b/modules/juce_audio_devices/native/juce_ios_Audio.cpp @@ -157,15 +157,15 @@ public: int getOutputLatencyInSamples() { return 0; } //xxx int getInputLatencyInSamples() { return 0; } //xxx - void start (AudioIODeviceCallback* callback_) + void start (AudioIODeviceCallback* newCallback) { - if (isRunning && callback != callback_) + if (isRunning && callback != newCallback) { - if (callback_ != nullptr) - callback_->audioDeviceAboutToStart (this); + if (newCallback != nullptr) + newCallback->audioDeviceAboutToStart (this); const ScopedLock sl (callbackLock); - callback = callback_; + callback = newCallback; } } @@ -325,7 +325,12 @@ private: CFNumberGetValue (routeChangeReasonRef, kCFNumberSInt32Type, &routeChangeReason); if (routeChangeReason == kAudioSessionRouteChangeReason_OldDeviceUnavailable) - fixAudioRouteIfSetToReceiver(); + { + const ScopedLock sl (callbackLock); + + if (callback != nullptr) + callback->audioDeviceError ("Old device unavailable"); + } } updateDeviceInfo(); @@ -378,12 +383,10 @@ private: { close(); - { - const ScopedLock sl (callbackLock); + const ScopedLock sl (callbackLock); - if (callback != nullptr) - callback->audioDeviceError ("iOS audio session interruption"); - } + if (callback != nullptr) + callback->audioDeviceError ("iOS audio session interruption"); } if (interruptionType == kAudioSessionEndInterruption)