From ba41ac3cecca0a449e1a1ee44b4a7d9bf01d45d7 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 8 May 2019 19:51:20 +0200 Subject: [PATCH] Fix solo logic, connection/feed-information Assume the following connections Audio -> Bus1 --aux-send--> Bus2 Prior to this commit, Audio -> Bus2 was marked as "direct feed", even though the connection was only indirect via an aux-send. This caused issues with implicit solo and could lead to stuck solo. --- libs/ardour/session.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index fce6b22912..8915add5e9 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -2257,7 +2257,7 @@ Session::set_block_size (pframes_t nframes) static void -trace_terminal (boost::shared_ptr r1, boost::shared_ptr rbase) +trace_terminal (boost::shared_ptr r1, boost::shared_ptr rbase, bool sends_only) { boost::shared_ptr r2; @@ -2284,7 +2284,7 @@ trace_terminal (boost::shared_ptr r1, boost::shared_ptr rbase) base as being fed by r2 */ - rbase->add_fed_by (r2, i->sends_only); + rbase->add_fed_by (r2, i->sends_only || sends_only); if (r2 != rbase) { @@ -2300,7 +2300,7 @@ trace_terminal (boost::shared_ptr r1, boost::shared_ptr rbase) all routes that feed r2 */ - trace_terminal (r2, rbase); + trace_terminal (r2, rbase, i->sends_only || sends_only); } } @@ -2415,7 +2415,7 @@ Session::resort_routes_using (boost::shared_ptr r) or indirectly feeds them. */ for (RouteList::iterator i = r->begin(); i != r->end(); ++i) { - trace_terminal (*i, *i); + trace_terminal (*i, *i, false); } *r = *sorted_routes;