summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_insert.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/plugin_insert.cc')
-rw-r--r--libs/ardour/plugin_insert.cc18
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 */