summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Emmas <johne53@tiscali.co.uk>2015-10-14 14:54:27 +0100
committerJohn Emmas <johne53@tiscali.co.uk>2015-10-14 14:54:27 +0100
commit8d46cc99fe2778c5658b659f4f1fe6ac828bb9e9 (patch)
tree8d0002050f40677aed4f1180c67fc29434923778
parent334cc37e1b99df2282150ece22e6cd056fedfa07 (diff)
Fix a problem where VST automation data wasn't getting written (if the adjustments were made from the plugin's own controls)4.3
-rw-r--r--libs/ardour/ardour/plugin.h1
-rw-r--r--libs/ardour/ardour/vst_plugin.h1
-rw-r--r--libs/ardour/plugin.cc6
-rw-r--r--libs/ardour/session_vst.cc2
-rw-r--r--libs/ardour/vst_plugin.cc6
5 files changed, 15 insertions, 1 deletions
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h
index f9831afcad..2554a6816c 100644
--- a/libs/ardour/ardour/plugin.h
+++ b/libs/ardour/ardour/plugin.h
@@ -274,6 +274,7 @@ protected:
friend class PluginInsert;
virtual void set_parameter (uint32_t which, float val);
+ virtual void set_parameter_automated (uint32_t which, float val);
/** Do the actual saving of the current plugin settings to a preset of the provided name.
* Should return a URI on success, or an empty string on failure.
diff --git a/libs/ardour/ardour/vst_plugin.h b/libs/ardour/ardour/vst_plugin.h
index 8e2e313c1f..d77d3801aa 100644
--- a/libs/ardour/ardour/vst_plugin.h
+++ b/libs/ardour/ardour/vst_plugin.h
@@ -46,6 +46,7 @@ public:
float get_parameter (uint32_t port) const;
uint32_t nth_parameter (uint32_t port, bool& ok) const;
void set_parameter (uint32_t port, float val);
+ void set_parameter_automated (uint32_t port, float val);
bool load_preset (PresetRecord);
int get_parameter_descriptor (uint32_t which, ParameterDescriptor&) const;
std::string describe_parameter (Evoral::Parameter);
diff --git a/libs/ardour/plugin.cc b/libs/ardour/plugin.cc
index 89f6d24137..f14c56798b 100644
--- a/libs/ardour/plugin.cc
+++ b/libs/ardour/plugin.cc
@@ -365,6 +365,12 @@ Plugin::set_parameter (uint32_t which, float)
ParameterChanged (which, get_parameter (which)); /* EMIT SIGNAL */
}
+void
+Plugin::set_parameter_automated (uint32_t which, float val)
+{
+ Plugin::set_parameter (which, val);
+}
+
int
Plugin::set_state (const XMLNode& node, int /*version*/)
{
diff --git a/libs/ardour/session_vst.cc b/libs/ardour/session_vst.cc
index a9f404fcb2..9bf2847331 100644
--- a/libs/ardour/session_vst.cc
+++ b/libs/ardour/session_vst.cc
@@ -86,7 +86,7 @@ intptr_t Session::vst_callback (
SHOW_CALLBACK ("audioMasterAutomate");
// index, value, returns 0
if (plug) {
- plug->set_parameter (index, opt);
+ plug->set_parameter_automated (index, opt);
}
return 0;
diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc
index 1614b1d8fe..08db7dec5e 100644
--- a/libs/ardour/vst_plugin.cc
+++ b/libs/ardour/vst_plugin.cc
@@ -117,6 +117,12 @@ VSTPlugin::set_parameter (uint32_t which, float newval)
}
}
+void
+VSTPlugin::set_parameter_automated (uint32_t which, float newval)
+{
+ Plugin::set_parameter_automated (which, newval);
+}
+
uint32_t
VSTPlugin::nth_parameter (uint32_t n, bool& ok) const
{