diff options
Diffstat (limited to 'public.sdk/source/vst2.x/vstplugmain.cpp')
| -rw-r--r-- | public.sdk/source/vst2.x/vstplugmain.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/public.sdk/source/vst2.x/vstplugmain.cpp b/public.sdk/source/vst2.x/vstplugmain.cpp new file mode 100644 index 0000000..78e7b34 --- /dev/null +++ b/public.sdk/source/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 |
