summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_insert.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-04-04 18:58:05 +0200
committerRobin Gareus <robin@gareus.org>2016-04-04 18:58:05 +0200
commitd3447dfd15df54f82bd2f3a22af451773bdb3b7a (patch)
treefdc826dabe264e701fe433aea4440fa4c494275a /libs/ardour/plugin_insert.cc
parentd324f5bb9e61795e3be4dfc98ca61f7aab3b29b6 (diff)
special case MB channelstrip
Diffstat (limited to 'libs/ardour/plugin_insert.cc')
-rw-r--r--libs/ardour/plugin_insert.cc23
1 files changed, 16 insertions, 7 deletions
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index 2f1169245c..dd99e981ef 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -1368,8 +1368,6 @@ PluginInsert::private_can_support_io_configuration (ChanCount const & inx, ChanC
return Match (Replicate, f, _strict_io);
}
break;
- case Split:
- break;
default:
break;
}
@@ -1382,6 +1380,12 @@ PluginInsert::private_can_support_io_configuration (ChanCount const & inx, ChanC
return m;
}
+#ifdef MIXBUS
+ if (is_channelstrip ()) {
+ return Match (Replicate, 1, _strict_io);
+ }
+#endif
+
ChanCount ns_inputs = inputs - sidechain_input_pins ();
DEBUG_TRACE (DEBUG::ChanMapping, string_compose ("resolving 'Impossible' match for %1\n", name()));
@@ -1394,7 +1398,7 @@ PluginInsert::private_can_support_io_configuration (ChanCount const & inx, ChanC
// houston, we have a problem.
return Match (Impossible, 0);
}
- return Match (Delegate, 1);
+ return Match (Delegate, 1, _strict_io);
}
ChanCount midi_bypass;
@@ -1413,7 +1417,7 @@ PluginInsert::private_can_support_io_configuration (ChanCount const & inx, ChanC
}
if (f > 0 && outputs * f >= _configured_out) {
out = outputs * f + midi_bypass;
- return Match (Replicate, f);
+ return Match (Replicate, f, _strict_io);
}
// add at least as many plugins needed to connect all inputs (w/o sidechain pins)
@@ -1425,7 +1429,7 @@ PluginInsert::private_can_support_io_configuration (ChanCount const & inx, ChanC
}
if (f > 0) {
out = outputs * f + midi_bypass;
- return Match (Replicate, f);
+ return Match (Replicate, f, _strict_io);
}
// add at least as many plugins needed to connect all inputs
@@ -1436,7 +1440,7 @@ PluginInsert::private_can_support_io_configuration (ChanCount const & inx, ChanC
f = max (f, (uint32_t) ceil (inx.get(*t) / (float)nin));
}
out = outputs * f + midi_bypass;
- return Match (Replicate, f);
+ return Match (Replicate, f, _strict_io);
}
/* this is the original Ardour 3/4 behavior, mainly for backwards compatibility */
@@ -1510,7 +1514,12 @@ PluginInsert::automatic_can_support_io_configuration (ChanCount const & inx, Cha
uint32_t f = 0;
bool can_replicate = true;
- for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
+#ifdef MIXBUS
+ if (is_channelstrip ()) {
+ can_replicate = false;
+ }
+#endif
+ for (DataType::iterator t = DataType::begin(); t != DataType::end() && can_replicate; ++t) {
// ignore side-chains
uint32_t nin = ns_inputs.get (*t);