diff options
author | Carl Hetherington <carl@carlh.net> | 2010-10-09 12:17:46 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-10-09 12:17:46 +0000 |
commit | d86000efd0ef92d57913c07236da465f32e679fb (patch) | |
tree | acb4d6557b260d1517c51a5a936cb07955388276 /gtk2_ardour/plugin_eq_gui.cc | |
parent | 7d2cd8ed5c86a6a799c804df42476dbc16ed3932 (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.cc | 19 |
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 |