diff options
Diffstat (limited to 'libs/ardour/plugin_insert.cc')
-rw-r--r-- | libs/ardour/plugin_insert.cc | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc index d1f09dd0a8..73655b24b1 100644 --- a/libs/ardour/plugin_insert.cc +++ b/libs/ardour/plugin_insert.cc @@ -221,12 +221,16 @@ PluginInsert::parameter_changed (Evoral::Parameter which, float val) } } -void +int PluginInsert::set_block_size (nframes_t nframes) { + int ret = 0; for (Plugins::iterator i = _plugins.begin(); i != _plugins.end(); ++i) { - (*i)->set_block_size (nframes); + if ((*i)->set_block_size (nframes) != 0) { + ret = -1; + } } + return ret; } void @@ -250,6 +254,14 @@ PluginInsert::deactivate () } void +PluginInsert::flush () +{ + for (vector<boost::shared_ptr<Plugin> >::iterator i = _plugins.begin(); i != _plugins.end(); ++i) { + (*i)->flush (); + } +} + +void PluginInsert::connect_and_run (BufferSet& bufs, nframes_t nframes, nframes_t offset, bool with_auto, nframes_t now) { // Calculate if, and how many frames we need to collect for analysis @@ -436,7 +448,7 @@ PluginInsert::automation_run (BufferSet& bufs, nframes_t nframes) return; } - if (!find_next_event (now, end, next_event)) { + if (!find_next_event (now, end, next_event) || requires_fixed_sized_buffers()) { /* no events have a time within the relevant range */ |