summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/dsp_load_calculator.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-03-30 16:43:42 +0200
committerRobin Gareus <robin@gareus.org>2020-03-30 16:43:42 +0200
commit27b2794133a1f357504f8485427af95f68c29449 (patch)
tree3274c6ebb3cbc054a1b3d956affe429c728c22ab /libs/ardour/ardour/dsp_load_calculator.h
parentf866ed63052c8e71ae3905d850d34c8c55bc5262 (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.h10
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))) {