diff options
author | Robin Gareus <robin@gareus.org> | 2016-04-14 21:02:28 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-04-14 21:02:28 +0200 |
commit | 4f3fed1c08f0c9263f28e39f06db66021b15d714 (patch) | |
tree | 74b86f17a2dab18cc2c5741b22417d59b35afe43 | |
parent | c9fd0ea0cada35be81f8b10925d29be5d2af859b (diff) |
fix split plugin default connection with strict-i/o
Only connect the available input channels, ignore others.
-rw-r--r-- | libs/ardour/plugin_insert.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc index 81c15efbf1..f7664d9951 100644 --- a/libs/ardour/plugin_insert.cc +++ b/libs/ardour/plugin_insert.cc @@ -1280,13 +1280,19 @@ PluginInsert::reset_map (bool emit) } else { if (_match.method == Split) { if (cend == 0) { continue; } + if (_strict_io && ic + stride * pc >= cend) { + break; + } /* connect *no* sidechain sinks in round-robin fashion */ _in_map[pc].set (*t, in, ic + stride * pc); + if (_strict_io && (ic + 1) == cend) { + break; + } ic = (ic + 1) % cend; } else { uint32_t s = in - shift; if (stride * pc + s < cend) { - _in_map[pc].set (*t, in, stride * pc + s); + _in_map[pc].set (*t, in, s + stride * pc); } } } |