Allow to migrate sessions with VST plugins
authorRobin Gareus <robin@gareus.org>
Thu, 17 Nov 2016 13:05:40 +0000 (14:05 +0100)
committerRobin Gareus <robin@gareus.org>
Thu, 17 Nov 2016 13:06:41 +0000 (14:06 +0100)
libs/ardour/plugin_insert.cc

index d3bbbf0c0ddcfac3b92152e30da17e97cd0b1fac..6be3a10dda31516600d8673f1131f58301f74bb9 100644 (file)
@@ -2401,9 +2401,7 @@ PluginInsert::set_state(const XMLNode& node, int version)
 
        if (prop == 0) {
 #ifdef WINDOWS_VST_SUPPORT
-               /* older sessions contain VST plugins with only an "id" field.
-                */
-
+               /* older sessions contain VST plugins with only an "id" field.  */
                if (type == ARDOUR::Windows_VST) {
                        prop = node.property ("id");
                }
@@ -2411,7 +2409,6 @@ PluginInsert::set_state(const XMLNode& node, int version)
 
 #ifdef LXVST_SUPPORT
                /*There shouldn't be any older sessions with linuxVST support.. but anyway..*/
-
                if (type == ARDOUR::LXVST) {
                        prop = node.property ("id");
                }
@@ -2427,24 +2424,24 @@ PluginInsert::set_state(const XMLNode& node, int version)
 
        boost::shared_ptr<Plugin> plugin = find_plugin (_session, prop->value(), type);
 
-       /* treat linux and windows VST plugins equivalent if they have the same uniqueID
+       /* treat VST plugins equivalent if they have the same uniqueID
         * allow to move sessions windows <> linux */
 #ifdef LXVST_SUPPORT
-       if (plugin == 0 && type == ARDOUR::Windows_VST) {
+       if (plugin == 0 && (type == ARDOUR::Windows_VST || type == ARDOUR::MacVST) {
                type = ARDOUR::LXVST;
                plugin = find_plugin (_session, prop->value(), type);
        }
 #endif
 
 #ifdef WINDOWS_VST_SUPPORT
-       if (plugin == 0 && type == ARDOUR::LXVST) {
+       if (plugin == 0 && (type == ARDOUR::LXVST || type == ARDOUR::MacVST)) {
                type = ARDOUR::Windows_VST;
                plugin = find_plugin (_session, prop->value(), type);
        }
 #endif
 
 #ifdef MACVST_SUPPORT
-       if (plugin == 0 && type == ARDOUR::MacVST) {
+       if (plugin == 0 && (type == ARDOUR::Windows_VST || type == ARDOUR::LXVST)) {
                type = ARDOUR::MacVST;
                plugin = find_plugin (_session, prop->value(), type);
        }