special case mixbus routing

This commit is contained in:
Robin Gareus 2016-04-15 14:52:19 +02:00
parent 426e2f2a19
commit ed3eddaf19
2 changed files with 18 additions and 4 deletions

View file

@ -2083,10 +2083,7 @@ Route::try_configure_processors_unlocked (ChanCount in, ProcessorStreams* err)
if (boost::dynamic_pointer_cast<Delivery> (*p)
&& boost::dynamic_pointer_cast<Delivery> (*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.
*

View file

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