From 97587996ee9db30ce00190bdcedd8210490b99f5 Mon Sep 17 00:00:00 2001 From: pepper Date: Sat, 31 Jan 2015 21:41:28 -0800 Subject: backup vst 2.4 --- public.sdk/source/vst2.x/vstplugmain.cpp | 68 ++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 public.sdk/source/vst2.x/vstplugmain.cpp (limited to 'public.sdk/source/vst2.x/vstplugmain.cpp') 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 +void* hInstance; + +extern "C" { +BOOL WINAPI DllMain (HINSTANCE hInst, DWORD dwReason, LPVOID lpvReserved) +{ + hInstance = hInst; + return 1; +} +} // extern "C" +#endif -- cgit v1.2.3-70-g09d2