4 std::function<
void(
float)> onChangeFunction)
5 : parameter(parameterToListenTo), onChange(std::move(onChangeFunction))
7 jassert(
onChange !=
nullptr && parameterToListenTo !=
nullptr);
10 parameterPtr->addListener(
this);
16 if (
auto parameterPtr = parameter.lock())
18 parameterPtr->removeListener(
this);
26 if (
auto parameterPtr = parameter.lock())
28 onChange(parameterPtr->convertFrom0to1(newValue));
34 std::function<
void(
float)> onChangeFunction)
35 : parameter(parameterToListenTo), onChange(std::move(onChangeFunction))
37 jassert(
onChange !=
nullptr && parameterToListenTo !=
nullptr);
40 parameterPtr->addListener(
this);
46 if (
auto parameterPtr = parameter.lock())
48 parameterPtr->removeListener(
this);
50 masterReference.clear();
57 if (MessageManager::getInstance()->isThisTheMessageThread())
59 cancelPendingUpdate();
70 WeakReference<KParameter::AsyncListenerObject> kParamListener(
this);
71 if (onChange !=
nullptr && kParamListener)
73 if (
auto parameterPtr = parameter.lock())
75 onChange(parameterPtr->convertFrom0to1(lastValue));
81 const NormalisableRange<float>& normalisableRange,
float defaultValue,
82 const String& parameterLabel,
83 std::function<String(
float value,
int maximumStringLength)> stringFromValue,
84 std::function<
float(
const String& text)> valueFromString)
85 : RangedAudioParameter(parameterID, parameterName, parameterLabel, AudioProcessorParameter::genericParameter),
92 auto numDecimalPlacesToDisplay = [
this] {
93 int numDecimalPlaces = 7;
96 if (approximatelyEqual(std::abs(
m_range.interval - std::floor(
m_range.interval)), 0.0f))
99 auto v = std::abs(roundToInt(
m_range.interval * pow(10, numDecimalPlaces)));
100 while ((v % 10) == 0 && numDecimalPlaces > 0)
107 return numDecimalPlaces;
111 String asText(v, numDecimalPlacesToDisplay);
112 return length > 0 ? asText.substring(0, length) : asText;
123 setValueNotifyingHost(newValue);
130 if (std::isnan(newValue) ==
false)
132 auto normalised = convertTo0to1(newValue);
136 setValueNotifyingHost(normalised);
148 jassert(p !=
nullptr);
154 p->addListener(
this);
155 p->setValueNotifyingHost(
getValue());
188 m_value = convertFrom0to1(newValue);
A subclass of RangedAudioParameter that can act as an alias for another audio parameter,...
Definition GenericParameter.h:15
void link(RangedAudioParameter *paramToAttach)
Definition GenericParameter.cpp:16
void unlink()
Definition GenericParameter.cpp:18
GenericParameter * m_attachedParameter
Definition KParameter.h:148
GenericParameter * getAttachedParameter()
Definition KParameter.cpp:170
std::atomic< float > m_value
Definition KParameter.h:144
std::function< String(float, int)> m_stringFromValueFunction
Definition KParameter.h:150
float getValueForText(const String &text) const override
Definition KParameter.cpp:198
void parameterValueChanged(int, float newValue) override
Definition KParameter.cpp:120
void setValue(float newValue) override
Definition KParameter.cpp:185
float get() const
Definition KParameter.cpp:126
KParameter(const String ¶meterID, const String ¶meterName, const NormalisableRange< float > &normalisableRange, float defaultValue, const String ¶meterLabel=String(), std::function< String(float value, int maximumStringLength)> stringFromValue=nullptr, std::function< float(const String &text)> valueFromString=nullptr)
Definition KParameter.cpp:80
std::atomic< float > m_normalisedValue
Definition KParameter.h:145
void attach(GenericParameter *p)
Definition KParameter.cpp:146
float getDefaultValue() const override
Definition KParameter.cpp:191
void detach()
Definition KParameter.cpp:160
float getValue() const override
Definition KParameter.cpp:181
NormalisableRange< float > m_range
Definition KParameter.h:143
void notifyListeners()
Definition KParameter.cpp:144
void set(float newValue)
Definition KParameter.cpp:128
String getText(float value, int length) const override
Definition KParameter.cpp:193
bool isOn() const
Definition KParameter.cpp:183
std::function< float(const String &)> m_valueFromStringFunction
Definition KParameter.h:151
const NormalisableRange< float > & getNormalisableRange() const override
Definition KParameter.cpp:179
const float m_defaultValue
Definition KParameter.h:146
Definition AirAbsorptionFilter.cpp:2
~AsyncListenerObject() override
Definition KParameter.cpp:44
AsyncListenerObject(std::shared_ptr< KParameter > parameterToListenTo, std::function< void(float)> onChangeFunction)
Definition KParameter.cpp:33
const std::function< void(float)> onChange
Definition KParameter.h:78
std::weak_ptr< KParameter > const parameter
Definition KParameter.h:77
void parameterValueChanged(int, float newValue) override
Definition KParameter.cpp:53
void handleAsyncUpdate() override
Definition KParameter.cpp:68
std::weak_ptr< KParameter > const parameter
Definition KParameter.h:36
const std::function< void(float)> onChange
Definition KParameter.h:47
void parameterValueChanged(int, float newValue) override
Definition KParameter.cpp:22
~AudioListenerObject() override
Definition KParameter.cpp:14
AudioListenerObject(std::shared_ptr< KParameter > parameterToListenTo, std::function< void(float)> onChangeFunction)
Definition KParameter.cpp:3