summaryrefslogtreecommitdiff
path: root/libs/ardour/automation_control.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-12-01 19:37:05 -0500
committerDavid Robillard <d@drobilla.net>2014-12-01 23:35:24 -0500
commit86de0386c9aea09e1efef604c695afec7cd7845c (patch)
treebea184ebe9d88a47112367cd88dcd6532012ba76 /libs/ardour/automation_control.cc
parent2b69fa6edffd9f37f7d9418e4acac467300d988a (diff)
Fix automation write/touch.
Diffstat (limited to 'libs/ardour/automation_control.cc')
-rw-r--r--libs/ardour/automation_control.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/libs/ardour/automation_control.cc b/libs/ardour/automation_control.cc
index 773fd3f40c..72548f0b1f 100644
--- a/libs/ardour/automation_control.cc
+++ b/libs/ardour/automation_control.cc
@@ -80,6 +80,9 @@ AutomationControl::set_automation_state (AutoState as)
if (_list && as != alist()->automation_state()) {
alist()->set_automation_state (as);
+ if (_desc.toggled) {
+ return; // No watch for boolean automation
+ }
if (as == Write) {
AutomationWatch::instance().add_automation_watch (shared_from_this());
@@ -113,7 +116,9 @@ AutomationControl::start_touch(double when)
if (!touching()) {
if (alist()->automation_state() == Touch) {
alist()->start_touch (when);
- AutomationWatch::instance().add_automation_watch (shared_from_this());
+ if (!_desc.toggled) {
+ AutomationWatch::instance().add_automation_watch (shared_from_this());
+ }
}
set_touching (true);
}
@@ -127,7 +132,9 @@ AutomationControl::stop_touch(bool mark, double when)
set_touching (false);
if (alist()->automation_state() == Touch) {
alist()->stop_touch (mark, when);
- AutomationWatch::instance().remove_automation_watch (shared_from_this());
+ if (!_desc.toggled) {
+ AutomationWatch::instance().remove_automation_watch (shared_from_this());
+ }
}
}
}