summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/ardour/plugin.h2
-rw-r--r--libs/ardour/ardour/vst_plugin.h2
-rw-r--r--libs/ardour/vst_plugin.cc8
3 files changed, 11 insertions, 1 deletions
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h
index e4efb2a441..ce9c2f4268 100644
--- a/libs/ardour/ardour/plugin.h
+++ b/libs/ardour/ardour/plugin.h
@@ -333,7 +333,7 @@ protected:
/* Called when a parameter of the plugin is changed outside of this
* host's control (typical via a plugin's own GUI/editor)
*/
- void parameter_changed_externally (uint32_t which, float val);
+ virtual void parameter_changed_externally (uint32_t which, float val);
/* should be overridden by plugin API specific derived types to
* actually implement changing the parameter. The derived type should
diff --git a/libs/ardour/ardour/vst_plugin.h b/libs/ardour/ardour/vst_plugin.h
index 00bf680217..f96b35ff4b 100644
--- a/libs/ardour/ardour/vst_plugin.h
+++ b/libs/ardour/ardour/vst_plugin.h
@@ -40,6 +40,7 @@ class PluginInsert;
class LIBARDOUR_API VSTPlugin : public Plugin
{
public:
+ friend class Session;
VSTPlugin (AudioEngine &, Session &, VSTHandle *);
VSTPlugin (const VSTPlugin& other);
virtual ~VSTPlugin ();
@@ -99,6 +100,7 @@ public:
protected:
+ void parameter_changed_externally (uint32_t which, float val);
void set_plugin (AEffect *);
gchar* get_chunk (bool) const;
int set_chunk (gchar const *, bool);
diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc
index 44972151f0..1088e80c70 100644
--- a/libs/ardour/vst_plugin.cc
+++ b/libs/ardour/vst_plugin.cc
@@ -137,6 +137,14 @@ VSTPlugin::set_parameter (uint32_t which, float newval)
}
}
+void
+VSTPlugin::parameter_changed_externally (uint32_t which, float value )
+{
+ ParameterChangedExternally (which, value); /* EMIT SIGNAL */
+ Plugin::set_parameter (which, value);
+}
+
+
uint32_t
VSTPlugin::nth_parameter (uint32_t n, bool& ok) const
{