38JUCE_API
void JUCE_CALLTYPE initialiseJuce_GUI();
48JUCE_API
void JUCE_CALLTYPE shutdownJuce_GUI();
88 #define START_JUCE_APPLICATION(AppClass)
90 #if JUCE_WINDOWS && ! defined (_CONSOLE)
91 #define JUCE_MAIN_FUNCTION int __stdcall WinMain (struct HINSTANCE__*, struct HINSTANCE__*, char*, int)
92 #define JUCE_MAIN_FUNCTION_ARGS
94 #define JUCE_MAIN_FUNCTION int main (int argc, char* argv[])
95 #define JUCE_MAIN_FUNCTION_ARGS argc, (const char**) argv
100 #define JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
101 juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); } \
102 void* juce_GetIOSCustomDelegateClass() { return nullptr; }
104 #define JUCE_CREATE_APPLICATION_DEFINE_CUSTOM_DELEGATE(AppClass, DelegateClass) \
105 juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); } \
106 void* juce_GetIOSCustomDelegateClass() { return [DelegateClass class]; }
108 #define JUCE_MAIN_FUNCTION_DEFINITION \
109 extern "C" JUCE_MAIN_FUNCTION \
111 juce::JUCEApplicationBase::createInstance = &juce_CreateApplication; \
112 juce::JUCEApplicationBase::iOSCustomDelegate = juce_GetIOSCustomDelegateClass(); \
113 return juce::JUCEApplicationBase::main (JUCE_MAIN_FUNCTION_ARGS); \
118 #define JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
119 extern "C" juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); }
121 #define JUCE_MAIN_FUNCTION_DEFINITION
125 #define JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
126 juce::JUCEApplicationBase* juce_CreateApplication(); \
127 juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); }
129 #define JUCE_MAIN_FUNCTION_DEFINITION \
130 extern "C" JUCE_MAIN_FUNCTION \
132 juce::JUCEApplicationBase::createInstance = &juce_CreateApplication; \
133 return juce::JUCEApplicationBase::main (JUCE_MAIN_FUNCTION_ARGS); \
138 #if JucePlugin_Build_Standalone
139 #if JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP
140 #define START_JUCE_APPLICATION(AppClass) JUCE_CREATE_APPLICATION_DEFINE(AppClass)
142 #define START_JUCE_APPLICATION_WITH_CUSTOM_DELEGATE(AppClass, DelegateClass) JUCE_CREATE_APPLICATION_DEFINE_CUSTOM_DELEGATE(AppClass, DelegateClass)
145 #define START_JUCE_APPLICATION(AppClass) static_assert(false, "You are trying to use START_JUCE_APPLICATION in an audio plug-in. Define JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP=1 if you want to use a custom standalone target app.");
147 #define START_JUCE_APPLICATION_WITH_CUSTOM_DELEGATE(AppClass, DelegateClass) static_assert(false, "You are trying to use START_JUCE_APPLICATION in an audio plug-in. Define JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP=1 if you want to use a custom standalone target app.");
152 #define START_JUCE_APPLICATION(AppClass) \
153 JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
154 JUCE_MAIN_FUNCTION_DEFINITION
197 #define START_JUCE_APPLICATION_WITH_CUSTOM_DELEGATE(AppClass, DelegateClass) \
198 JUCE_CREATE_APPLICATION_DEFINE_CUSTOM_DELEGATE(AppClass, DelegateClass) \
199 JUCE_MAIN_FUNCTION_DEFINITION