summaryrefslogtreecommitdiff
path: root/libs/ardour/automatable.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-04-09 16:15:26 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:40 -0400
commit8fc18766263c72a7c02593de726f304ea2f866a6 (patch)
treeecca3cbbbf14e3657074048e9401aaa1c1b9e34b /libs/ardour/automatable.cc
parent2c6d59561416900cd99e79bee4d5afb82d87aed8 (diff)
do not non-automable controls to an Automatable's list of what can be automated
Diffstat (limited to 'libs/ardour/automatable.cc')
-rw-r--r--libs/ardour/automatable.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/libs/ardour/automatable.cc b/libs/ardour/automatable.cc
index f85bc83e85..d02139b4d1 100644
--- a/libs/ardour/automatable.cc
+++ b/libs/ardour/automatable.cc
@@ -148,7 +148,9 @@ Automatable::add_control(boost::shared_ptr<Evoral::Control> ac)
boost::shared_ptr<AutomationList> al = boost::dynamic_pointer_cast<AutomationList> (ac->list ());
- if (al) {
+ boost::shared_ptr<AutomationControl> actl (boost::dynamic_pointer_cast<AutomationControl> (ac));
+
+ if ((!actl || !(actl->flags() & Controllable::NotAutomatable)) && al) {
al->automation_state_changed.connect_same_thread (
_list_connections,
boost::bind (&Automatable::automation_list_automation_state_changed,
@@ -157,7 +159,7 @@ Automatable::add_control(boost::shared_ptr<Evoral::Control> ac)
ControlSet::add_control (ac);
- if (al) {
+ if ((!actl || !(actl->flags() & Controllable::NotAutomatable)) && al) {
_can_automate_list.insert (param);
automation_list_automation_state_changed (param, al->automation_state ()); // sync everything up
}