From d59559c4d1c35824da379bdb8226cc716c81bb02 Mon Sep 17 00:00:00 2001 From: David Rowland Date: Wed, 17 Jan 2024 10:57:30 +0000 Subject: [PATCH] DeviceManager: Avoided some unnecessary calls to rebuildWaveDeviceList() --- .../playback/tracktion_DeviceManager.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/tracktion_engine/playback/tracktion_DeviceManager.cpp b/modules/tracktion_engine/playback/tracktion_DeviceManager.cpp index 8d80f72c239..5f024342f2c 100644 --- a/modules/tracktion_engine/playback/tracktion_DeviceManager.cpp +++ b/modules/tracktion_engine/playback/tracktion_DeviceManager.cpp @@ -77,7 +77,7 @@ static juce::StringArray getMidiDeviceNames (juce::Array d deviceNames.add (d.name); deviceNames.appendNumbersToDuplicates (true, false); - + return deviceNames; } @@ -134,7 +134,7 @@ struct DeviceManager::WaveDeviceList for (int i = 0; i < channelNames.size(); ++i) { const bool canBeStereo = i < channelNames.size() - 1; - + if (canBeStereo && (isInput ? dm.isDeviceInChannelStereo (i) : dm.isDeviceOutChannelStereo (i))) { descriptions.push_back (WaveDeviceDescription (mergeTwoNames (channelNames[i], channelNames[i + 1]), @@ -330,10 +330,10 @@ void DeviceManager::initialiseMidi() TRACKTION_LOG ("Finding MIDI I/O"); if (openHardwareMidi) lastMidiInNames = getMidiDeviceNames (juce::MidiInput::getAvailableDevices()); - + if (openHardwareMidi) lastMidiOutNames = getMidiDeviceNames (juce::MidiOutput::getAvailableDevices()); - + int enabledMidiIns = 0, enabledMidiOuts = 0; // create all the devices before initialising them.. @@ -912,7 +912,9 @@ void DeviceManager::setDeviceInChannelStereo (int chan, bool isStereoPair) { chan &= ~1; - if (inStereoChans[chan / 2] != isStereoPair) + if (inStereoChans[chan / 2] == isStereoPair) + return; + { inStereoChans.setBit (chan / 2, isStereoPair); @@ -1250,7 +1252,7 @@ void DeviceManager::audioDeviceAboutToStart (juce::AudioIODevice* device) cpuAvgCounter = cpuReportingInterval = 1; jassert (currentSampleRate > 0.0); - + #if JUCE_ANDROID steadyLoadContext.setSampleRate (device->getCurrentSampleRate()); #endif