From b90f057e6ed2d42bf14eb43f78451114e8b645e0 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 28 Oct 2020 22:30:00 +0100 Subject: [PATCH] Fix restoring implicit solo on session load When a route's output is connected to multiple busses, re-establishing port-connections on session-load calls Route::output_change_handler multiple times. Implicit solo counts are saved and restored by the route's SoloControl, however the output_change_handler invalidated it on session load. Since connections are restored iteratively, counting soloed downstream routes will yield an incorrect result until all connections are established. This fixes the issue that implicit solo is lost on session-reload in case a route has multiple connections with different up/downstream solo states. --- libs/ardour/route.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 48efed1753..444857e460 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -3678,7 +3678,7 @@ Route::realtime_handle_transport_stopped () void Route::input_change_handler (IOChange change, void * /*src*/) { - if (_session.loading()) { + if (_initial_io_setup || _session.loading ()) { return; } @@ -3757,7 +3757,7 @@ Route::input_change_handler (IOChange change, void * /*src*/) void Route::output_change_handler (IOChange change, void * /*src*/) { - if (_initial_io_setup) { + if (_initial_io_setup || _session.loading ()) { return; }