LMMS
Loading...
Searching...
No Matches
juce_AudioPluginInstance.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29// MSVC does not like it if you override a deprecated method even if you
30// keep the deprecation attribute. Other compilers are more forgiving.
32
33//==============================================================================
49{
50public:
51 //==============================================================================
57 ~AudioPluginInstance() override = default;
58
59 //==============================================================================
61 virtual void fillInPluginDescription (PluginDescription&) const = 0;
62
67
77 virtual void getExtensions (ExtensionsVisitor&) const;
78
80
85 void addHostedParameter (std::unique_ptr<HostedParameter>);
86
94 void addHostedParameterGroup (std::unique_ptr<AudioProcessorParameterGroup>);
95
104
110 HostedParameter* getHostedParameter (int index) const;
111
112 #ifndef DOXYGEN
119 [[deprecated ("Use the new typesafe visitor-based interface rather than this function.")]]
120 virtual void* getPlatformSpecificData();
121
122 // Rather than using these methods you should call the corresponding methods
123 // on the AudioProcessorParameter objects returned from getParameters().
124 // See the implementations of the methods below for some examples of how to
125 // do this.
126 //
127 // In addition to being marked as deprecated these methods will assert on
128 // the first call.
129 [[deprecated]] String getParameterID (int index) override;
130 [[deprecated]] float getParameter (int parameterIndex) override;
131 [[deprecated]] void setParameter (int parameterIndex, float newValue) override;
132 [[deprecated]] const String getParameterName (int parameterIndex) override;
133 [[deprecated]] String getParameterName (int parameterIndex, int maximumStringLength) override;
134 [[deprecated]] const String getParameterText (int parameterIndex) override;
135 [[deprecated]] String getParameterText (int parameterIndex, int maximumStringLength) override;
136 [[deprecated]] int getParameterNumSteps (int parameterIndex) override;
137 [[deprecated]] bool isParameterDiscrete (int parameterIndex) const override;
138 [[deprecated]] bool isParameterAutomatable (int parameterIndex) const override;
139 [[deprecated]] float getParameterDefaultValue (int parameterIndex) override;
140 [[deprecated]] String getParameterLabel (int parameterIndex) const override;
141 [[deprecated]] bool isParameterOrientationInverted (int parameterIndex) const override;
142 [[deprecated]] bool isMetaParameter (int parameterIndex) const override;
143 [[deprecated]] AudioProcessorParameter::Category getParameterCategory (int parameterIndex) const override;
144 #endif
145
146protected:
147 //==============================================================================
150 {
151 public:
152 Parameter();
153
154 String getText (float value, int maximumStringLength) const override;
155 float getValueForText (const String& text) const override;
156
157 private:
159 };
160
162 AudioPluginInstance (const BusesProperties& ioLayouts) : AudioProcessor (ioLayouts) {}
163 template <size_t numLayouts>
164 AudioPluginInstance (const short channelLayoutList[numLayouts][2]) : AudioProcessor (channelLayoutList) {}
165
166private:
167 // It's not safe to add a plain AudioProcessorParameter to an AudioPluginInstance.
168 // Instead, all parameters must be HostedParameters.
172
173 void assertOnceOnDeprecatedMethodUse() const noexcept;
174
176
178};
179
181
182} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
float getParameter(int parameterIndex) override
Definition juce_AudioPluginInstance.cpp:56
virtual void * getPlatformSpecificData()
Definition juce_AudioPluginInstance.cpp:36
HostedAudioProcessorParameter HostedParameter
Definition juce_AudioPluginInstance.h:79
const String getParameterText(int parameterIndex) override
Definition juce_AudioPluginInstance.cpp:94
bool isParameterDiscrete(int parameterIndex) const override
Definition juce_AudioPluginInstance.cpp:134
int getParameterNumSteps(int parameterIndex) override
Definition juce_AudioPluginInstance.cpp:124
bool isParameterAutomatable(int parameterIndex) const override
Definition juce_AudioPluginInstance.cpp:144
AudioPluginInstance(const short channelLayoutList[numLayouts][2])
Definition juce_AudioPluginInstance.h:164
PluginDescription getPluginDescription() const
Definition juce_AudioPluginInstance.cpp:29
~AudioPluginInstance() override=default
float getParameterDefaultValue(int parameterIndex) override
Definition juce_AudioPluginInstance.cpp:114
virtual void getExtensions(ExtensionsVisitor &) const
Definition juce_AudioPluginInstance.cpp:38
virtual void fillInPluginDescription(PluginDescription &) const =0
void addHostedParameterGroup(std::unique_ptr< AudioProcessorParameterGroup >)
Definition juce_AudioPluginInstance.cpp:250
void addHostedParameter(std::unique_ptr< HostedParameter >)
Definition juce_AudioPluginInstance.cpp:245
static bool deprecationAssertiontriggered
Definition juce_AudioPluginInstance.h:175
String getParameterID(int index) override
Definition juce_AudioPluginInstance.cpp:40
AudioProcessorParameter::Category getParameterCategory(int parameterIndex) const override
Definition juce_AudioPluginInstance.cpp:184
void setHostedParameterTree(AudioProcessorParameterGroup)
Definition juce_AudioPluginInstance.cpp:264
bool isParameterOrientationInverted(int parameterIndex) const override
Definition juce_AudioPluginInstance.cpp:164
String getParameterLabel(int parameterIndex) const override
Definition juce_AudioPluginInstance.cpp:154
HostedParameter * getHostedParameter(int index) const
Definition juce_AudioPluginInstance.cpp:278
const String getParameterName(int parameterIndex) override
Definition juce_AudioPluginInstance.cpp:74
bool isMetaParameter(int parameterIndex) const override
Definition juce_AudioPluginInstance.cpp:174
void setParameter(int parameterIndex, float newValue) override
Definition juce_AudioPluginInstance.cpp:66
AudioPluginInstance(const BusesProperties &ioLayouts)
Definition juce_AudioPluginInstance.h:162
void setParameterTree(AudioProcessorParameterGroup &&newTree)
Definition juce_AudioProcessor.cpp:549
void addParameter(AudioProcessorParameter *)
Definition juce_AudioProcessor.cpp:517
void addParameterGroup(std::unique_ptr< AudioProcessorParameterGroup >)
Definition juce_AudioProcessor.cpp:529
AudioProcessor()
Definition juce_AudioProcessor.cpp:36
Definition juce_AudioProcessorParameterGroup.h:42
Category
Definition juce_AudioProcessorParameter.h:231
Definition juce_PluginDescription.h:43
Definition juce_StringArray.h:35
Definition juce_String.h:53
static PuglViewHint int value
Definition pugl.h:1708
#define JUCE_BEGIN_IGNORE_WARNINGS_MSVC(warnings)
Definition juce_CompilerWarnings.h:198
#define JUCE_END_IGNORE_WARNINGS_MSVC
Definition juce_CompilerWarnings.h:199
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
Parameter()
Definition juce_AudioPluginInstance.cpp:213
float getValueForText(const String &text) const override
Definition juce_AudioPluginInstance.cpp:227
String getText(float value, int maximumStringLength) const override
Definition juce_AudioPluginInstance.cpp:219
const StringArray onStrings
Definition juce_AudioPluginInstance.h:158
const StringArray offStrings
Definition juce_AudioPluginInstance.h:158
Definition juce_AudioProcessor.h:1361
Definition juce_ExtensionsVisitor.h:90
Definition juce_HostedAudioProcessorParameter.h:36
const char * text
Definition swell-functions.h:167
#define const
Definition zconf.h:137