1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-22 01:34:21 +00:00

HostedAudioProcessorParameter: Extract from AudioPluginInstance

This commit is contained in:
reuk 2021-10-13 18:11:29 +01:00
parent d5e9793cb1
commit b5064f361f
No known key found for this signature in database
GPG key ID: 9ADCD339CFC98A11
4 changed files with 55 additions and 18 deletions

View file

@ -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"

View file

@ -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.

View file

@ -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

View file

@ -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)
};