| @@ -120,6 +120,7 @@ | |||||
| #include "utilities/juce_VST3ClientExtensions.h" | #include "utilities/juce_VST3ClientExtensions.h" | ||||
| #include "utilities/juce_ExtensionsVisitor.h" | #include "utilities/juce_ExtensionsVisitor.h" | ||||
| #include "processors/juce_AudioProcessorParameter.h" | #include "processors/juce_AudioProcessorParameter.h" | ||||
| #include "processors/juce_HostedAudioProcessorParameter.h" | |||||
| #include "processors/juce_AudioProcessorEditorHostContext.h" | #include "processors/juce_AudioProcessorEditorHostContext.h" | ||||
| #include "processors/juce_AudioProcessorEditor.h" | #include "processors/juce_AudioProcessorEditor.h" | ||||
| #include "processors/juce_AudioProcessorListener.h" | #include "processors/juce_AudioProcessorListener.h" | ||||
| @@ -76,23 +76,7 @@ public: | |||||
| */ | */ | ||||
| virtual void getExtensions (ExtensionsVisitor&) const; | 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. | /** Adds a parameter to this instance. | ||||
| @@ -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 | |||||
| @@ -33,7 +33,7 @@ namespace juce | |||||
| @tags{Audio} | @tags{Audio} | ||||
| */ | */ | ||||
| class JUCE_API AudioProcessorParameterWithID : public AudioProcessorParameter | |||||
| class JUCE_API AudioProcessorParameterWithID : public HostedAudioProcessorParameter | |||||
| { | { | ||||
| public: | public: | ||||
| /** The creation of this object requires providing a name and ID which will be | /** The creation of this object requires providing a name and ID which will be | ||||
| @@ -63,6 +63,8 @@ public: | |||||
| String getLabel() const override; | String getLabel() const override; | ||||
| Category getCategory() const override; | Category getCategory() const override; | ||||
| String getParameterID() const override { return paramID; } | |||||
| private: | private: | ||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioProcessorParameterWithID) | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioProcessorParameterWithID) | ||||
| }; | }; | ||||