summaryrefslogtreecommitdiff
path: root/gtk2_ardour/plugin_eq_gui.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-10-09 12:17:46 +0000
committerCarl Hetherington <carl@carlh.net>2010-10-09 12:17:46 +0000
commitd86000efd0ef92d57913c07236da465f32e679fb (patch)
treeacb4d6557b260d1517c51a5a936cb07955388276 /gtk2_ardour/plugin_eq_gui.cc
parent7d2cd8ed5c86a6a799c804df42476dbc16ed3932 (diff)
Fix crash when running an analysis of a plugin with MIDI IO.
git-svn-id: svn://localhost/ardour2/branches/3.0@7889 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/plugin_eq_gui.cc')
-rw-r--r--gtk2_ardour/plugin_eq_gui.cc19
1 files changed, 7 insertions, 12 deletions
diff --git a/gtk2_ardour/plugin_eq_gui.cc b/gtk2_ardour/plugin_eq_gui.cc
index b3c756777a..601e45d909 100644
--- a/gtk2_ardour/plugin_eq_gui.cc
+++ b/gtk2_ardour/plugin_eq_gui.cc
@@ -239,19 +239,14 @@ PluginEqGui::set_buffer_size(uint32_t size, uint32_t signal_size)
_buffer_size = size;
_signal_buffer_size = signal_size;
- // These are for impulse analysis only, the signal analysis uses the actual
- // number of I/O's for the plugininsert
- uint32_t inputs = _plugin->get_info()->n_inputs.n_audio();
- uint32_t outputs = _plugin->get_info()->n_outputs.n_audio();
-
- // buffers for the signal analysis are ensured inside PluginInsert
- uint32_t n_chans = std::max(inputs, outputs);
- _bufferset.ensure_buffers(ARDOUR::DataType::AUDIO, n_chans, _buffer_size);
- _collect_bufferset.ensure_buffers(ARDOUR::DataType::AUDIO, n_chans, _buffer_size);
+ ARDOUR::ChanCount count = ARDOUR::ChanCount::max (_plugin->get_info()->n_inputs, _plugin->get_info()->n_outputs);
+ for (ARDOUR::DataType::iterator i = ARDOUR::DataType::begin(); i != ARDOUR::DataType::end(); ++i) {
+ _bufferset.ensure_buffers (*i, count.get (*i), _buffer_size);
+ _collect_bufferset.ensure_buffers (*i, count.get (*i), _buffer_size);
+ }
- ARDOUR::ChanCount chanCount(ARDOUR::DataType::AUDIO, n_chans);
- _bufferset.set_count(chanCount);
- _collect_bufferset.set_count(chanCount);
+ _bufferset.set_count (count);
+ _collect_bufferset.set_count (count);
}
void