+void
+PluginInsert::collect_signal_for_analysis (framecnt_t nframes)
+{
+ // called from outside the audio thread, so this should be safe
+ // only do audio as analysis is (currently) only for audio plugins
+ _signal_analysis_inputs.ensure_buffers( DataType::AUDIO, input_streams().n_audio(), nframes);
+ _signal_analysis_outputs.ensure_buffers( DataType::AUDIO, output_streams().n_audio(), nframes);
+
+ _signal_analysis_collected_nframes = 0;
+ _signal_analysis_collect_nframes_max = nframes;
+}
+
+/** Add a plugin to our list */
+void
+PluginInsert::add_plugin (boost::shared_ptr<Plugin> plugin)
+{
+ plugin->set_insert_info (this);
+ _plugins.push_back (plugin);
+}
+
+void
+PluginInsert::realtime_handle_transport_stopped ()
+{
+ for (Plugins::iterator i = _plugins.begin(); i != _plugins.end(); ++i) {
+ (*i)->realtime_handle_transport_stopped ();
+ }
+}
+
+void
+PluginInsert::realtime_locate ()
+{
+ for (Plugins::iterator i = _plugins.begin(); i != _plugins.end(); ++i) {
+ (*i)->realtime_locate ();
+ }
+}
+
+void
+PluginInsert::monitoring_changed ()
+{
+ for (Plugins::iterator i = _plugins.begin(); i != _plugins.end(); ++i) {
+ (*i)->monitoring_changed ();
+ }
+}