summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-05-08 19:51:20 +0200
committerRobin Gareus <robin@gareus.org>2019-05-08 19:51:20 +0200
commitba41ac3cecca0a449e1a1ee44b4a7d9bf01d45d7 (patch)
tree0f5d4b326f20d7c1249a80fe7ba61c5c25c45fd8 /libs/ardour/session.cc
parentef283ed29c76aa1216582e541d9342a146b85507 (diff)
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.
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc8
1 files 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<Route> r1, boost::shared_ptr<Route> rbase)
+trace_terminal (boost::shared_ptr<Route> r1, boost::shared_ptr<Route> rbase, bool sends_only)
{
boost::shared_ptr<Route> r2;
@@ -2284,7 +2284,7 @@ trace_terminal (boost::shared_ptr<Route> r1, boost::shared_ptr<Route> 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<Route> r1, boost::shared_ptr<Route> 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<RouteList> 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;