31 u32 timestamp = context->getTimestamp();
36 mRMSHistory.push_back(mCurrentRMS);
38 mRMSHistory[mHistoryIndex] = mCurrentRMS;
39 mHistoryIndex = (mHistoryIndex + 1) % mHistorySize;
122 for (fl::size i = 0; i <
mRMSHistory.size(); i++) {
125 return sum /
static_cast<float>(
mRMSHistory.size());
135 return smoothedRMS <= exitThreshold;
139 return smoothedRMS <= enterThreshold;
u32 getSilenceDuration() const FL_NO_EXCEPT
PendingSilenceEvent mPendingEvent
static constexpr u32 DEFAULT_MIN_SILENCE_MS
static constexpr u32 DEFAULT_MAX_SILENCE_MS
function_list< void(u32 durationMs)> onSilenceDuration
function_list< void()> onSilenceStart
function_list< void()> onSilenceEnd
~Silence() FL_NO_EXCEPT override
bool checkSilenceCondition(float smoothedRMS) FL_NO_EXCEPT
function_list< void(u8 silent)> onSilence
void reset() FL_NO_EXCEPT override
vector< float > mRMSHistory
float getSmoothedRMS() FL_NO_EXCEPT
static constexpr float DEFAULT_SILENCE_THRESHOLD
void fireCallbacks() FL_NO_EXCEPT override
static constexpr float DEFAULT_HYSTERESIS
static constexpr int DEFAULT_HISTORY_SIZE
void update(shared_ptr< Context > context) FL_NO_EXCEPT override
u8 u8 fract8 blur_amount FL_NO_EXCEPT
Base definition for an LED controller.