From 5a047cc6eec14b314af1eaa766ce57c72c6dee32 Mon Sep 17 00:00:00 2001 From: Grygorii Zharun Date: Wed, 28 May 2014 05:06:26 -0500 Subject: [PATCH] [Summary] Fixed defects with stereo out/ multi out states saving restoring [Details] When swithced back to 2 channel device from another device in stereo out mode channel configuration could be incorrect; System didn't save stereo out mode channel configuration correctly [git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 464136] --- libs/ardour/engine_state_controller.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libs/ardour/engine_state_controller.cc b/libs/ardour/engine_state_controller.cc index bc9db19947..c6bcc9d1bc 100644 --- a/libs/ardour/engine_state_controller.cc +++ b/libs/ardour/engine_state_controller.cc @@ -826,7 +826,7 @@ EngineStateController::_update_device_channels_state(bool reconnect_session_rout // update audio output states (stereo out mode) new_output_states.clear(); - ChannelStateList &output_stereo_states = _current_state->multi_out_channel_states; + ChannelStateList &output_stereo_states = _current_state->stereo_out_channel_states; output_iter = phys_audio_outputs.begin(); for (; output_iter != phys_audio_outputs.end(); ++output_iter) { @@ -878,7 +878,8 @@ EngineStateController::_refresh_stereo_out_channel_states() pending_active_channels = 0; } - for (; iter != output_states.end(); ++iter) { + // drop the rest of the states to false (until we reach the end or first existing active channel) + for (; iter != output_states.end() && iter != active_iter; ++iter) { if (pending_active_channels) { iter->active = true; --pending_active_channels;