From b939b2e68d59a297da8551ebe3347ea79628be64 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 13 Jun 2021 12:20:42 -0600 Subject: [PATCH] libardour: provide a global function for resetting performance meters --- libs/ardour/ardour/ardour.h | 3 +++ libs/ardour/globals.cc | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/libs/ardour/ardour/ardour.h b/libs/ardour/ardour/ardour.h index 71d7c4d553..6fba7992f0 100644 --- a/libs/ardour/ardour/ardour.h +++ b/libs/ardour/ardour/ardour.h @@ -49,6 +49,7 @@ namespace MIDI { namespace ARDOUR { class AudioEngine; + class Session; extern LIBARDOUR_API PBD::Signal1 BootMessage; extern LIBARDOUR_API PBD::Signal3 PluginScanMessage; @@ -94,6 +95,8 @@ namespace ARDOUR { */ LIBARDOUR_API void check_for_old_configuration_files (); LIBARDOUR_API int handle_old_configuration_files (boost::function ui_handler); + + LIBARDOUR_API void reset_performance_meters (Session*); } #endif /* __ardour_ardour_h__ */ diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index 5bc9c6fbe3..d1f3962a9d 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -125,6 +125,7 @@ #include "ardour/region.h" #include "ardour/route_group.h" #include "ardour/runtime_functions.h" +#include "ardour/session.h" #include "ardour/session_event.h" #include "ardour/source_factory.h" #include "ardour/transport_fsm.h" @@ -993,3 +994,19 @@ ARDOUR::format_data_width (ARDOUR::SampleFormat format) return 32; } } + +void +ARDOUR::reset_performance_meters (Session *session) +{ + if (session) { + for (size_t n = 0; n < Session::NTT; ++n) { + session->dsp_stats[n].queue_reset (); + } + } + for (size_t n = 0; n < AudioEngine::NTT; ++n) { + AudioEngine::instance()->dsp_stats[n].queue_reset (); + } + for (size_t n = 0; n < AudioBackend::NTT; ++n) { + AudioEngine::instance()->current_backend()->dsp_stats[n].queue_reset (); + } +}