From b5064f361f4edafd14d440d4f0aa3dbf4160ff99 Mon Sep 17 00:00:00 2001 From: reuk Date: Wed, 13 Oct 2021 18:11:29 +0100 Subject: [PATCH] HostedAudioProcessorParameter: Extract from AudioPluginInstance --- .../juce_audio_processors.h | 1 + .../processors/juce_AudioPluginInstance.h | 18 +------ .../juce_HostedAudioProcessorParameter.h | 50 +++++++++++++++++++ .../juce_AudioProcessorParameterWithID.h | 4 +- 4 files changed, 55 insertions(+), 18 deletions(-) create mode 100644 modules/juce_audio_processors/processors/juce_HostedAudioProcessorParameter.h diff --git a/modules/juce_audio_processors/juce_audio_processors.h b/modules/juce_audio_processors/juce_audio_processors.h index eafbfbfe8d..cf389ee556 100644 --- a/modules/juce_audio_processors/juce_audio_processors.h +++ b/modules/juce_audio_processors/juce_audio_processors.h @@ -120,6 +120,7 @@ #include "utilities/juce_VST3ClientExtensions.h" #include "utilities/juce_ExtensionsVisitor.h" #include "processors/juce_AudioProcessorParameter.h" +#include "processors/juce_HostedAudioProcessorParameter.h" #include "processors/juce_AudioProcessorEditorHostContext.h" #include "processors/juce_AudioProcessorEditor.h" #include "processors/juce_AudioProcessorListener.h" diff --git a/modules/juce_audio_processors/processors/juce_AudioPluginInstance.h b/modules/juce_audio_processors/processors/juce_AudioPluginInstance.h index e89efd08ce..05f8e7847e 100644 --- a/modules/juce_audio_processors/processors/juce_AudioPluginInstance.h +++ b/modules/juce_audio_processors/processors/juce_AudioPluginInstance.h @@ -76,23 +76,7 @@ public: */ virtual void getExtensions (ExtensionsVisitor&) const; - /** - A parameter with functions which are useful for plugin hosts. - */ - struct HostedParameter : public AudioProcessorParameter - { - /** Returns an ID which is unique to this parameter. - - Parameter indices are unstable across plugin versions, which means that the - parameter found at a particular index in one version of a plugin might move - to a different index in the subsequent version. - - Unlike the parameter index, the ID returned by this function should be - somewhat stable (depending on the format of the plugin), so it is more - suitable for storing/recalling automation data. - */ - virtual String getParameterID() const = 0; - }; + using HostedParameter = HostedAudioProcessorParameter; /** Adds a parameter to this instance. diff --git a/modules/juce_audio_processors/processors/juce_HostedAudioProcessorParameter.h b/modules/juce_audio_processors/processors/juce_HostedAudioProcessorParameter.h new file mode 100644 index 0000000000..2d4990af99 --- /dev/null +++ b/modules/juce_audio_processors/processors/juce_HostedAudioProcessorParameter.h @@ -0,0 +1,50 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2020 - Raw Material Software Limited + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 6 End-User License + Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020). + + End User License Agreement: www.juce.com/juce-6-licence + Privacy Policy: www.juce.com/juce-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +namespace juce +{ + +//============================================================================== +/** + A parameter with functions that are useful for plugin hosts. + + @tags{Audio} +*/ +struct HostedAudioProcessorParameter : public AudioProcessorParameter +{ + /** Returns an ID that is unique to this parameter. + + Parameter indices are unstable across plugin versions, which means that the + parameter found at a particular index in one version of a plugin might move + to a different index in the subsequent version. + + Unlike the parameter index, the ID returned by this function should be + somewhat stable (depending on the format of the plugin), so it is more + suitable for storing/recalling automation data. + */ + virtual String getParameterID() const = 0; +}; + +} // namespace juce diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h b/modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h index 9b43de7f44..6b26f61c3e 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h +++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h @@ -33,7 +33,7 @@ namespace juce @tags{Audio} */ -class JUCE_API AudioProcessorParameterWithID : public AudioProcessorParameter +class JUCE_API AudioProcessorParameterWithID : public HostedAudioProcessorParameter { public: /** The creation of this object requires providing a name and ID which will be @@ -63,6 +63,8 @@ public: String getLabel() const override; Category getCategory() const override; + String getParameterID() const override { return paramID; } + private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioProcessorParameterWithID) };