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.
This commit is contained in:
Robin Gareus 2020-10-28 22:30:00 +01:00
parent 6e9d6934d9
commit b90f057e6e
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -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;
}