Fix a problem where VST automation data wasn't getting written (if the adjustments... 4.3
authorJohn Emmas <johne53@tiscali.co.uk>
Wed, 14 Oct 2015 13:54:27 +0000 (14:54 +0100)
committerJohn Emmas <johne53@tiscali.co.uk>
Wed, 14 Oct 2015 13:54:27 +0000 (14:54 +0100)
libs/ardour/ardour/plugin.h
libs/ardour/ardour/vst_plugin.h
libs/ardour/plugin.cc
libs/ardour/session_vst.cc
libs/ardour/vst_plugin.cc

index f9831afcad3e06060577e6346dd6be5d1dfeb028..2554a6816c01a5e6fa94f6623d6152c29a73ff3c 100644 (file)
@@ -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.
index 8e2e313c1f92f24512f25dac6d5d32040ee2bcbd..d77d3801aa0dbc4169bd75fb907ba1a664b89771 100644 (file)
@@ -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);
index 89f6d24137f862f9f4ddc13cfd0e7f375c409806..f14c56798b65e4cb404c8cf6b8162037baa90fdf 100644 (file)
@@ -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*/)
 {
index a9f404fcb21695330e9842ad3a078b26f186b98d..9bf28473317e556166a68888988586d418144e29 100644 (file)
@@ -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;
 
index 1614b1d8fe394cc6a6ee62a6c9e9737a91347aec..08db7dec5e56fa18d533a366a13dd6f9377e51bf 100644 (file)
@@ -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
 {