34 :
RangedAudioParameter (idToUse, nameToUse, attributes.getAudioProcessorParameterWithIDAttributes()),
40 [] (float,
float end,
float v) {
return jlimit (0.0f, 1.0f,
v /
end); },
43 return rangeWithInterval;
46 defaultValue (convertTo0to1 ((
float) def)),
47 stringFromIndexFunction (attributes.getStringFromValueFunction() !=
nullptr
48 ? attributes.getStringFromValueFunction()
49 : [
this] (
int index,
int) { return choices [index]; }),
50 indexFromStringFunction (attributes.getValueFromStringFunction() !=
nullptr
51 ? attributes.getValueFromStringFunction()
52 : [
this] (
const String&
text) { return choices.indexOf (text); })
59 #if __cpp_lib_atomic_is_always_lock_free
60 static_assert (std::atomic<float>::is_always_lock_free,
61 "AudioParameterChoice requires a lock-free std::atomic<float>");
87struct AudioParameterChoiceTests :
public UnitTest
89 AudioParameterChoiceTests()
93 void runTest()
override
95 beginTest (
"Three options switches at the correct points");
97 AudioParameterChoice choice ({}, {}, {
"a",
"b",
"c" }, {});
99 choice.setValueNotifyingHost (0.0f);
100 expectEquals (choice.getIndex(), 0);
102 choice.setValueNotifyingHost (0.2f);
103 expectEquals (choice.getIndex(), 0);
105 choice.setValueNotifyingHost (0.3f);
106 expectEquals (choice.getIndex(), 1);
108 choice.setValueNotifyingHost (0.7f);
109 expectEquals (choice.getIndex(), 1);
111 choice.setValueNotifyingHost (0.8f);
112 expectEquals (choice.getIndex(), 2);
114 choice.setValueNotifyingHost (1.0f);
115 expectEquals (choice.getIndex(), 2);
118 beginTest (
"Out-of-bounds input");
120 AudioParameterChoice choiceParam ({}, {}, {
"a",
"b",
"c" }, {});
122 choiceParam.setValueNotifyingHost (-0.5f);
123 expectEquals (choiceParam.getIndex(), 0);
125 choiceParam.setValueNotifyingHost (1.5f);
126 expectEquals (choiceParam.getIndex(), 2);
132static AudioParameterChoiceTests audioParameterChoiceTests;
Definition juce_AudioParameterChoice.h:33
const StringArray choices
Definition juce_AudioParameterChoice.h:124
void setValue(float newValue) override
Definition juce_AudioParameterChoice.cpp:66
std::function< int(const String &)> indexFromStringFunction
Definition juce_AudioParameterChoice.h:146
float getValueForText(const String &) const override
Definition juce_AudioParameterChoice.cpp:70
std::function< String(int, int)> stringFromIndexFunction
Definition juce_AudioParameterChoice.h:145
float getValue() const override
Definition juce_AudioParameterChoice.cpp:65
bool isDiscrete() const override
Definition juce_AudioParameterChoice.cpp:69
const NormalisableRange< float > range
Definition juce_AudioParameterChoice.h:142
float getDefaultValue() const override
Definition juce_AudioParameterChoice.cpp:67
AudioParameterChoice(const ParameterID ¶meterID, const String ¶meterName, const StringArray &choices, int defaultItemIndex, const AudioParameterChoiceAttributes &attributes={})
Definition juce_AudioParameterChoice.cpp:29
std::atomic< float > value
Definition juce_AudioParameterChoice.h:143
~AudioParameterChoice() override
Definition juce_AudioParameterChoice.cpp:57
int getIndex() const noexcept
Definition juce_AudioParameterChoice.h:106
int getNumSteps() const override
Definition juce_AudioParameterChoice.cpp:68
String getText(float, int) const override
Definition juce_AudioParameterChoice.cpp:71
const float defaultValue
Definition juce_AudioParameterChoice.h:144
virtual void valueChanged(int newValue)
Definition juce_AudioParameterChoice.cpp:72
void setValueNotifyingHost(float newValue)
Definition juce_AudioProcessor.cpp:1517
Definition juce_NormalisableRange.h:40
ValueType interval
Definition juce_NormalisableRange.h:220
Definition juce_AudioProcessorParameterWithID.h:33
Definition juce_RangedAudioParameter.h:98
float convertTo0to1(float v) const noexcept
Definition juce_RangedAudioParameter.cpp:39
float convertFrom0to1(float v) const noexcept
Definition juce_RangedAudioParameter.cpp:45
Definition juce_StringArray.h:35
Definition juce_String.h:53
Definition juce_UnitTest.h:70
unsigned v[N_MAX]
Definition inflate.c:1584
static PuglViewHint int value
Definition pugl.h:1708
virtual ASIOError start()=0
Definition juce_UnitTestCategories.h:27
Definition carla_juce.cpp:31
RangedDirectoryIterator end(const RangedDirectoryIterator &)
Definition juce_RangedDirectoryIterator.h:184
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
png_uint_32 length
Definition png.c:2247
const char * text
Definition swell-functions.h:167
return c
Definition crypt.c:175