From 06fcb55ea6ba2d695efe0022b82b4d983e43c3db Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 21 Mar 2013 19:08:53 +0000 Subject: [PATCH] Removed some unnecessary locking from AudioDeviceManager. --- .../audio_io/juce_AudioDeviceManager.cpp | 11 ++--------- .../audio_io/juce_AudioDeviceManager.h | 2 +- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp index a42acf187e..d16bf420b8 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp +++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp @@ -94,7 +94,6 @@ AudioDeviceManager::AudioDeviceManager() numOutputChansNeeded (2), listNeedsScanning (true), useInputNames (false), - inputLevelMeasurementEnabledCount (0), inputLevel (0), tempBuffer (2, 2), cpuUsageMs (0), @@ -615,13 +614,9 @@ void AudioDeviceManager::updateXml() const StringArray availableMidiDevices (MidiInput::getDevices()); for (int i = 0; i < midiInsFromXml.size(); ++i) - { if (! availableMidiDevices.contains (midiInsFromXml[i], true)) - { lastExplicitSettings->createNewChildElement ("MIDIINPUT") ->setAttribute ("name", midiInsFromXml[i]); - } - } } if (defaultMidiOutputName.isNotEmpty()) @@ -670,7 +665,7 @@ void AudioDeviceManager::audioDeviceIOCallbackInt (const float** inputChannelDat { const ScopedLock sl (audioCallbackLock); - if (inputLevelMeasurementEnabledCount > 0 && numInputChannels > 0) + if (inputLevelMeasurementEnabledCount.get() > 0 && numInputChannels > 0) { for (int j = 0; j < numSamples; ++j) { @@ -950,8 +945,6 @@ void AudioDeviceManager::playTestSound() void AudioDeviceManager::enableInputLevelMeasurement (const bool enableMeasurement) { - const ScopedLock sl (audioCallbackLock); - if (enableMeasurement) ++inputLevelMeasurementEnabledCount; else @@ -962,6 +955,6 @@ void AudioDeviceManager::enableInputLevelMeasurement (const bool enableMeasureme double AudioDeviceManager::getCurrentInputLevel() const { - jassert (inputLevelMeasurementEnabledCount > 0); // you need to call enableInputLevelMeasurement() before using this! + jassert (inputLevelMeasurementEnabledCount.get() > 0); // you need to call enableInputLevelMeasurement() before using this! return inputLevel; } diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h index ac9c8f9c1e..2eaba6a3d8 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h +++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h @@ -460,7 +460,7 @@ private: ScopedPointer lastExplicitSettings; mutable bool listNeedsScanning; bool useInputNames; - int inputLevelMeasurementEnabledCount; + Atomic inputLevelMeasurementEnabledCount; double inputLevel; ScopedPointer testSound; int testSoundPosition;