52template <
typename Behaviour>
58 std::numeric_limits<double>::
max())
88 void drag (
double deltaFromStartOfDrag)
104 void nudge (
double deltaFromCurrentPosition)
161 const Time now,
double newPos)
163 auto elapsedSecs =
jmax (0.005, (now - last).inSeconds());
164 auto v = (newPos - lastPos) / elapsedSecs;
165 return std::abs (
v) > 0.2 ?
v : 0.0;
180 newPosition =
range.clipValue (newPosition);
185 listeners.call ([
this, newPosition] (Listener&
l) {
l.positionChanged (*
this, newPosition); });
Type jmax(const Type a, const Type b)
Definition MathsFunctions.h:48
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_AnimatedPosition.h:133
virtual void positionChanged(AnimatedPosition &, double newPosition)=0
virtual ~Listener()=default
Definition juce_AnimatedPosition.h:54
double grabbedPos
Definition juce_AnimatedPosition.h:155
AnimatedPositionBehaviours::ContinuousWithMomentum behaviour
Definition juce_AnimatedPosition.h:151
double releaseVelocity
Definition juce_AnimatedPosition.h:155
void addListener(Listener *listener)
Definition juce_AnimatedPosition.h:142
void endDrag()
Definition juce_AnimatedPosition.h:96
double position
Definition juce_AnimatedPosition.h:155
void setPosition(double newPosition)
Definition juce_AnimatedPosition.h:121
double getPosition() const noexcept
Definition juce_AnimatedPosition.h:112
Time lastDrag
Definition juce_AnimatedPosition.h:157
void removeListener(Listener *listener)
Definition juce_AnimatedPosition.h:145
Range< double > range
Definition juce_AnimatedPosition.h:156
void nudge(double deltaFromCurrentPosition)
Definition juce_AnimatedPosition.h:104
Time lastUpdate
Definition juce_AnimatedPosition.h:157
ListenerList< Listener > listeners
Definition juce_AnimatedPosition.h:158
void beginDrag()
Definition juce_AnimatedPosition.h:77
void timerCallback() override
Definition juce_AnimatedPosition.h:189
void moveTo(double newPos)
Definition juce_AnimatedPosition.h:168
static double getSpeed(const Time last, double lastPos, const Time now, double newPos)
Definition juce_AnimatedPosition.h:160
void setLimits(Range< double > newRange) noexcept
Definition juce_AnimatedPosition.h:63
AnimatedPosition()
Definition juce_AnimatedPosition.h:56
void setPositionAndSendChange(double newPosition)
Definition juce_AnimatedPosition.h:178
void drag(double deltaFromStartOfDrag)
Definition juce_AnimatedPosition.h:88
Definition juce_ListenerList.h:70
Definition juce_Range.h:40
Definition juce_Time.h:37
static Time JUCE_CALLTYPE getCurrentTime() noexcept
Definition juce_Time.cpp:233
void stopTimer() noexcept
Definition juce_Timer.cpp:357
Timer() noexcept
Definition juce_Timer.cpp:316
void startTimerHz(int timerFrequencyHz) noexcept
Definition juce_Timer.cpp:349
int * l
Definition inflate.c:1579
unsigned v[N_MAX]
Definition inflate.c:1584
Definition carla_juce.cpp:31
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
Definition juce_Uuid.h:141
#define max(x, y)
Definition os.h:78
#define const
Definition zconf.h:137