diff options
author | Robin Gareus <robin@gareus.org> | 2020-03-30 16:43:42 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-03-30 16:43:42 +0200 |
commit | 27b2794133a1f357504f8485427af95f68c29449 (patch) | |
tree | 3274c6ebb3cbc054a1b3d956affe429c728c22ab /libs/ardour/ardour/dsp_load_calculator.h | |
parent | f866ed63052c8e71ae3905d850d34c8c55bc5262 (diff) |
Add API to reset DSP load state
Diffstat (limited to 'libs/ardour/ardour/dsp_load_calculator.h')
-rw-r--r-- | libs/ardour/ardour/dsp_load_calculator.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libs/ardour/ardour/dsp_load_calculator.h b/libs/ardour/ardour/dsp_load_calculator.h index 5a7b3f0e45..eba74b4d7e 100644 --- a/libs/ardour/ardour/dsp_load_calculator.h +++ b/libs/ardour/ardour/dsp_load_calculator.h @@ -40,6 +40,12 @@ public: m_calc_avg_load = NULL != g_getenv("ARDOUR_AVG_DSP_LOAD"); } + void reset () { + m_dsp_load = 0; + m_start_timestamp_us = 0; + m_stop_timestamp_us = 0; + } + void set_max_time(double samplerate, uint32_t period_size) { m_max_time_us = period_size * 1e6 / samplerate; m_alpha = 0.2f * (m_max_time_us * 1e-6f); @@ -53,8 +59,7 @@ public: int64_t get_max_time_us() const { return m_max_time_us; } - void set_start_timestamp_us(int64_t start_timestamp_us) - { + void set_start_timestamp_us(int64_t start_timestamp_us) { m_start_timestamp_us = start_timestamp_us; } @@ -73,6 +78,7 @@ public: elapsed_time_us() > max_timer_error_us()) { return; } + assert (m_max_time_us > 0); const float load = (float) elapsed_time_us() / (float)m_max_time_us; if ((m_calc_avg_load && load > .95f) || (!m_calc_avg_load && (load > m_dsp_load || load > 1.f))) { |