From d86000efd0ef92d57913c07236da465f32e679fb Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 9 Oct 2010 12:17:46 +0000 Subject: 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 --- gtk2_ardour/plugin_eq_gui.cc | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'gtk2_ardour') 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 -- cgit v1.2.3