summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorSampo Savolainen <v2@iki.fi>2008-10-13 19:45:20 +0000
committerSampo Savolainen <v2@iki.fi>2008-10-13 19:45:20 +0000
commitd9106e99a456a7aa45fc4a9a3e4d4282f63ed59d (patch)
treee2fc0b51afbe15aae34c923219db107284bc2887 /libs
parentb3634a723d98baf19e310ef7dba52534963cf4e8 (diff)
First draft of the EQ visualization system. Now force fed to all plugin UIs.
git-svn-id: svn://localhost/ardour2/branches/3.0@3958 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/plugin_insert.h6
-rw-r--r--libs/ardour/plugin_insert.cc19
2 files changed, 25 insertions, 0 deletions
diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h
index d83b41d1e0..3d4a4b727a 100644
--- a/libs/ardour/ardour/plugin_insert.h
+++ b/libs/ardour/ardour/plugin_insert.h
@@ -23,6 +23,8 @@
#include <vector>
#include <string>
+#include <boost/weak_ptr.hpp>
+
#include <sigc++/signal.h>
#include <ardour/ardour.h>
#include <ardour/types.h>
@@ -102,6 +104,8 @@ class PluginInsert : public Processor
nframes_t signal_latency() const;
+ boost::shared_ptr<Plugin> get_impulse_analysis_plugin();
+
private:
void parameter_changed (Evoral::Parameter, float);
@@ -112,6 +116,8 @@ class PluginInsert : public Processor
float default_parameter_value (const Evoral::Parameter& param);
std::vector<boost::shared_ptr<Plugin> > _plugins;
+
+ boost::weak_ptr<Plugin> _impulseAnalysisPlugin;
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);
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index eede6b3388..2c08473b54 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -899,6 +899,11 @@ PluginInsert::PluginControl::set_value (float val)
(*i)->set_parameter (_list->parameter().id(), val);
}
+ boost::shared_ptr<Plugin> iasp = _plugin->_impulseAnalysisPlugin.lock();
+ if (iasp) {
+ iasp->set_parameter (_list->parameter().id(), val);
+ }
+
AutomationControl::set_value(val);
}
@@ -925,3 +930,17 @@ PluginInsert::PluginControl::get_value (void) const
}*/
}
+boost::shared_ptr<Plugin>
+PluginInsert::get_impulse_analysis_plugin()
+{
+ boost::shared_ptr<Plugin> ret;
+ if (_impulseAnalysisPlugin.expired()) {
+ ret = plugin_factory(_plugins[0]);
+ _impulseAnalysisPlugin = ret;
+ } else {
+ ret = _impulseAnalysisPlugin.lock();
+ }
+
+ return ret;
+}
+