summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/automation_list.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-07-24 20:54:32 +0200
committerRobin Gareus <robin@gareus.org>2017-07-24 21:00:12 +0200
commita41198305ebb727e02a2b9e0d973b963f51b93fe (patch)
tree6c136c1dc8882747f8446c8189bea52c991306b2 /libs/ardour/ardour/automation_list.h
parent8c260a647a72e63bb16b1f7d2e732ae286edb38d (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.h8
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.