LMMS
Loading...
Searching...
No Matches
juce_RangedAudioParameter.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
40template <typename Derived, typename Value>
42{
44
45public:
47
48 using StringFromValue = std::function<String (Value, int)>;
49 using ValueFromString = std::function<Value (const String&)>;
50
52 JUCE_NODISCARD auto withStringFromValueFunction (StringFromValue x) const { return withMember (asDerived(), &Derived::stringFromValue, std::move (x)); }
53
55 JUCE_NODISCARD auto withValueFromStringFunction (ValueFromString x) const { return withMember (asDerived(), &Derived::valueFromString, std::move (x)); }
56
58 JUCE_NODISCARD auto withLabel (String x) const { return withMember (asDerived(), &Derived::attributes, attributes.withLabel (std::move (x))); }
59
61 JUCE_NODISCARD auto withCategory (Category x) const { return withMember (asDerived(), &Derived::attributes, attributes.withCategory (std::move (x))); }
62
64 JUCE_NODISCARD auto withMeta (bool x) const { return withMember (asDerived(), &Derived::attributes, attributes.withMeta (std::move (x))); }
65
67 JUCE_NODISCARD auto withAutomatable (bool x) const { return withMember (asDerived(), &Derived::attributes, attributes.withAutomatable (std::move (x))); }
68
70 JUCE_NODISCARD auto withInverted (bool x) const { return withMember (asDerived(), &Derived::attributes, attributes.withInverted (std::move (x))); }
71
74
77
80
81private:
82 auto& asDerived() const { return *static_cast<const Derived*> (this); }
83
87};
88
89//==============================================================================
98{
99public:
101
104
109 int getNumSteps() const override;
110
112 float convertTo0to1 (float v) const noexcept;
113
115 float convertFrom0to1 (float v) const noexcept;
116};
117
118} // namespace juce
Category
Definition juce_AudioProcessorParameter.h:231
Definition juce_AudioProcessorParameterWithID.h:67
AudioProcessorParameterWithID(const ParameterID &parameterID, const String &parameterName, const AudioProcessorParameterWithIDAttributes &attributes={})
Definition juce_AudioProcessorParameterWithID.cpp:29
Definition juce_NormalisableRange.h:40
Definition juce_RangedAudioParameter.h:42
std::function< Value(const String &)> ValueFromString
Definition juce_RangedAudioParameter.h:49
JUCE_NODISCARD auto withCategory(Category x) const
Definition juce_RangedAudioParameter.h:61
JUCE_NODISCARD auto withStringFromValueFunction(StringFromValue x) const
Definition juce_RangedAudioParameter.h:52
JUCE_NODISCARD const auto & getValueFromStringFunction() const
Definition juce_RangedAudioParameter.h:76
JUCE_NODISCARD auto withMeta(bool x) const
Definition juce_RangedAudioParameter.h:64
JUCE_NODISCARD auto withAutomatable(bool x) const
Definition juce_RangedAudioParameter.h:67
AudioProcessorParameterWithIDAttributes attributes
Definition juce_RangedAudioParameter.h:84
AudioProcessorParameter::Category Category
Definition juce_RangedAudioParameter.h:46
JUCE_NODISCARD auto withValueFromStringFunction(ValueFromString x) const
Definition juce_RangedAudioParameter.h:55
JUCE_NODISCARD auto withInverted(bool x) const
Definition juce_RangedAudioParameter.h:70
ValueFromString valueFromString
Definition juce_RangedAudioParameter.h:86
JUCE_NODISCARD auto withLabel(String x) const
Definition juce_RangedAudioParameter.h:58
auto & asDerived() const
Definition juce_RangedAudioParameter.h:82
JUCE_NODISCARD const auto & getAudioProcessorParameterWithIDAttributes() const
Definition juce_RangedAudioParameter.h:79
RangedAudioParameterAttributes This
Definition juce_RangedAudioParameter.h:43
JUCE_NODISCARD const auto & getStringFromValueFunction() const
Definition juce_RangedAudioParameter.h:73
StringFromValue stringFromValue
Definition juce_RangedAudioParameter.h:85
std::function< String(Value, int)> StringFromValue
Definition juce_RangedAudioParameter.h:48
Definition juce_RangedAudioParameter.h:98
float convertTo0to1(float v) const noexcept
Definition juce_RangedAudioParameter.cpp:39
AudioProcessorParameterWithID(const ParameterID &parameterID, const String &parameterName, const AudioProcessorParameterWithIDAttributes &attributes={})
Definition juce_AudioProcessorParameterWithID.cpp:29
int getNumSteps() const override
Definition juce_RangedAudioParameter.cpp:29
virtual const NormalisableRange< float > & getNormalisableRange() const =0
float convertFrom0to1(float v) const noexcept
Definition juce_RangedAudioParameter.cpp:45
Definition juce_String.h:53
Definition juce_Value.h:51
unsigned v[N_MAX]
Definition inflate.c:1584
unsigned x[BMAX+1]
Definition inflate.c:1586
#define JUCE_NODISCARD
Definition juce_CompilerSupport.h:108
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
Object withMember(Object copy, Member OtherObject::*member, Member &&value)
Definition juce_Functional.h:89