summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/control_group.cc9
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;