summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_insert.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-07-14 17:46:34 +0200
committerRobin Gareus <robin@gareus.org>2016-07-14 17:47:22 +0200
commitd8a97789c10c8fb264b5c31ed1334471bbda1772 (patch)
treed48aef472602075fe02a36726259c2e96bc62e71 /libs/ardour/plugin_insert.cc
parent205fbb99ad65b899a5047165422f442d9930103a (diff)
fix plugin analysis for variable i/o plugins
Diffstat (limited to 'libs/ardour/plugin_insert.cc')
-rw-r--r--libs/ardour/plugin_insert.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index 6720b41f93..11117e720c 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -2862,7 +2862,14 @@ PluginInsert::get_impulse_analysis_plugin()
// during init() -- most notably block_size..
// not great.
ret = plugin_factory(_plugins[0]);
- ret->configure_io (internal_input_streams (), internal_output_streams ());
+ ChanCount out (internal_output_streams ());
+ if (ret->get_info ()->reconfigurable_io ()) {
+ // populate get_info ()->n_inputs and ->n_outputs
+ ChanCount useins;
+ ret->can_support_io_configuration (internal_input_streams (), out, &useins);
+ assert (out == internal_output_streams ());
+ }
+ ret->configure_io (internal_input_streams (), out);
_impulseAnalysisPlugin = ret;
} else {
ret = _impulseAnalysisPlugin.lock();