@@ -1119,7 +1119,7 @@ public: | |||
NOTE! This method will eventually be deprecated! It's recommended that you use | |||
AudioProcessorParameter::isMetaParameter() instead. | |||
*/ | |||
*/ | |||
virtual AudioProcessorParameter::Category getParameterCategory (int parameterIndex) const; | |||
/** Sends a signal to the host to tell it that the user is about to start changing this | |||
@@ -152,9 +152,10 @@ public: | |||
outputGain = (1 << 16) | 1, | |||
/** 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. */ | |||
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. | |||
*/ | |||
inputMeter = (2 << 16) | 0, | |||
outputMeter = (2 << 16) | 1, | |||
compressorLimiterGainReductionMeter = (2 << 16) | 2, | |||
@@ -33,12 +33,14 @@ struct AudioProcessorValueTreeState::Parameter : public AudioProcessorParamete | |||
NormalisableRange<float> r, float defaultVal, | |||
std::function<String (float)> valueToText, | |||
std::function<float (const String&)> textToValue, | |||
bool meta) | |||
bool meta, | |||
bool automatable) | |||
: AudioProcessorParameterWithID (parameterID, paramName, labelText), | |||
owner (s), valueToTextFunction (valueToText), textToValueFunction (textToValue), | |||
range (r), value (defaultVal), defaultValue (defaultVal), | |||
listenersNeedCalling (true), | |||
isMeta (meta) | |||
isMetaParam (meta), | |||
isAutomatableParam (automatable) | |||
{ | |||
state.addListener (this); | |||
needsUpdate.set (1); | |||
@@ -146,7 +148,8 @@ struct AudioProcessorValueTreeState::Parameter : public AudioProcessorParamete | |||
return nullptr; | |||
} | |||
bool isMetaParameter() const override { return isMeta; } | |||
bool isMetaParameter() const override { return isMetaParam; } | |||
bool isAutomatable() const override { return isAutomatableParam; } | |||
AudioProcessorValueTreeState& owner; | |||
ValueTree state; | |||
@@ -157,7 +160,7 @@ struct AudioProcessorValueTreeState::Parameter : public AudioProcessorParamete | |||
float value, defaultValue; | |||
Atomic<int> needsUpdate; | |||
bool listenersNeedCalling; | |||
bool isMeta; | |||
const bool isMetaParam, isAutomatableParam; | |||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Parameter) | |||
}; | |||
@@ -181,7 +184,8 @@ AudioProcessorParameterWithID* AudioProcessorValueTreeState::createAndAddParamet | |||
const String& labelText, NormalisableRange<float> r, | |||
float defaultVal, std::function<String (float)> valueToTextFunction, | |||
std::function<float (const String&)> textToValueFunction, | |||
bool isMetaParameter) | |||
bool isMetaParameter, | |||
bool isAutomatableParameter) | |||
{ | |||
// All parameters must be created before giving this manager a ValueTree state! | |||
jassert (! state.isValid()); | |||
@@ -191,7 +195,7 @@ AudioProcessorParameterWithID* AudioProcessorValueTreeState::createAndAddParamet | |||
Parameter* p = new Parameter (*this, paramID, paramName, labelText, r, | |||
defaultVal, valueToTextFunction, textToValueFunction, | |||
isMetaParameter); | |||
isMetaParameter, isAutomatableParameter); | |||
processor.addParameter (p); | |||
return p; | |||
} | |||
@@ -66,16 +66,18 @@ public: | |||
Calling this will create and add a special type of AudioProcessorParameter to the | |||
AudioProcessor to which this state is attached. | |||
@param parameterID A unique string ID for the new parameter | |||
@param parameterName The name that the parameter will return from AudioProcessorParameter::getName() | |||
@param labelText The label that the parameter will return from AudioProcessorParameter::getLabel() | |||
@param valueRange A mapping that will be used to determine the value range which this parameter uses | |||
@param defaultValue A default value for the parameter (in non-normalised units) | |||
@param 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 | |||
@param textToValueFunction The inverse of valueToTextFunction | |||
@param isMetaParameter Set this value to true if this should be a meta parameter | |||
@param parameterID A unique string ID for the new parameter | |||
@param parameterName The name that the parameter will return from AudioProcessorParameter::getName() | |||
@param labelText The label that the parameter will return from AudioProcessorParameter::getLabel() | |||
@param valueRange A mapping that will be used to determine the value range which this parameter uses | |||
@param defaultValue A default value for the parameter (in non-normalised units) | |||
@param 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 | |||
@param textToValueFunction The inverse of valueToTextFunction | |||
@param isMetaParameter Set this value to true if this should be a meta parameter | |||
@param isAutomatableParameter Set this value to false if this parameter should not be automatable | |||
@returns the parameter object that was created | |||
*/ | |||
AudioProcessorParameterWithID* createAndAddParameter (const String& parameterID, | |||
@@ -85,7 +87,8 @@ public: | |||
float defaultValue, | |||
std::function<String (float)> valueToTextFunction, | |||
std::function<float (const String&)> textToValueFunction, | |||
bool isMetaParameter = false); | |||
bool isMetaParameter = false, | |||
bool isAutomatableParameter = true); | |||
/** Returns a parameter by its ID string. */ | |||
AudioProcessorParameterWithID* getParameter (StringRef parameterID) const noexcept; | |||