From 5dc54c91c76b02f8de9c5af4641667882a27b254 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 20 Oct 2017 02:13:23 +0200 Subject: Prevent recursive VCA assignments The GUI so far only prevents direct connections VCA 1 > VCA 2 > VCA 1, but does not recurse VCA 1 > VCA 2 > VCA 3 > VCA 1 --- libs/ardour/vca.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'libs/ardour/vca.cc') diff --git a/libs/ardour/vca.cc b/libs/ardour/vca.cc index 7be103e9e4..b7b95d1271 100644 --- a/libs/ardour/vca.cc +++ b/libs/ardour/vca.cc @@ -208,6 +208,17 @@ VCA::slaved_to (boost::shared_ptr vca) const return _gain_control->slaved_to (vca->gain_control()); } +void +VCA::assign (boost::shared_ptr v) +{ + /* prevent recursive assignments */ + if (assigned_to (_session.vca_manager_ptr (), v)) { + warning << _("Master assignment inored to prevent recursion") << endmsg; + return; + } + Slavable::assign (v); +} + SlavableControlList VCA::slavables () const { -- cgit v1.2.3