From a41198305ebb727e02a2b9e0d973b963f51b93fe Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 24 Jul 2017 20:54:32 +0200 Subject: Update WritePass logic + AutomationList Undo Fixes various issues when changing AutomationState while rolling. --- libs/ardour/ardour/automation_list.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'libs/ardour/ardour/automation_list.h') diff --git a/libs/ardour/ardour/automation_list.h b/libs/ardour/ardour/automation_list.h index 65268d503a..46643dc6fa 100644 --- a/libs/ardour/ardour/automation_list.h +++ b/libs/ardour/ardour/automation_list.h @@ -110,8 +110,6 @@ public: XMLNode& get_state (); int set_state (const XMLNode &, int version); - XMLNode& state (bool full); - XMLNode& serialize_events (); Command* memento_command (XMLNode* before, XMLNode* after); @@ -119,6 +117,7 @@ public: XMLNode* before () { XMLNode* rv = _before; _before = 0; return rv; } void clear_history (); + void snapshot_history (bool need_lock); ControlList::InterpolationStyle default_interpolation () const; @@ -126,11 +125,16 @@ private: void create_curve_if_necessary (); int deserialize_events (const XMLNode&); + XMLNode& state (bool full, bool need_lock); + XMLNode& serialize_events (bool need_lock); + void maybe_signal_changed (); AutoState _state; gint _touching; + PBD::ScopedConnection _writepass_connection; + bool operator== (const AutomationList&) const { /* not called */ abort(); return false; } XMLNode* _before; //used for undo of touch start/stop pairs. -- cgit v1.2.3