diff options
author | Sampo Savolainen <v2@iki.fi> | 2008-10-13 19:45:20 +0000 |
---|---|---|
committer | Sampo Savolainen <v2@iki.fi> | 2008-10-13 19:45:20 +0000 |
commit | d9106e99a456a7aa45fc4a9a3e4d4282f63ed59d (patch) | |
tree | e2fc0b51afbe15aae34c923219db107284bc2887 /libs | |
parent | b3634a723d98baf19e310ef7dba52534963cf4e8 (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.h | 6 | ||||
-rw-r--r-- | libs/ardour/plugin_insert.cc | 19 |
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; +} + |