LMMS
Loading...
Searching...
No Matches
juce_ParameterAttachments.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
47 private AsyncUpdater
48{
49public:
61 std::function<void (float)> parameterChangedCallback,
62 UndoManager* undoManager = nullptr);
63
65 ~ParameterAttachment() override;
66
74 void sendInitialUpdate();
75
81 void setValueAsCompleteGesture (float newDenormalisedValue);
82
88 void beginGesture();
89
95 void setValueAsPartOfGesture (float newDenormalisedValue);
96
102 void endGesture();
103
104private:
105 float normalise (float f) const { return parameter.convertTo0to1 (f); }
106
107 template <typename Callback>
108 void callIfParameterValueChanged (float newDenormalisedValue, Callback&& callback);
109
110 void parameterValueChanged (int, float) override;
111 void parameterGestureChanged (int, bool) override {}
112 void handleAsyncUpdate() override;
113
115 std::atomic<float> lastValue { 0.0f };
117 std::function<void (float)> setValue;
118
120};
121
122//==============================================================================
134{
135public:
143 UndoManager* undoManager = nullptr);
144
147
151 void sendInitialUpdate();
152
153private:
154 void setValue (float newValue);
155 void sliderValueChanged (Slider*) override;
156
157 void sliderDragStarted (Slider*) override { attachment.beginGesture(); }
158 void sliderDragEnded (Slider*) override { attachment.endGesture(); }
159
162 bool ignoreCallbacks = false;
163};
164
165//==============================================================================
182{
183public:
191 UndoManager* undoManager = nullptr);
192
195
199 void sendInitialUpdate();
200
201private:
202 void setValue (float newValue);
203 void comboBoxChanged (ComboBox*) override;
204
208 bool ignoreCallbacks = false;
209};
210
211//==============================================================================
223{
224public:
232 UndoManager* undoManager = nullptr);
233
236
240 void sendInitialUpdate();
241
242private:
243 void setValue (float newValue);
244 void buttonClicked (Button*) override;
245
248 bool ignoreCallbacks = false;
249};
250
251} // namespace juce
AsyncUpdater()
Definition juce_AsyncUpdater.cpp:44
Definition juce_AudioProcessorParameter.h:294
Definition juce_Button.h:189
Definition juce_Button.h:43
ButtonParameterAttachment(RangedAudioParameter &parameter, Button &button, UndoManager *undoManager=nullptr)
Definition juce_ParameterAttachments.cpp:235
ParameterAttachment attachment
Definition juce_ParameterAttachments.h:247
bool ignoreCallbacks
Definition juce_ParameterAttachments.h:248
Button & button
Definition juce_ParameterAttachments.h:246
void setValue(float newValue)
Definition juce_ParameterAttachments.cpp:255
void sendInitialUpdate()
Definition juce_ParameterAttachments.cpp:250
void buttonClicked(Button *) override
Definition juce_ParameterAttachments.cpp:261
Definition juce_ComboBox.h:290
Definition juce_ComboBox.h:49
RangedAudioParameter & storedParameter
Definition juce_ParameterAttachments.h:206
ParameterAttachment attachment
Definition juce_ParameterAttachments.h:207
void sendInitialUpdate()
Definition juce_ParameterAttachments.cpp:204
ComboBox & comboBox
Definition juce_ParameterAttachments.h:205
bool ignoreCallbacks
Definition juce_ParameterAttachments.h:208
void comboBoxChanged(ComboBox *) override
Definition juce_ParameterAttachments.cpp:221
ComboBoxParameterAttachment(RangedAudioParameter &parameter, ComboBox &combo, UndoManager *undoManager=nullptr)
Definition juce_ParameterAttachments.cpp:188
void setValue(float newValue)
Definition juce_ParameterAttachments.cpp:209
Definition juce_ParameterAttachments.h:48
void endGesture()
Definition juce_ParameterAttachments.cpp:76
void setValueAsCompleteGesture(float newDenormalisedValue)
Definition juce_ParameterAttachments.cpp:50
void sendInitialUpdate()
Definition juce_ParameterAttachments.cpp:45
RangedAudioParameter & parameter
Definition juce_ParameterAttachments.h:114
float normalise(float f) const
Definition juce_ParameterAttachments.h:105
std::atomic< float > lastValue
Definition juce_ParameterAttachments.h:115
void beginGesture()
Definition juce_ParameterAttachments.cpp:60
void setValueAsPartOfGesture(float newDenormalisedValue)
Definition juce_ParameterAttachments.cpp:68
void parameterGestureChanged(int, bool) override
Definition juce_ParameterAttachments.h:111
UndoManager * undoManager
Definition juce_ParameterAttachments.h:116
ParameterAttachment(RangedAudioParameter &parameter, std::function< void(float)> parameterChangedCallback, UndoManager *undoManager=nullptr)
Definition juce_ParameterAttachments.cpp:29
std::function< void(float)> setValue
Definition juce_ParameterAttachments.h:117
Definition juce_RangedAudioParameter.h:98
Definition juce_Slider.h:556
Definition juce_Slider.h:54
void sendInitialUpdate()
Definition juce_ParameterAttachments.cpp:173
void sliderValueChanged(Slider *) override
Definition juce_ParameterAttachments.cpp:181
Slider & slider
Definition juce_ParameterAttachments.h:160
bool ignoreCallbacks
Definition juce_ParameterAttachments.h:162
void sliderDragEnded(Slider *) override
Definition juce_ParameterAttachments.h:158
void sliderDragStarted(Slider *) override
Definition juce_ParameterAttachments.h:157
ParameterAttachment attachment
Definition juce_ParameterAttachments.h:161
void setValue(float newValue)
Definition juce_ParameterAttachments.cpp:175
SliderParameterAttachment(RangedAudioParameter &parameter, Slider &slider, UndoManager *undoManager=nullptr)
Definition juce_ParameterAttachments.cpp:113
Definition juce_UndoManager.h:52
unsigned f
Definition inflate.c:1572
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
Definition carla_juce.cpp:31
RECT const char void(* callback)(const char *droppath))) SWELL_API_DEFINE(BOOL
Definition swell-functions.h:1004
#define void
Definition unzip.h:396