@@ -51,14 +51,10 @@ | |||
#include "AAX_IViewContainer.h" | |||
#if JUCE_WINDOWS | |||
static HINSTANCE moduleInstance = 0; | |||
extern "C" BOOL WINAPI DllMain (HINSTANCE instance, DWORD selector, LPVOID) | |||
void __stdcall DllMainAAX (HINSTANCE instance, DWORD reason) | |||
{ | |||
if (selector == DLL_PROCESS_ATTACH) | |||
moduleInstance = instance; | |||
return true; | |||
if (reason == DLL_PROCESS_ATTACH) | |||
Process::setCurrentModuleInstanceHandle (instance); | |||
} | |||
#endif | |||
@@ -140,10 +136,6 @@ struct AAXClasses | |||
private: | |||
static void initialise() | |||
{ | |||
#if JUCE_WINDOWS | |||
Process::setCurrentModuleInstanceHandle (moduleInstance); | |||
#endif | |||
initialiseJuce_GUI(); | |||
} | |||
@@ -31,9 +31,9 @@ | |||
#if JucePlugin_Build_RTAS | |||
#include "juce_RTAS_DigiCode_Header.h" | |||
#include "juce_RTAS_DigiCode_Header.h" | |||
/* | |||
/* | |||
This file is used to include and build the required digidesign CPP files without your project | |||
needing to reference the files directly. Because these files will be found via your include path, | |||
this means that the project doesn't have to change to cope with people's SDKs being in different | |||
@@ -46,47 +46,63 @@ | |||
If you get an error building the includes statements below, check your paths - there's a full | |||
list of the necessary Digidesign paths in juce_RTAS_Wrapper.cpp | |||
*/ | |||
#if WINDOWS_VERSION | |||
//============================================================================== | |||
*/ | |||
#undef _UNICODE | |||
#undef UNICODE | |||
#if JucePlugin_Build_VST | |||
#if WINDOWS_VERSION | |||
#undef _UNICODE | |||
#undef UNICODE | |||
#define DllMain DllMainRTAS | |||
#include <DLLMain.cpp> | |||
#undef DllMain | |||
#include <DefaultSwap.cpp> | |||
extern BOOL WINAPI DllMainVST (HINSTANCE instance, DWORD dwReason, LPVOID); | |||
// This overloaded DllMain can work as either an RTAS or a VST.. | |||
extern "C" BOOL WINAPI DllMain (HINSTANCE hInstance, DWORD ul_reason_for_call, LPVOID lpReserved) | |||
{ | |||
if (GetModuleHandleA ("DAE.DLL") != 0) | |||
return DllMainRTAS (hInstance, ul_reason_for_call, lpReserved); | |||
else | |||
return DllMainVST (hInstance, ul_reason_for_call, lpReserved); | |||
} | |||
#else | |||
#include <DLLMain.cpp> | |||
#include <PlugInInitialize.cpp> | |||
#include <Dispatcher.cpp> | |||
#endif | |||
#include <DefaultSwap.cpp> | |||
#else | |||
#if _MSC_VER | |||
short __stdcall NewPlugIn (void*) { return 0; } | |||
short __stdcall _PI_GetRoutineDescriptor (long, void*) { return 0; } | |||
#endif | |||
#else | |||
//============================================================================== | |||
#include <PlugInInitialize.cpp> | |||
#include <Dispatcher.cpp> | |||
#endif | |||
#else | |||
//============================================================================== | |||
#if _MSC_VER | |||
short __stdcall NewPlugIn (void*) { return 0; } | |||
short __stdcall _PI_GetRoutineDescriptor (long, void*) { return 0; } | |||
#endif | |||
#if ! JucePlugin_Build_RTAS | |||
#include <windows.h> | |||
#endif | |||
#if JucePlugin_Build_VST | |||
extern void __stdcall DllMainVST (HINSTANCE, DWORD); | |||
#endif | |||
#if JucePlugin_Build_AAX | |||
extern void __stdcall DllMainAAX (HINSTANCE, DWORD); | |||
#endif | |||
extern "C" BOOL WINAPI DllMain (HINSTANCE instance, DWORD reason, LPVOID reserved) | |||
{ | |||
(void) reserved; | |||
#if JucePlugin_Build_VST | |||
DllMainVST (instance, reason); | |||
#endif | |||
#if JucePlugin_Build_AAX | |||
DllMainAAX (instance, reason); | |||
#endif | |||
#if JucePlugin_Build_RTAS | |||
if (GetModuleHandleA ("DAE.DLL") != 0) | |||
return DllMainRTAS (instance, reason, reserved); | |||
#endif | |||
return TRUE; | |||
} | |||
#endif |
@@ -1477,19 +1477,23 @@ namespace | |||
} | |||
} | |||
#if ! JUCE_WINDOWS | |||
#define JUCE_EXPORTED_FUNCTION extern "C" __attribute__ ((visibility("default"))) | |||
#endif | |||
//============================================================================== | |||
// Mac startup code.. | |||
#if JUCE_MAC | |||
extern "C" __attribute__ ((visibility("default"))) AEffect* VSTPluginMain (audioMasterCallback audioMaster); | |||
extern "C" __attribute__ ((visibility("default"))) AEffect* VSTPluginMain (audioMasterCallback audioMaster) | |||
JUCE_EXPORTED_FUNCTION AEffect* VSTPluginMain (audioMasterCallback audioMaster); | |||
JUCE_EXPORTED_FUNCTION AEffect* VSTPluginMain (audioMasterCallback audioMaster) | |||
{ | |||
initialiseMac(); | |||
return pluginEntryPoint (audioMaster); | |||
} | |||
extern "C" __attribute__ ((visibility("default"))) AEffect* main_macho (audioMasterCallback audioMaster); | |||
extern "C" __attribute__ ((visibility("default"))) AEffect* main_macho (audioMasterCallback audioMaster) | |||
JUCE_EXPORTED_FUNCTION AEffect* main_macho (audioMasterCallback audioMaster); | |||
JUCE_EXPORTED_FUNCTION AEffect* main_macho (audioMasterCallback audioMaster) | |||
{ | |||
initialiseMac(); | |||
return pluginEntryPoint (audioMaster); | |||
@@ -1499,15 +1503,15 @@ namespace | |||
// Linux startup code.. | |||
#elif JUCE_LINUX | |||
extern "C" __attribute__ ((visibility("default"))) AEffect* VSTPluginMain (audioMasterCallback audioMaster) | |||
JUCE_EXPORTED_FUNCTION AEffect* VSTPluginMain (audioMasterCallback audioMaster); | |||
JUCE_EXPORTED_FUNCTION AEffect* VSTPluginMain (audioMasterCallback audioMaster) | |||
{ | |||
SharedMessageThread::getInstance(); | |||
return pluginEntryPoint (audioMaster); | |||
} | |||
extern "C" __attribute__ ((visibility("default"))) AEffect* main_plugin (audioMasterCallback audioMaster) asm ("main"); | |||
extern "C" __attribute__ ((visibility("default"))) AEffect* main_plugin (audioMasterCallback audioMaster) | |||
JUCE_EXPORTED_FUNCTION AEffect* main_plugin (audioMasterCallback audioMaster) asm ("main"); | |||
JUCE_EXPORTED_FUNCTION AEffect* main_plugin (audioMasterCallback audioMaster) | |||
{ | |||
return VSTPluginMain (audioMaster); | |||
} | |||
@@ -1532,16 +1536,10 @@ namespace | |||
} | |||
#endif | |||
#if JucePlugin_Build_RTAS | |||
BOOL WINAPI DllMainVST (HINSTANCE instance, DWORD dwReason, LPVOID) | |||
#else | |||
extern "C" BOOL WINAPI DllMain (HINSTANCE instance, DWORD dwReason, LPVOID) | |||
#endif | |||
void __stdcall DllMainVST (HINSTANCE instance, DWORD reason) | |||
{ | |||
if (dwReason == DLL_PROCESS_ATTACH) | |||
if (reason == DLL_PROCESS_ATTACH) | |||
Process::setCurrentModuleInstanceHandle (instance); | |||
return TRUE; | |||
} | |||
#endif | |||
@@ -38,6 +38,9 @@ struct CustomMouseCursorInfo | |||
Image image; | |||
const Point<int> hotspot; | |||
float scaleFactor; | |||
private: | |||
JUCE_DECLARE_NON_COPYABLE (CustomMouseCursorInfo); | |||
}; | |||
class MouseCursor::SharedCursorHandle | |||