try VST2.4's VSTPluginMain first
authorRobin Gareus <robin@gareus.org>
Thu, 17 Nov 2016 12:03:36 +0000 (13:03 +0100)
committerRobin Gareus <robin@gareus.org>
Thu, 17 Nov 2016 12:03:36 +0000 (13:03 +0100)
This fixes a crash with loading u-he Diva on windows.

libs/ardour/linux_vst_support.cc
libs/fst/vstwin.c

index 065e8bd755b9e79674b7cc05d480642860c89eba..be16340f2a4ef9754f7182d04097d4e5762087ba 100644 (file)
@@ -219,12 +219,10 @@ vstfx_load (const char *path)
 
        /*Find the main entry point into the plugin*/
 
-       fhandle->main_entry = (main_entry_t) dlsym(fhandle->dll, "main");
+       fhandle->main_entry = (main_entry_t) dlsym(fhandle->dll, "VSTPluginMain");
 
        if (fhandle->main_entry == 0) {
-               if ((fhandle->main_entry = (main_entry_t) dlsym(fhandle->dll, "VSTPluginMain")) != 0) {
-                       PBD::warning << path << _(": is a VST >= 2.4 - this plugin may or may not function correctly with this version of Ardour.") << endmsg;
-               }
+               fhandle->main_entry = (main_entry_t) dlsym(fhandle->dll, "main");
        }
 
        if (fhandle->main_entry == 0)
index fcfa8368935baaa8c87dc41c00c8817aac05df4c..ec2f290cce1ea597a68df03ef1d7e2336fd0e49a 100644 (file)
@@ -477,13 +477,10 @@ fst_load (const char *path)
                        return NULL;
                }
 
-               fhandle->main_entry = (main_entry_t) GetProcAddress ((HMODULE)fhandle->dll, "main");
+               fhandle->main_entry = (main_entry_t) GetProcAddress ((HMODULE)fhandle->dll, "VSTPluginMain");
 
                if (fhandle->main_entry == 0) {
-                       if ((fhandle->main_entry = (main_entry_t) GetProcAddress ((HMODULE)fhandle->dll, "VSTPluginMain"))) {
-                               fprintf(stderr, "VST >= 2.4 plugin '%s'\n", path);
-                               //PBD::warning << path << _(": is a VST >= 2.4 - this plugin may or may not function correctly with this version of Ardour.") << endmsg;
-                       }
+                       fhandle->main_entry = (main_entry_t) GetProcAddress ((HMODULE)fhandle->dll, "main");
                }
 
                if (fhandle->main_entry == 0) {