summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-11-13 16:34:27 +0100
committerRobin Gareus <robin@gareus.org>2016-11-13 16:35:06 +0100
commitec31741ee6d72fe48bdf35eaaf5c0a9c59f328d0 (patch)
tree2a6186d4a0d32dcb85e7935149411136e353f064 /libs
parente0766e8f74e740cd24645f3712873a1b669e4995 (diff)
copy VST state on copy construction
This fixes issues with replicate instances & plugin-analysis instances not using the same set of parameters.
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/lxvst_plugin.cc6
-rw-r--r--libs/ardour/mac_vst_plugin.cc6
-rw-r--r--libs/ardour/windows_vst_plugin.cc6
3 files changed, 16 insertions, 2 deletions
diff --git a/libs/ardour/lxvst_plugin.cc b/libs/ardour/lxvst_plugin.cc
index 3939048ad4..91ae757883 100644
--- a/libs/ardour/lxvst_plugin.cc
+++ b/libs/ardour/lxvst_plugin.cc
@@ -58,7 +58,11 @@ LXVSTPlugin::LXVSTPlugin (const LXVSTPlugin &other)
_plugin = _state->plugin;
- // Plugin::setup_controls ();
+ XMLNode* root = new XMLNode (other.state_node_name ());
+ LocaleGuard lg;
+ other.add_state (root);
+ set_state (*root, Stateful::loading_state_version);
+ delete root;
}
LXVSTPlugin::~LXVSTPlugin ()
diff --git a/libs/ardour/mac_vst_plugin.cc b/libs/ardour/mac_vst_plugin.cc
index 08c39b1d35..2cb7301ce8 100644
--- a/libs/ardour/mac_vst_plugin.cc
+++ b/libs/ardour/mac_vst_plugin.cc
@@ -58,7 +58,11 @@ MacVSTPlugin::MacVSTPlugin (const MacVSTPlugin &other)
_plugin = _state->plugin;
- // Plugin::setup_controls ();
+ XMLNode* root = new XMLNode (other.state_node_name ());
+ LocaleGuard lg;
+ other.add_state (root);
+ set_state (*root, Stateful::loading_state_version);
+ delete root;
}
MacVSTPlugin::~MacVSTPlugin ()
diff --git a/libs/ardour/windows_vst_plugin.cc b/libs/ardour/windows_vst_plugin.cc
index 17cfa1eed7..256d7f89a8 100644
--- a/libs/ardour/windows_vst_plugin.cc
+++ b/libs/ardour/windows_vst_plugin.cc
@@ -56,6 +56,12 @@ WindowsVSTPlugin::WindowsVSTPlugin (const WindowsVSTPlugin &other)
Session::vst_current_loading_id = 0;
_plugin = _state->plugin;
+
+ XMLNode* root = new XMLNode (other.state_node_name ());
+ LocaleGuard lg;
+ other.add_state (root);
+ set_state (*root, Stateful::loading_state_version);
+ delete root;
}
WindowsVSTPlugin::~WindowsVSTPlugin ()