38JUCE_API
void JUCE_CALLTYPE initialiseJuce_GUI();
48JUCE_API
void JUCE_CALLTYPE shutdownJuce_GUI();
91 #define START_JUCE_APPLICATION(AppClass)
93 #if JUCE_WINDOWS && ! defined (_CONSOLE)
94 #define JUCE_MAIN_FUNCTION \
95 JUCE_BEGIN_IGNORE_WARNINGS_MSVC (28251) \
96 int __stdcall WinMain (struct HINSTANCE__*, struct HINSTANCE__*, char*, int) \
97 JUCE_END_IGNORE_WARNINGS_MSVC
98 #define JUCE_MAIN_FUNCTION_ARGS
100 #define JUCE_MAIN_FUNCTION int main (int argc, char* argv[])
101 #define JUCE_MAIN_FUNCTION_ARGS argc, (const char**) argv
106 #define JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
107 JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wmissing-prototypes") \
108 juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); } \
109 void* juce_GetIOSCustomDelegateClass() { return nullptr; } \
110 JUCE_END_IGNORE_WARNINGS_GCC_LIKE
112 #define JUCE_CREATE_APPLICATION_DEFINE_CUSTOM_DELEGATE(AppClass, DelegateClass) \
113 JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wmissing-prototypes") \
114 juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); } \
115 void* juce_GetIOSCustomDelegateClass() { return [DelegateClass class]; } \
116 JUCE_END_IGNORE_WARNINGS_GCC_LIKE
118 #define JUCE_MAIN_FUNCTION_DEFINITION \
119 extern "C" JUCE_MAIN_FUNCTION \
121 juce::JUCEApplicationBase::createInstance = &juce_CreateApplication; \
122 juce::JUCEApplicationBase::iOSCustomDelegate = juce_GetIOSCustomDelegateClass(); \
123 return juce::JUCEApplicationBase::main (JUCE_MAIN_FUNCTION_ARGS); \
128 #define JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
129 extern "C" juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); }
131 #define JUCE_MAIN_FUNCTION_DEFINITION
135 #define JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
136 juce::JUCEApplicationBase* juce_CreateApplication(); \
137 juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); }
139 #define JUCE_MAIN_FUNCTION_DEFINITION \
140 extern "C" JUCE_MAIN_FUNCTION \
142 juce::JUCEApplicationBase::createInstance = &juce_CreateApplication; \
143 return juce::JUCEApplicationBase::main (JUCE_MAIN_FUNCTION_ARGS); \
148 #if JucePlugin_Build_Standalone
149 #if JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP
150 #define START_JUCE_APPLICATION(AppClass) JUCE_CREATE_APPLICATION_DEFINE(AppClass)
152 #define START_JUCE_APPLICATION_WITH_CUSTOM_DELEGATE(AppClass, DelegateClass) JUCE_CREATE_APPLICATION_DEFINE_CUSTOM_DELEGATE(AppClass, DelegateClass)
155 #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.");
157 #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.");
162 #define START_JUCE_APPLICATION(AppClass) \
163 JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wmissing-prototypes") \
164 JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
165 JUCE_MAIN_FUNCTION_DEFINITION \
166 JUCE_END_IGNORE_WARNINGS_GCC_LIKE
209 #define START_JUCE_APPLICATION_WITH_CUSTOM_DELEGATE(AppClass, DelegateClass) \
210 JUCE_CREATE_APPLICATION_DEFINE_CUSTOM_DELEGATE(AppClass, DelegateClass) \
211 JUCE_MAIN_FUNCTION_DEFINITION