+ assert (!_plugins.empty());
+
+ ChanCount in;
+
+ PluginInfoPtr info = _plugins.front()->get_info();
+
+ if (info->reconfigurable_io()) {
+ assert (_plugins.size() == 1);
+ in = _plugins.front()->input_streams();
+ } else {
+ in = info->n_inputs;
+ }
+
+ DEBUG_TRACE (DEBUG::Processors, string_compose ("Plugin insert, input streams = %1, match using %2\n", in, _match.method));
+
+ if (_match.method == Split) {
+
+ /* we are splitting 1 processor input to multiple plugin inputs,
+ so we have a maximum of 1 stream of each type.
+ */
+ for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
+ if (in.get (*t) > 1) {
+ in.set (*t, 1);
+ }
+ }
+ return in;
+
+ } else if (_match.method == Hide) {
+
+ for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
+ in.set (*t, in.get (*t) - _match.hide.get (*t));
+ }
+ return in;