summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorJulien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr>2016-07-07 00:46:53 +0200
committerRobin Gareus <robin@gareus.org>2016-07-07 01:33:42 +0200
commit6911702f21494ef67252e3706cdc079c26852257 (patch)
tree426295310172d6d411fef51abec4b9214e96f7a2 /libs/ardour/route.cc
parentd7caa89b960cb5136302f687b404f5c7c081c185 (diff)
Don't add audio outs to non-audio routes with strict I/O
If a route has strict I/O then the main delivery follows the output of the last processor, but libardour ensures it has at least as many outputs as inputs in the master strip. A good consequence is that mono tracks get their expected panner. An akward side-effect is that MIDI-only routes (e.g. midi tracks or busses without a synth) get two audio channels that have no use (and indeed no panner is added because there is nothing to pan). Skip the completion of audio outs if there was no audio out to begin with.
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 9660e78358..56cd04d84a 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -1636,8 +1636,9 @@ Route::try_configure_processors_unlocked (ChanCount in, ProcessorStreams* err)
* Delivery::configure_io() will do the actual removal
* by calling _output->ensure_io()
*/
- if (!is_master() && _session.master_out ()) {
- /* ..but at least as many as there are master-inputs */
+ if (!is_master() && _session.master_out () && in.n_audio() > 0) {
+ /* ..but at least as many as there are master-inputs, if
+ * the delivery is dealing with audio */
// XXX this may need special-casing for mixbus (master-outputs)
// and should maybe be a preference anyway ?!
out = ChanCount::max (in, _session.master_out ()->n_inputs ());