aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/WinVST/Wider/vst2.x/vstplugmain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/WinVST/Wider/vst2.x/vstplugmain.cpp')
-rwxr-xr-xplugins/WinVST/Wider/vst2.x/vstplugmain.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/plugins/WinVST/Wider/vst2.x/vstplugmain.cpp b/plugins/WinVST/Wider/vst2.x/vstplugmain.cpp
new file mode 100755
index 0000000..7e1ae71
--- /dev/null
+++ b/plugins/WinVST/Wider/vst2.x/vstplugmain.cpp
@@ -0,0 +1,68 @@
+//-------------------------------------------------------------------------------------------------------
+// VST Plug-Ins SDK
+// Version 2.4 $Date: 2006/08/29 12:08:50 $
+//
+// Category : VST 2.x Classes
+// Filename : vstplugmain.cpp
+// Created by : Steinberg Media Technologies
+// Description : VST Plug-In Main Entry
+//
+// © 2006, Steinberg Media Technologies, All Rights Reserved
+//-------------------------------------------------------------------------------------------------------
+
+#include "audioeffect.h"
+
+//------------------------------------------------------------------------
+/** Must be implemented externally. */
+extern AudioEffect* createEffectInstance (audioMasterCallback audioMaster);
+
+extern "C" {
+
+#if defined (__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
+ #define VST_EXPORT __attribute__ ((visibility ("default")))
+#else
+ #define VST_EXPORT
+#endif
+
+//------------------------------------------------------------------------
+/** Prototype of the export function main */
+//------------------------------------------------------------------------
+VST_EXPORT AEffect* VSTPluginMain (audioMasterCallback audioMaster)
+{
+ // Get VST Version of the Host
+ if (!audioMaster (0, audioMasterVersion, 0, 0, 0, 0))
+ return 0; // old version
+
+ // Create the AudioEffect
+ AudioEffect* effect = createEffectInstance (audioMaster);
+ if (!effect)
+ return 0;
+
+ // Return the VST AEffect structur
+ return effect->getAeffect ();
+}
+
+// support for old hosts not looking for VSTPluginMain
+#if (TARGET_API_MAC_CARBON && __ppc__)
+VST_EXPORT AEffect* main_macho (audioMasterCallback audioMaster) { return VSTPluginMain (audioMaster); }
+#elif WIN32
+VST_EXPORT AEffect* MAIN (audioMasterCallback audioMaster) { return VSTPluginMain (audioMaster); }
+#elif BEOS
+VST_EXPORT AEffect* main_plugin (audioMasterCallback audioMaster) { return VSTPluginMain (audioMaster); }
+#endif
+
+} // extern "C"
+
+//------------------------------------------------------------------------
+#if WIN32
+#include <windows.h>
+void* hInstance;
+
+extern "C" {
+BOOL WINAPI DllMain (HINSTANCE hInst, DWORD dwReason, LPVOID lpvReserved)
+{
+ hInstance = hInst;
+ return 1;
+}
+} // extern "C"
+#endif