diff options
author | Robin Gareus <robin@gareus.org> | 2016-04-04 18:58:05 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-04-04 18:58:05 +0200 |
commit | d3447dfd15df54f82bd2f3a22af451773bdb3b7a (patch) | |
tree | fdc826dabe264e701fe433aea4440fa4c494275a | |
parent | d324f5bb9e61795e3be4dfc98ca61f7aab3b29b6 (diff) |
special case MB channelstrip
-rw-r--r-- | libs/ardour/plugin_insert.cc | 23 |
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); |