mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-30 08:53:08 +01:00
Add API to reset plugin timing stats
This commit is contained in:
parent
61d26e5678
commit
95eaf0cc87
2 changed files with 13 additions and 0 deletions
|
|
@ -197,6 +197,7 @@ public:
|
|||
bool load_preset (Plugin::PresetRecord);
|
||||
|
||||
bool get_stats (uint64_t& min, uint64_t& max, double& avg, double& dev) const;
|
||||
void clear_stats ();
|
||||
|
||||
/** A control that manipulates a plugin parameter (control port). */
|
||||
struct PluginControl : public AutomationControl
|
||||
|
|
@ -399,6 +400,7 @@ private:
|
|||
void preset_load_set_value (uint32_t, float);
|
||||
|
||||
PBD::TimingStats _timing_stats;
|
||||
volatile gint _stat_reset;
|
||||
};
|
||||
|
||||
} // namespace ARDOUR
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ PluginInsert::PluginInsert (Session& s, boost::shared_ptr<Plugin> plug)
|
|||
, _maps_from_state (false)
|
||||
, _latency_changed (false)
|
||||
, _bypass_port (UINT32_MAX)
|
||||
, _stat_reset (0)
|
||||
{
|
||||
/* the first is the master */
|
||||
|
||||
|
|
@ -1210,6 +1211,10 @@ PluginInsert::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_sa
|
|||
_sidechain->run (bufs, start_sample, end_sample, speed, nframes, true);
|
||||
}
|
||||
|
||||
if (g_atomic_int_compare_and_exchange (&_stat_reset, 1, 0)) {
|
||||
_timing_stats.reset ();
|
||||
}
|
||||
|
||||
if (_pending_active) {
|
||||
_timing_stats.start ();
|
||||
/* run as normal if we are active or moving from inactive to active */
|
||||
|
|
@ -3146,6 +3151,12 @@ PluginInsert::get_stats (uint64_t& min, uint64_t& max, double& avg, double& dev)
|
|||
return _timing_stats.get_stats (min, max, avg, dev);
|
||||
}
|
||||
|
||||
void
|
||||
PluginInsert::clear_stats ()
|
||||
{
|
||||
g_atomic_int_set (&_stat_reset, 1);
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& o, const ARDOUR::PluginInsert::Match& m)
|
||||
{
|
||||
switch (m.method) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue