summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-04-14 21:02:28 +0200
committerRobin Gareus <robin@gareus.org>2016-04-14 21:02:28 +0200
commit4f3fed1c08f0c9263f28e39f06db66021b15d714 (patch)
tree74b86f17a2dab18cc2c5741b22417d59b35afe43
parentc9fd0ea0cada35be81f8b10925d29be5d2af859b (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.cc8
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);
}
}
}