diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-08-16 19:58:34 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-08-16 19:58:34 +0000 |
commit | a4d9d09af5853f769e1143c2353806bfb7d89f58 (patch) | |
tree | 05dc35268557395124f130ec8b6d8e32c6e49b7b /libs/ardour/plugin_insert.cc | |
parent | 0b2f156c5850fb1c60aae25df4b9767bd7f92b89 (diff) |
forward port 2.X changes up to and including rev 6714
git-svn-id: svn://localhost/ardour2/branches/3.0@7635 d708f5d6-7413-0410-9779-e7cbd77b26cf
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 */ |