diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp index 07903f3f2d..3eb960c4b1 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp +++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp @@ -120,6 +120,17 @@ const OwnedArray& AudioDeviceManager::getAvailableDeviceTypes return availableDeviceTypes; } +void AudioDeviceManager::updateCurrentSetup() +{ + if (currentAudioDevice != nullptr) + { + currentSetup.sampleRate = currentAudioDevice->getCurrentSampleRate(); + currentSetup.bufferSize = currentAudioDevice->getCurrentBufferSizeSamples(); + currentSetup.inputChannels = currentAudioDevice->getActiveInputChannels(); + currentSetup.outputChannels = currentAudioDevice->getActiveOutputChannels(); + } +} + void AudioDeviceManager::audioDeviceListChanged() { if (currentAudioDevice != nullptr) @@ -156,13 +167,7 @@ void AudioDeviceManager::audioDeviceListChanged() initialiseDefault (preferredDeviceName, ¤tSetup); } - if (currentAudioDevice != nullptr) - { - currentSetup.sampleRate = currentAudioDevice->getCurrentSampleRate(); - currentSetup.bufferSize = currentAudioDevice->getCurrentBufferSizeSamples(); - currentSetup.inputChannels = currentAudioDevice->getActiveInputChannels(); - currentSetup.outputChannels = currentAudioDevice->getActiveOutputChannels(); - } + updateCurrentSetup(); } sendChangeMessage(); @@ -874,6 +879,7 @@ void AudioDeviceManager::audioDeviceAboutToStartInt (AudioIODevice* const device callbacks.getUnchecked(i)->audioDeviceAboutToStart (device); } + updateCurrentSetup(); sendChangeMessage(); } diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h index d5c6f03fff..2382284031 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h +++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h @@ -533,6 +533,7 @@ private: void updateXml(); + void updateCurrentSetup(); void createDeviceTypesIfNeeded(); void scanDevicesIfNeeded(); void deleteCurrentDevice();