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;
PendingSilenceEvent mPendingEvent
bool checkSilenceCondition(float smoothedRMS)
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
function_list< void(u8 silent)> onSilence
vector< float > mRMSHistory
void update(shared_ptr< Context > context) override
u32 getSilenceDuration() const
static constexpr float DEFAULT_SILENCE_THRESHOLD
~Silence() FL_NOEXCEPT override
static constexpr float DEFAULT_HYSTERESIS
void fireCallbacks() override
static constexpr int DEFAULT_HISTORY_SIZE
Base definition for an LED controller.