JUCE  v5.4.1-191-g0ab5e696f
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce::AudioParameterInt Class Reference

Provides a class of AudioProcessorParameter that can be used as an integer value with a given range. More...

#include <juce_AudioParameterInt.h>

Inheritance diagram for juce::AudioParameterInt:
Collaboration diagram for juce::AudioParameterInt:

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

 AudioParameterInt (const String &parameterID, const String &name, int minValue, int maxValue, int defaultValue, const String &label=String(), std::function< String(int value, int maximumStringLength)> stringFromInt=nullptr, std::function< int(const String &text)> intFromString=nullptr)
 Creates a AudioParameterInt with the specified parameters. More...
 
 ~AudioParameterInt () 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...
 
int get () const noexcept
 Returns the parameter's current value as an integer. More...
 
virtual StringArray getAllValueStrings () const
 Returns the set of strings which represent the possible states a parameter can be in. More...
 
virtual String getCurrentValueAsText () const
 Returns the current value of the parameter as a String. 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...
 
Range< intgetRange () const noexcept
 Returns the parameter's range. 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 isDiscrete () const
 Returns whether the parameter uses discrete values, based on the result of getNumSteps, or allows the host to select values continuously. 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 parameter's current value as an integer. More...
 
AudioParameterIntoperator= (int newValue)
 Changes the parameter's current value to a new integer. 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 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...
 
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 &)> intFromStringFunction
 
const NormalisableRange< floatrange
 
std::function< String(int, int)> stringFromIntFunction
 
float value
 

Detailed Description

Provides a class of AudioProcessorParameter that can be used as an integer value with a given range.

See also
AudioParameterFloat, AudioParameterBool, AudioParameterChoice

{Audio}

Member Enumeration Documentation

◆ Category

Enumerator
genericParameter 
inputGain 

If your parameter is not a meter then you should use this category.

outputGain 

Currently not used.

inputMeter 

The following categories tell the host that this parameter is a meter level value and therefore read-only.

Most hosts will display these type of parameters as a meter in the generic view of your plug-in. Pro-Tools will also show the meter in the mixer view.

outputMeter 
compressorLimiterGainReductionMeter 
expanderGateGainReductionMeter 
analysisMeter 
otherMeter 

Constructor & Destructor Documentation

◆ AudioParameterInt()

juce::AudioParameterInt::AudioParameterInt ( const String parameterID,
const String name,
int  minValue,
int  maxValue,
int  defaultValue,
const String label = String(),
std::function< String(int value, int maximumStringLength)>  stringFromInt = nullptr,
std::function< int(const String &text)>  intFromString = nullptr 
)

Creates a AudioParameterInt with the specified parameters.

Parameters
parameterIDThe parameter ID to use
nameThe parameter name to use
minValueThe minimum parameter value
maxValueThe maximum parameter value
defaultValueThe default value
labelAn optional label for the parameter's value
stringFromIntAn optional lambda function that converts a int value to a string with a maximum length. This may be used by hosts to display the parameter's value.
intFromStringAn optional lambda function that parses a string and converts it into an int. Some hosts use this to allow users to type in parameter values.

◆ ~AudioParameterInt()

juce::AudioParameterInt::~AudioParameterInt ( )
override

Destructor.

Member Function Documentation

◆ addListener()

void juce::AudioProcessorParameter::addListener ( Listener newListener)
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.

See also
removeListener

◆ beginChangeGesture()

void juce::AudioProcessorParameter::beginChangeGesture ( )
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().

◆ convertFrom0to1()

float juce::RangedAudioParameter::convertFrom0to1 ( float  v) const
inlinenoexceptinherited

Denormalises and snaps a value based on the normalisable range.

References juce::jlimit().

◆ convertTo0to1()

float juce::RangedAudioParameter::convertTo0to1 ( float  v) const
inlinenoexceptinherited

Normalises and snaps a value based on the normalisable range.

◆ endChangeGesture()

void juce::AudioProcessorParameter::endChangeGesture ( )
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().

◆ get()

int juce::AudioParameterInt::get ( ) const
inlinenoexcept

Returns the parameter's current value as an integer.

References juce::roundToInt().

◆ getAllValueStrings()

virtual StringArray juce::AudioProcessorParameter::getAllValueStrings ( ) const
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.

◆ getCurrentValueAsText()

virtual String juce::AudioProcessorParameter::getCurrentValueAsText ( ) const
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.

◆ getDefaultValue()

float juce::AudioParameterInt::getDefaultValue ( ) const
overrideprivatevirtual

This should return the default value for this parameter.

Implements juce::AudioProcessorParameter.

◆ getNormalisableRange()

const NormalisableRange<float>& juce::AudioParameterInt::getNormalisableRange ( ) const
inlineoverridevirtual

Returns the range of values that the parameter can take.

Implements juce::RangedAudioParameter.

◆ getNumSteps()

int juce::AudioParameterInt::getNumSteps ( ) const
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.

See also
isDiscrete

Reimplemented from juce::AudioProcessorParameter.

◆ getParameterIndex()

int juce::AudioProcessorParameter::getParameterIndex ( ) const
inlinenoexceptinherited

Returns the index of this parameter in its parent processor's parameter list.

◆ getRange()

Range<int> juce::AudioParameterInt::getRange ( ) const
inlinenoexcept

Returns the parameter's range.

References int(), and juce::Range< ValueType >::start.

◆ getText()

String juce::AudioParameterInt::getText ( float  normalisedValue,
int   
) const
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.

◆ getValue()

float juce::AudioParameterInt::getValue ( ) const
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.

◆ getValueForText()

float juce::AudioParameterInt::getValueForText ( const String text) const
overrideprivatevirtual

Should parse a string and return the appropriate value for it.

Implements juce::AudioProcessorParameter.

◆ isAutomatable()

virtual bool juce::AudioProcessorParameter::isAutomatable ( ) const
virtualinherited

Returns true if the host can automate this parameter.

By default, this returns true.

Reimplemented in juce::AudioProcessorValueTreeState::Parameter.

◆ isBoolean()

virtual bool juce::AudioProcessorParameter::isBoolean ( ) const
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.

See also
isDiscrete getNumSteps

Reimplemented in juce::AudioProcessorValueTreeState::Parameter, and juce::AudioParameterBool.

◆ isDiscrete()

virtual bool juce::AudioProcessorParameter::isDiscrete ( ) const
virtualinherited

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.

See also
getNumSteps

Reimplemented in juce::AudioProcessorValueTreeState::Parameter, juce::AudioParameterChoice, and juce::AudioParameterBool.

◆ isMetaParameter()

virtual bool juce::AudioProcessorParameter::isMetaParameter ( ) const
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.

◆ isOrientationInverted()

virtual bool juce::AudioProcessorParameter::isOrientationInverted ( ) const
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).

◆ operator int()

juce::AudioParameterInt::operator int ( ) const
inlinenoexcept

Returns the parameter's current value as an integer.

◆ operator=()

AudioParameterInt& juce::AudioParameterInt::operator= ( int  newValue)

Changes the parameter's current value to a new integer.

The value passed in will be snapped to the permitted range before being used.

◆ removeListener()

void juce::AudioProcessorParameter::removeListener ( Listener listener)
inherited

Removes a previously registered parameter listener.

See also
addListener

◆ sendValueChangedMessageToListeners()

void juce::AudioProcessorParameter::sendValueChangedMessageToListeners ( float  newValue)
inherited

◆ setValue()

void juce::AudioParameterInt::setValue ( float  newValue)
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.

◆ setValueNotifyingHost()

void juce::AudioProcessorParameter::setValueNotifyingHost ( float  newValue)
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.

◆ valueChanged()

virtual void juce::AudioParameterInt::valueChanged ( int  newValue)
protectedvirtual

Override this method if you are interested in receiving callbacks when the parameter value changes.

Member Data Documentation

◆ category

const Category juce::AudioProcessorParameterWithID::category
inherited

Provides access to the parameter's category.

◆ defaultValue

const float juce::AudioParameterInt::defaultValue
private

◆ intFromStringFunction

std::function<int (const String&)> juce::AudioParameterInt::intFromStringFunction
private

◆ label

const String juce::AudioProcessorParameterWithID::label
inherited

Provides access to the parameter's label.

◆ name

const String juce::AudioProcessorParameterWithID::name
inherited

Provides access to the parameter's name.

◆ paramID

const String juce::AudioProcessorParameterWithID::paramID
inherited

Provides access to the parameter's ID string.

◆ range

const NormalisableRange<float> juce::AudioParameterInt::range
private

◆ stringFromIntFunction

std::function<String (int, int)> juce::AudioParameterInt::stringFromIntFunction
private

◆ value

float juce::AudioParameterInt::value
private

The documentation for this class was generated from the following file: