LMMS
Loading...
Searching...
No Matches
juce_AudioParameterChoice.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
33class AudioParameterChoiceAttributes : public RangedAudioParameterAttributes<AudioParameterChoiceAttributes, int> {};
34
35//==============================================================================
45{
46public:
64 AudioParameterChoice (const ParameterID& parameterID,
65 const String& parameterName,
66 const StringArray& choices,
67 int defaultItemIndex,
68 const AudioParameterChoiceAttributes& attributes = {});
69
84 [[deprecated ("Prefer the signature taking an Attributes argument")]]
85 AudioParameterChoice (const ParameterID& parameterID,
86 const String& parameterName,
87 const StringArray& choicesToUse,
88 int defaultItemIndex,
89 const String& parameterLabel,
90 std::function<String (int index, int maximumStringLength)> stringFromIndex = nullptr,
91 std::function<int (const String& text)> indexFromString = nullptr)
92 : AudioParameterChoice (parameterID,
93 parameterName,
94 choicesToUse,
95 defaultItemIndex,
96 AudioParameterChoiceAttributes().withLabel (parameterLabel)
97 .withStringFromValueFunction (std::move (stringFromIndex))
98 .withValueFromStringFunction (std::move (indexFromString)))
99 {
100 }
101
103 ~AudioParameterChoice() override;
104
106 int getIndex() const noexcept { return roundToInt (value.load()); }
107
109 operator int() const noexcept { return getIndex(); }
110
113
115 operator String() const noexcept { return getCurrentChoiceName(); }
116
118 AudioParameterChoice& operator= (int newValue);
119
121 const NormalisableRange<float>& getNormalisableRange() const override { return range; }
122
125
126protected:
130 virtual void valueChanged (int newValue);
131
132private:
133 //==============================================================================
134 float getValue() const override;
135 void setValue (float newValue) override;
136 float getDefaultValue() const override;
137 int getNumSteps() const override;
138 bool isDiscrete() const override;
139 String getText (float, int) const override;
140 float getValueForText (const String&) const override;
141
143 std::atomic<float> value;
144 const float defaultValue;
145 std::function<String (int, int)> stringFromIndexFunction;
146 std::function<int (const String&)> indexFromStringFunction;
147
149};
150
151} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_AudioParameterChoice.h:33
Definition juce_AudioParameterChoice.h:45
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
const NormalisableRange< float > & getNormalisableRange() const override
Definition juce_AudioParameterChoice.h:121
float getValue() const override
Definition juce_AudioParameterChoice.cpp:65
String getCurrentChoiceName() const noexcept
Definition juce_AudioParameterChoice.h:112
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 &parameterID, const String &parameterName, const StringArray &choices, int defaultItemIndex, const AudioParameterChoiceAttributes &attributes={})
Definition juce_AudioParameterChoice.cpp:29
std::atomic< float > value
Definition juce_AudioParameterChoice.h:143
int getIndex() const noexcept
Definition juce_AudioParameterChoice.h:106
int getNumSteps() const override
Definition juce_AudioParameterChoice.cpp:68
AudioParameterChoice(const ParameterID &parameterID, const String &parameterName, const StringArray &choicesToUse, int defaultItemIndex, const String &parameterLabel, std::function< String(int index, int maximumStringLength)> stringFromIndex=nullptr, std::function< int(const String &text)> indexFromString=nullptr)
Definition juce_AudioParameterChoice.h:85
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
Definition juce_NormalisableRange.h:40
Definition juce_AudioProcessorParameterWithID.h:33
Definition juce_RangedAudioParameter.h:42
Definition juce_RangedAudioParameter.h:98
Definition juce_StringArray.h:35
Definition juce_String.h:53
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
Definition juce_Uuid.h:141
const char * text
Definition swell-functions.h:167
typedef int(UZ_EXP MsgFn)()
#define const
Definition zconf.h:137