diff options
author | Robin Gareus <robin@gareus.org> | 2017-07-24 20:54:32 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-07-24 21:00:12 +0200 |
commit | a41198305ebb727e02a2b9e0d973b963f51b93fe (patch) | |
tree | 6c136c1dc8882747f8446c8189bea52c991306b2 /libs/ardour/ardour/automation_list.h | |
parent | 8c260a647a72e63bb16b1f7d2e732ae286edb38d (diff) |
Update WritePass logic + AutomationList Undo
Fixes various issues when changing AutomationState while rolling.
Diffstat (limited to 'libs/ardour/ardour/automation_list.h')
-rw-r--r-- | libs/ardour/ardour/automation_list.h | 8 |
1 files changed, 6 insertions, 2 deletions
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. |