summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/plugin_insert.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour/plugin_insert.h')
-rw-r--r--libs/ardour/ardour/plugin_insert.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h
index 3d4a4b727a..5cf4b4cbe0 100644
--- a/libs/ardour/ardour/plugin_insert.h
+++ b/libs/ardour/ardour/plugin_insert.h
@@ -106,6 +106,16 @@ class PluginInsert : public Processor
boost::shared_ptr<Plugin> get_impulse_analysis_plugin();
+ sigc::signal<void, BufferSet*, BufferSet*> AnalysisDataGathered;
+ void collect_signal_for_analysis(nframes_t nframes) {
+ // called from outside the audio thread, so this should be safe
+ _signal_analysis_input_bufferset.ensure_buffers(input_streams(), nframes);
+ _signal_analysis_output_bufferset.ensure_buffers(output_streams(), nframes);
+
+ _signal_analysis_collect_nframes_max = nframes;
+ _signal_analysis_collected_nframes = 0;
+ }
+
private:
void parameter_changed (Evoral::Parameter, float);
@@ -118,6 +128,12 @@ class PluginInsert : public Processor
std::vector<boost::shared_ptr<Plugin> > _plugins;
boost::weak_ptr<Plugin> _impulseAnalysisPlugin;
+
+ nframes_t _signal_analysis_collected_nframes;
+ nframes_t _signal_analysis_collect_nframes_max;
+
+ BufferSet _signal_analysis_input_bufferset;
+ BufferSet _signal_analysis_output_bufferset;
void automation_run (BufferSet& bufs, nframes_t nframes, nframes_t offset);
void connect_and_run (BufferSet& bufs, nframes_t nframes, nframes_t offset, bool with_auto, nframes_t now = 0);