13 #include <nap/signalslot.h>
14 #include <nap/logger.h>
17 #include <audio/utility/audiotypes.h>
18 #include <audio/utility/dirtyflag.h>
55 void ramp(
const T& destination,
int stepCount,
RampMode mode = RampMode::Linear)
57 assert(stepCount >= 0);
59 mDestination = destination;
60 mStepCount = stepCount;
69 void stop() { mStepCounter = 0; }
77 if (mStepCounter > 0) {
79 case RampMode::Linear:
82 case RampMode::Exponential:
87 if (mStepCounter == 0) {
88 if (mRampMode == RampMode::Exponential && mDestinationZero)
91 mValue = mDestination;
123 mValue = mDestination;
128 mStepCounter = mStepCount;
132 case RampMode::Linear:
133 mIncrement = (mDestination - mValue) / T(mStepCount);
136 case RampMode::Exponential:
139 mValue = mDestination *
143 if (mDestination == 0)
147 mDestinationZero =
true;
150 mDestinationZero =
false;
153 mFactor = pow(
double(mDestination / mValue),
double(1.0 / mStepCount));
168 int mStepCounter = {0};
169 RampMode mRampMode = {RampMode::Linear};
170 bool mDestinationZero =
false;
RampMode
Definition: audiotypes.h:131
T mIncrement
Definition: rampedvalue.h:163
T getValue() const
Definition: rampedvalue.h:103
void stop()
Definition: rampedvalue.h:69
nap::Signal< T > destinationReachedSignal
Definition: rampedvalue.h:114
static constexpr T smallestFactor
Definition: rampedvalue.h:34
bool isRamping() const
Definition: rampedvalue.h:109
RampedValue(const T &initValue)
Definition: rampedvalue.h:37
Definition: templateapp.h:17
void ramp(const T &destination, int stepCount, RampMode mode=RampMode::Linear)
Definition: rampedvalue.h:55
T mFactor
Definition: rampedvalue.h:164
T getNextValue()
Definition: rampedvalue.h:75
Definition: rampedvalue.h:31
void setValue(const T &value)
Definition: rampedvalue.h:43