special case mixbus routing
This commit is contained in:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user