diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/control_group.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/ardour/control_group.cc b/libs/ardour/control_group.cc index 7a984e4e17..f3677c1af5 100644 --- a/libs/ardour/control_group.cc +++ b/libs/ardour/control_group.cc @@ -128,7 +128,14 @@ int ControlGroup::add_control (boost::shared_ptr<AutomationControl> ac) { if (ac->parameter() != _parameter) { - return -1; + if (_parameter.type () != PluginAutomation) { + return -1; + } + /* allow plugin-automation - first control sets Evoral::parameter */ + Glib::Threads::RWLock::ReaderLock lm (controls_lock); + if (!_controls.empty () && _controls.begin()->second->parameter() != ac->parameter()) { + return -1; + } } std::pair<ControlMap::iterator,bool> res; |