From d1cf21634f6a959618a18c25800a4c9bd32bfdc4 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 3 Dec 2018 22:29:25 +0100 Subject: [PATCH] Special case Mixbus Chanstrip for load calculation These processors don't have a UI, so their load stats are not easily visible. The stats can still be queried via Lua API or DSP-load overview window, so we retain this for debug builds. --- libs/ardour/ardour/plugin_insert.h | 1 + libs/ardour/plugin_insert.cc | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h index 5460e25a14..30dd04057a 100644 --- a/libs/ardour/ardour/plugin_insert.h +++ b/libs/ardour/ardour/plugin_insert.h @@ -197,6 +197,7 @@ public: bool load_preset (Plugin::PresetRecord); + bool provides_stats () const; bool get_stats (uint64_t& min, uint64_t& max, double& avg, double& dev) const; void clear_stats (); diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc index 9cb654bcb4..3b87b659a6 100644 --- a/libs/ardour/plugin_insert.cc +++ b/libs/ardour/plugin_insert.cc @@ -1226,7 +1226,13 @@ PluginInsert::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_sa } if (_pending_active) { +#if defined MIXBUS && !defined NDEBUG + if (!is_channelstrip ()) { + _timing_stats.start (); + } +#else _timing_stats.start (); +#endif /* run as normal if we are active or moving from inactive to active */ if (_session.transport_rolling() || _session.bounce_processing()) { @@ -1235,7 +1241,13 @@ PluginInsert::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_sa Glib::Threads::Mutex::Lock lm (control_lock(), Glib::Threads::TRY_LOCK); connect_and_run (bufs, start_sample, end_sample, speed, nframes, 0, lm.locked()); } +#if defined MIXBUS && !defined NDEBUG + if (!is_channelstrip ()) { + _timing_stats.update (); + } +#else _timing_stats.update (); +#endif } else { _timing_stats.reset (); @@ -3199,6 +3211,17 @@ PluginInsert::end_touch (uint32_t param_id) } } +bool +PluginInsert::provides_stats () const +{ +#if defined MIXBUS && !defined NDEBUG + if (is_channelstrip () || !display_to_user ()) { + return false; + } +#endif + return true; +} + bool PluginInsert::get_stats (uint64_t& min, uint64_t& max, double& avg, double& dev) const { -- 2.30.2