From 6574889f1332c5e587413a69966b5892bb394c1e Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 31 Jul 2008 11:32:24 +0000 Subject: [PATCH] --- .../wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp | 6 ++++++ .../audio/processors/juce_AudioProcessor.cpp | 5 +++++ .../audio/processors/juce_AudioProcessor.h | 9 +++++++++ 3 files changed, 20 insertions(+) diff --git a/extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp b/extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp index 6c215d4c8a..e89ded576b 100644 --- a/extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp +++ b/extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp @@ -289,6 +289,9 @@ public: if (name.isEmpty() || ! juceFilter->isParameterAutomatable (index)) outParameterInfo.flags |= kAudioUnitParameterFlag_NonRealTime; + if (juceFilter->isMetaParameter (index)) + outParameterInfo.flags |= kAudioUnitParameterFlag_IsGlobalMeta; + AUBase::FillInParameterName (outParameterInfo, PlatformUtilities::juceStringToCFString (name), false); @@ -536,6 +539,9 @@ public: if (! prepared) prepareToPlay(); + if (juceFilter != 0) + juceFilter->reset(); + return JuceAUBaseClass::Reset (inScope, inElement); } diff --git a/src/juce_appframework/audio/processors/juce_AudioProcessor.cpp b/src/juce_appframework/audio/processors/juce_AudioProcessor.cpp index 4b8194e3de..ff76c7e50a 100644 --- a/src/juce_appframework/audio/processors/juce_AudioProcessor.cpp +++ b/src/juce_appframework/audio/processors/juce_AudioProcessor.cpp @@ -192,6 +192,11 @@ bool AudioProcessor::isParameterAutomatable (int /*index*/) const return true; } +bool AudioProcessor::isMetaParameter (int parameterIndex) const +{ + return false; +} + void AudioProcessor::suspendProcessing (const bool shouldBeSuspended) { const ScopedLock sl (callbackLock); diff --git a/src/juce_appframework/audio/processors/juce_AudioProcessor.h b/src/juce_appframework/audio/processors/juce_AudioProcessor.h index 2d59f8950f..45dd745e3d 100644 --- a/src/juce_appframework/audio/processors/juce_AudioProcessor.h +++ b/src/juce_appframework/audio/processors/juce_AudioProcessor.h @@ -403,6 +403,15 @@ public: */ virtual bool isParameterAutomatable (int parameterIndex) const; + /** Should return true if this parameter is a "meta" parameter. + + A meta-parameter is a parameter that changes other params. It is used + by some hosts (e.g. AudioUnit hosts). + + By default this returns false. + */ + virtual bool isMetaParameter (int parameterIndex) const; + /** Sends a signal to the host to tell it that the user is about to start changing this parameter.