Provides a class of AudioProcessorParameter that can be used to select an indexed, named choice from a list. More...
#include <juce_AudioParameterChoice.h>
Public Types | |
enum | Category { genericParameter = (0 << 16) | 0, inputGain = (1 << 16) | 0, outputGain = (1 << 16) | 1, inputMeter = (2 << 16) | 0, outputMeter = (2 << 16) | 1, compressorLimiterGainReductionMeter = (2 << 16) | 2, expanderGateGainReductionMeter = (2 << 16) | 3, analysisMeter = (2 << 16) | 4, otherMeter = (2 << 16) | 5 } |
Public Member Functions | |
AudioParameterChoice (const String ¶meterID, const String &name, const StringArray &choices, int defaultItemIndex, const String &label=String(), std::function< String(int index, int maximumStringLength)> stringFromIndex=nullptr, std::function< int(const String &text)> indexFromString=nullptr) | |
Creates a AudioParameterChoice with the specified parameters. More... | |
~AudioParameterChoice () override | |
Destructor. More... | |
void | addListener (Listener *newListener) |
Registers a listener to receive events when the parameter's state changes. More... | |
void | beginChangeGesture () |
Sends a signal to the host to tell it that the user is about to start changing this parameter. More... | |
float | convertFrom0to1 (float v) const noexcept |
Denormalises and snaps a value based on the normalisable range. More... | |
float | convertTo0to1 (float v) const noexcept |
Normalises and snaps a value based on the normalisable range. More... | |
void | endChangeGesture () |
Tells the host that the user has finished changing this parameter. More... | |
virtual StringArray | getAllValueStrings () const |
Returns the set of strings which represent the possible states a parameter can be in. More... | |
String | getCurrentChoiceName () const noexcept |
Returns the name of the currently selected item. More... | |
virtual String | getCurrentValueAsText () const |
Returns the current value of the parameter as a String. More... | |
int | getIndex () const noexcept |
Returns the current index of the selected item. More... | |
const NormalisableRange< float > & | getNormalisableRange () const override |
Returns the range of values that the parameter can take. More... | |
int | getParameterIndex () const noexcept |
Returns the index of this parameter in its parent processor's parameter list. More... | |
virtual bool | isAutomatable () const |
Returns true if the host can automate this parameter. More... | |
virtual bool | isBoolean () const |
Returns whether the parameter represents a boolean switch, typically with "On" and "Off" states. More... | |
virtual bool | isMetaParameter () const |
Should return true if this parameter is a "meta" parameter. More... | |
virtual bool | isOrientationInverted () const |
This can be overridden to tell the host that this parameter operates in the reverse direction. More... | |
operator int () const noexcept | |
Returns the current index of the selected item. More... | |
operator String () const noexcept | |
Returns the name of the currently selected item. More... | |
AudioParameterChoice & | operator= (int newValue) |
Changes the selected item to a new index. More... | |
void | removeListener (Listener *listener) |
Removes a previously registered parameter listener. More... | |
void | sendValueChangedMessageToListeners (float newValue) |
void | setValueNotifyingHost (float newValue) |
A processor should call this when it needs to change one of its parameters. More... | |
Public Attributes | |
const Category | category |
Provides access to the parameter's category. More... | |
const StringArray | choices |
Provides access to the list of choices that this parameter is working with. More... | |
const String | label |
Provides access to the parameter's label. More... | |
const String | name |
Provides access to the parameter's name. More... | |
const String | paramID |
Provides access to the parameter's ID string. More... | |
Protected Member Functions | |
virtual void | valueChanged (int newValue) |
Override this method if you are interested in receiving callbacks when the parameter value changes. More... | |
Private Member Functions | |
float | getDefaultValue () const override |
This should return the default value for this parameter. More... | |
int | getNumSteps () const override |
Returns the number of steps that this parameter's range should be quantised into. More... | |
String | getText (float, int) const override |
Returns a textual version of the supplied normalised parameter value. More... | |
float | getValue () const override |
Called by the host to find out the value of this parameter. More... | |
float | getValueForText (const String &) const override |
Should parse a string and return the appropriate value for it. More... | |
bool | isDiscrete () const override |
Returns whether the parameter uses discrete values, based on the result of getNumSteps, or allows the host to select values continuously. More... | |
void | setValue (float newValue) override |
The host will call this method to change the value of a parameter. More... | |
Private Attributes | |
const float | defaultValue |
std::function< int(const String &)> | indexFromStringFunction |
const NormalisableRange< float > | range |
std::function< String(int, int)> | stringFromIndexFunction |
float | value |
Provides a class of AudioProcessorParameter that can be used to select an indexed, named choice from a list.
{Audio}
|
inherited |
juce::AudioParameterChoice::AudioParameterChoice | ( | const String & | parameterID, |
const String & | name, | ||
const StringArray & | choices, | ||
int | defaultItemIndex, | ||
const String & | label = String() , |
||
std::function< String(int index, int maximumStringLength)> | stringFromIndex = nullptr , |
||
std::function< int(const String &text)> | indexFromString = nullptr |
||
) |
Creates a AudioParameterChoice with the specified parameters.
parameterID | The parameter ID to use |
name | The parameter name to use |
choices | The set of choices to use |
defaultItemIndex | The index of the default choice |
label | An optional label for the parameter's value |
stringFromIndex | An optional lambda function that converts a choice index to a string with a maximum length. This may be used by hosts to display the parameter's value. |
indexFromString | An optional lambda function that parses a string and converts it into a choice index. Some hosts use this to allow users to type in parameter values. |
|
override |
Destructor.
|
inherited |
Registers a listener to receive events when the parameter's state changes.
If the listener is already registered, this will not register it again.
|
inherited |
Sends a signal to the host to tell it that the user is about to start changing this parameter.
This allows the host to know when a parameter is actively being held by the user, and it may use this information to help it record automation. If you call this, it must be matched by a later call to endChangeGesture().
Denormalises and snaps a value based on the normalisable range.
References juce::jlimit().
Normalises and snaps a value based on the normalisable range.
|
inherited |
Tells the host that the user has finished changing this parameter.
This allows the host to know when a parameter is actively being held by the user, and it may use this information to help it record automation. A call to this method must follow a call to beginChangeGesture().
|
virtualinherited |
Returns the set of strings which represent the possible states a parameter can be in.
If you are hosting a plug-in you can use the result of this function to populate a ComboBox listing the allowed values.
If you are implementing a plug-in then you do not need to override this.
|
inlinenoexcept |
Returns the name of the currently selected item.
|
virtualinherited |
Returns the current value of the parameter as a String.
This function can be called when you are hosting plug-ins to get a more specialsed textual represenation of the current value from the plug-in, for example "On" rather than "1.0".
If you are implementing a plug-in then you should ignore this function and instead override getText.
|
overrideprivatevirtual |
This should return the default value for this parameter.
Implements juce::AudioProcessorParameter.
|
inlinenoexcept |
Returns the current index of the selected item.
References juce::roundToInt().
|
inlineoverridevirtual |
Returns the range of values that the parameter can take.
Implements juce::RangedAudioParameter.
|
overrideprivatevirtual |
Returns the number of steps that this parameter's range should be quantised into.
If you want a continuous range of values, don't override this method, and allow the default implementation to return AudioProcessor::getDefaultNumParameterSteps().
If your parameter is boolean, then you may want to make this return 2.
The value that is returned may or may not be used, depending on the host. If you want the host to display stepped automation values, rather than a continuous interpolation between successive values, you should override isDiscrete to return true.
Reimplemented from juce::AudioProcessorParameter.
|
inlinenoexceptinherited |
Returns the index of this parameter in its parent processor's parameter list.
|
overrideprivatevirtual |
Returns a textual version of the supplied normalised parameter value.
The default implementation just returns the floating point value as a string, but this could do anything you need for a custom type of value.
Reimplemented from juce::AudioProcessorParameter.
|
overrideprivatevirtual |
Called by the host to find out the value of this parameter.
Hosts will expect the value returned to be between 0 and 1.0.
This could be called quite frequently, so try to make your code efficient. It's also likely to be called by non-UI threads, so the code in here should be thread-aware.
Implements juce::AudioProcessorParameter.
|
overrideprivatevirtual |
Should parse a string and return the appropriate value for it.
Implements juce::AudioProcessorParameter.
|
virtualinherited |
Returns true if the host can automate this parameter.
By default, this returns true.
Reimplemented in juce::AudioProcessorValueTreeState::Parameter.
|
virtualinherited |
Returns whether the parameter represents a boolean switch, typically with "On" and "Off" states.
This information may or may not be used, depending on the host. If you want the host to display a switch, rather than a two item dropdown menu, override this method to return true. You also need to override isDiscrete() to return true
and getNumSteps() to return 2
.
Reimplemented in juce::AudioProcessorValueTreeState::Parameter, and juce::AudioParameterBool.
|
overrideprivatevirtual |
Returns whether the parameter uses discrete values, based on the result of getNumSteps, or allows the host to select values continuously.
This information may or may not be used, depending on the host. If you want the host to display stepped automation values, rather than a continuous interpolation between successive values, override this method to return true.
Reimplemented from juce::AudioProcessorParameter.
|
virtualinherited |
Should return true if this parameter is a "meta" parameter.
A meta-parameter is a parameter that changes other params. It is used by some hosts (e.g. AudioUnit hosts). By default this returns false.
Reimplemented in juce::AudioProcessorValueTreeState::Parameter.
|
virtualinherited |
This can be overridden to tell the host that this parameter operates in the reverse direction.
(Not all plugin formats or hosts will actually use this information).
|
inlinenoexcept |
Returns the current index of the selected item.
|
inlinenoexcept |
Returns the name of the currently selected item.
AudioParameterChoice& juce::AudioParameterChoice::operator= | ( | int | newValue | ) |
Changes the selected item to a new index.
|
inherited |
Removes a previously registered parameter listener.
|
inherited |
|
overrideprivatevirtual |
The host will call this method to change the value of a parameter.
The host may call this at any time, including during the audio processing callback, so your implementation has to process this very efficiently and avoid any kind of locking.
If you want to set the value of a parameter internally, e.g. from your editor component, then don't call this directly - instead, use the setValueNotifyingHost() method, which will also send a message to the host telling it about the change. If the message isn't sent, the host won't be able to automate your parameters properly.
The value passed will be between 0 and 1.0.
Implements juce::AudioProcessorParameter.
|
inherited |
A processor should call this when it needs to change one of its parameters.
This could happen when the editor or some other internal operation changes a parameter. This method will call the setValue() method to change the value, and will then send a message to the host telling it about the change.
Note that to make sure the host correctly handles automation, you should call the beginChangeGesture() and endChangeGesture() methods to tell the host when the user has started and stopped changing the parameter.
|
protectedvirtual |
Override this method if you are interested in receiving callbacks when the parameter value changes.
|
inherited |
Provides access to the parameter's category.
const StringArray juce::AudioParameterChoice::choices |
Provides access to the list of choices that this parameter is working with.
|
private |
|
private |
|
inherited |
Provides access to the parameter's label.
|
inherited |
Provides access to the parameter's name.
|
inherited |
Provides access to the parameter's ID string.
|
private |
|
private |
|
private |