From ed3eddaf19ca7b3fae05e2ad3b5c683e30be49ed Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 15 Apr 2016 14:52:19 +0200 Subject: [PATCH 1/1] special case mixbus routing --- libs/ardour/route.cc | 5 +---- libs/ardour/session.cc | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index a3eacb3588..51fc33a395 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -2083,10 +2083,7 @@ Route::try_configure_processors_unlocked (ChanCount in, ProcessorStreams* err) if (boost::dynamic_pointer_cast (*p) && boost::dynamic_pointer_cast (*p)->role() == Delivery::Main -#ifndef MIXBUS - && _strict_io -#endif - ) { + && ( _strict_io || Profile->get_mixbus ())) { /* with strict I/O the panner + output are forced to * follow the last processor's output. * diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index a1a6268f61..fec1229093 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -2384,6 +2384,10 @@ Session::new_midi_track (const ChanCount& input, const ChanCount& output, boost: goto failed; } + if (Profile->get_mixbus ()) { + track->set_strict_io (true); + } + track->use_new_diskstream(); #ifdef BOOST_SP_ENABLE_DEBUG_HOOKS @@ -2479,6 +2483,10 @@ Session::new_midi_route (RouteGroup* route_group, uint32_t how_many, string name goto failure; } + if (Profile->get_mixbus ()) { + bus->set_strict_io (true); + } + #ifdef BOOST_SP_ENABLE_DEBUG_HOOKS // boost_debug_shared_ptr_mark_interesting (bus.get(), "Route"); #endif @@ -3009,6 +3017,11 @@ Session::new_audio_track (int input_channels, int output_channels, TrackMode mod goto failed; } + if (Profile->get_mixbus ()) { + track->set_strict_io (true); + } + + if (ARDOUR::Profile->get_trx ()) { // TRACKS considers it's not a USE CASE, it's // a piece of behavior of the session model: @@ -3118,6 +3131,10 @@ Session::new_audio_route (int input_channels, int output_channels, RouteGroup* r goto failure; } + if (Profile->get_mixbus ()) { + bus->set_strict_io (true); + } + #ifdef BOOST_SP_ENABLE_DEBUG_HOOKS // boost_debug_shared_ptr_mark_interesting (bus.get(), "Route"); #endif -- 2.30.2