JUCE
|
This class contains a ValueTree which is used to manage an AudioProcessor's entire state. More...
Classes | |
class | ButtonAttachment |
An object of this class maintains a connection between a Button and a parameter in an AudioProcessorValueTreeState. More... | |
class | ComboBoxAttachment |
An object of this class maintains a connection between a ComboBox and a parameter in an AudioProcessorValueTreeState. More... | |
struct | Listener |
A listener class that can be attached to an AudioProcessorValueTreeState. More... | |
class | SliderAttachment |
An object of this class maintains a connection between a Slider and a parameter in an AudioProcessorValueTreeState. More... | |
Public Member Functions | |
AudioProcessorValueTreeState (AudioProcessor &processorToConnectTo, UndoManager *undoManagerToUse) | |
Creates a state object for a given processor. More... | |
~AudioProcessorValueTreeState () | |
Destructor. More... | |
AudioProcessorParameterWithID * | createAndAddParameter (const String ¶meterID, const String ¶meterName, const String &labelText, NormalisableRange< float > valueRange, float defaultValue, std::function< String(float)> valueToTextFunction, std::function< float(const String &)> textToValueFunction, bool isMetaParameter=false, bool isAutomatableParameter=true, bool isDiscrete=false, AudioProcessorParameter::Category category=AudioProcessorParameter::genericParameter) |
Creates and returns a new parameter object for controlling a parameter with the given ID. More... | |
AudioProcessorParameterWithID * | getParameter (StringRef parameterID) const noexcept |
Returns a parameter by its ID string. More... | |
float * | getRawParameterValue (StringRef parameterID) const noexcept |
Returns a pointer to a floating point representation of a particular parameter which a realtime process can read to find out its current value. More... | |
void | addParameterListener (StringRef parameterID, Listener *listener) |
Attaches a callback to one of the parameters, which will be called when the parameter changes. More... | |
void | removeParameterListener (StringRef parameterID, Listener *listener) |
Removes a callback that was previously added with addParameterCallback(). More... | |
Value | getParameterAsValue (StringRef parameterID) const |
Returns a Value object that can be used to control a particular parameter. More... | |
NormalisableRange< float > | getParameterRange (StringRef parameterID) const noexcept |
Returns the range that was set when the given parameter was created. More... | |
ValueTree | copyState () |
Returns a copy of the state value tree. More... | |
void | replaceState (const ValueTree &newState) |
Replaces the state value tree. More... | |
Public Attributes | |
AudioProcessor & | processor |
A reference to the processor with which this state is associated. More... | |
ValueTree | state |
The state of the whole processor. More... | |
UndoManager *const | undoManager |
Provides access to the undo manager that this object is using. More... | |
This class contains a ValueTree which is used to manage an AudioProcessor's entire state.
It has its own internal class of parameter object which are linked to values within its ValueTree, and which are each identified by a string ID.
You can get access to the underlying ValueTree object via the state member variable, so you can add extra properties to it as necessary.
It also provides some utility child classes for connecting parameters directly to GUI controls like sliders.
To use: 1) Create an AudioProcessorValueTreeState, and give it some parameters using createAndAddParameter(). 2) Initialise the state member variable with a type name.
juce::AudioProcessorValueTreeState::AudioProcessorValueTreeState | ( | AudioProcessor & | processorToConnectTo, |
UndoManager * | undoManagerToUse | ||
) |
Creates a state object for a given processor.
The UndoManager is optional and can be a nullptr. After creating your state object, you should add parameters with the createAndAddParameter() method. Note that each AudioProcessorValueTreeState should be attached to only one processor, and must have the same lifetime as the processor, as they will have dependencies on each other.
juce::AudioProcessorValueTreeState::~AudioProcessorValueTreeState | ( | ) |
Destructor.
AudioProcessorParameterWithID* juce::AudioProcessorValueTreeState::createAndAddParameter | ( | const String & | parameterID, |
const String & | parameterName, | ||
const String & | labelText, | ||
NormalisableRange< float > | valueRange, | ||
float | defaultValue, | ||
std::function< String(float)> | valueToTextFunction, | ||
std::function< float(const String &)> | textToValueFunction, | ||
bool | isMetaParameter = false , |
||
bool | isAutomatableParameter = true , |
||
bool | isDiscrete = false , |
||
AudioProcessorParameter::Category | category = AudioProcessorParameter::genericParameter |
||
) |
Creates and returns a new parameter object for controlling a parameter with the given ID.
Calling this will create and add a special type of AudioProcessorParameter to the AudioProcessor to which this state is attached.
parameterID | A unique string ID for the new parameter |
parameterName | The name that the parameter will return from AudioProcessorParameter::getName() |
labelText | The label that the parameter will return from AudioProcessorParameter::getLabel() |
valueRange | A mapping that will be used to determine the value range which this parameter uses |
defaultValue | A default value for the parameter (in non-normalised units) |
valueToTextFunction | A function that will convert a non-normalised value to a string for the AudioProcessorParameter::getText() method. This can be nullptr to use the default implementation |
textToValueFunction | The inverse of valueToTextFunction |
isMetaParameter | Set this value to true if this should be a meta parameter |
isAutomatableParameter | Set this value to false if this parameter should not be automatable |
isDiscrete | Set this value to true to make this parameter take discrete values in a host. |
category | Which category the parameter should use. |
|
noexcept |
Returns a parameter by its ID string.
|
noexcept |
Returns a pointer to a floating point representation of a particular parameter which a realtime process can read to find out its current value.
void juce::AudioProcessorValueTreeState::addParameterListener | ( | StringRef | parameterID, |
Listener * | listener | ||
) |
Attaches a callback to one of the parameters, which will be called when the parameter changes.
void juce::AudioProcessorValueTreeState::removeParameterListener | ( | StringRef | parameterID, |
Listener * | listener | ||
) |
Removes a callback that was previously added with addParameterCallback().
Returns a Value object that can be used to control a particular parameter.
|
noexcept |
Returns the range that was set when the given parameter was created.
ValueTree juce::AudioProcessorValueTreeState::copyState | ( | ) |
Returns a copy of the state value tree.
The AudioProcessorValueTreeState's ValueTree is updated internally on the message thread, but there may be cases when you may want to access the state from a different thread (getStateInformation is a good example). This method flushes all pending audio parameter value updates and returns a copy of the state in a thread safe way.
Note: This method uses locks to synchronise thread access, so whilst it is thread-safe, it is not realtime-safe. Do not call this method from within your audio processing code!
void juce::AudioProcessorValueTreeState::replaceState | ( | const ValueTree & | newState | ) |
Replaces the state value tree.
The AudioProcessorValueTreeState's ValueTree is updated internally on the message thread, but there may be cases when you may want to modify the state from a different thread (setStateInformation is a good example). This method allows you to replace the state in a thread safe way.
Note: This method uses locks to synchronise thread access, so whilst it is thread-safe, it is not realtime-safe. Do not call this method from within your audio processing code!
AudioProcessor& juce::AudioProcessorValueTreeState::processor |
A reference to the processor with which this state is associated.
ValueTree juce::AudioProcessorValueTreeState::state |
The state of the whole processor.
This must be initialised after all calls to createAndAddParameter(). You can replace this with your own ValueTree object, and can add properties and children to the tree. This class will automatically add children for each of the parameter objects that are created by createAndAddParameter().
UndoManager* const juce::AudioProcessorValueTreeState::undoManager |
Provides access to the undo manager that this object is using.