From a9d331aa980cde9464ddd1113a7a29447f52768e Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 7 Feb 2011 17:14:40 +0000 Subject: [PATCH] add back some missing logic to can-replicate git-svn-id: svn://localhost/ardour2/branches/3.0@8743 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/plugin_insert.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc index 74cd20644a..8a5919ab5a 100644 --- a/libs/ardour/plugin_insert.cc +++ b/libs/ardour/plugin_insert.cc @@ -621,7 +621,7 @@ PluginInsert::can_support_io_configuration (const ChanCount& in, ChanCount& out) // See if replication is possible // We allow replication only for plugins with either zero or 1 inputs and outputs // for every valid data type. - uint32_t f = 1; + uint32_t f = 0; bool can_replicate = true; for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) { // No inputs of this type @@ -633,6 +633,18 @@ PluginInsert::can_support_io_configuration (const ChanCount& in, ChanCount& out) can_replicate = false; break; } + + // Potential factor not set yet + + if (f == 0) { + f = in.get(*t) / inputs.get(*t);; + } + + // Factor for this type does not match another type, can not replicate + if (f != (in.get(*t) / inputs.get(*t))) { + can_replicate = false; + break; + } } if (can_replicate) {