42JUCE_API void JUCE_CALLTYPE initialiseJuce_GUI();
52JUCE_API void JUCE_CALLTYPE shutdownJuce_GUI();
92 #define START_JUCE_APPLICATION(AppClass)
94 #if JUCE_WINDOWS && ! defined (_CONSOLE)
95 #define JUCE_MAIN_FUNCTION int __stdcall WinMain (struct HINSTANCE__*, struct HINSTANCE__*, char*, int)
96 #define JUCE_MAIN_FUNCTION_ARGS
98 #define JUCE_MAIN_FUNCTION int main (int argc, char* argv[])
99 #define JUCE_MAIN_FUNCTION_ARGS argc, (const char**) argv
104 #define JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
105 juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); } \
106 void* juce_GetIOSCustomDelegateClass() { return nullptr; }
108 #define JUCE_CREATE_APPLICATION_DEFINE_CUSTOM_DELEGATE(AppClass, DelegateClass) \
109 juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); } \
110 void* juce_GetIOSCustomDelegateClass() { return [DelegateClass class]; }
112 #define JUCE_MAIN_FUNCTION_DEFINITION \
113 extern "C" JUCE_MAIN_FUNCTION \
115 juce::JUCEApplicationBase::createInstance = &juce_CreateApplication; \
116 juce::JUCEApplicationBase::iOSCustomDelegate = juce_GetIOSCustomDelegateClass(); \
117 return juce::JUCEApplicationBase::main (JUCE_MAIN_FUNCTION_ARGS); \
122 #define JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
123 extern "C" juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); }
125 #define JUCE_MAIN_FUNCTION_DEFINITION
129 #define JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
130 juce::JUCEApplicationBase* juce_CreateApplication(); \
131 juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); }
133 #define JUCE_MAIN_FUNCTION_DEFINITION \
134 extern "C" JUCE_MAIN_FUNCTION \
136 juce::JUCEApplicationBase::createInstance = &juce_CreateApplication; \
137 return juce::JUCEApplicationBase::main (JUCE_MAIN_FUNCTION_ARGS); \
142 #if JucePlugin_Build_Standalone
143 #if JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP
144 #define START_JUCE_APPLICATION(AppClass) JUCE_CREATE_APPLICATION_DEFINE(AppClass)
146 #define START_JUCE_APPLICATION_WITH_CUSTOM_DELEGATE(AppClass, DelegateClass) JUCE_CREATE_APPLICATION_DEFINE_CUSTOM_DELEGATE(AppClass, DelegateClass)
149 #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.");
151 #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.");
156 #define START_JUCE_APPLICATION(AppClass) \
157 JUCE_CREATE_APPLICATION_DEFINE(AppClass) \
158 JUCE_MAIN_FUNCTION_DEFINITION
201 #define START_JUCE_APPLICATION_WITH_CUSTOM_DELEGATE(AppClass, DelegateClass) \
202 JUCE_CREATE_APPLICATION_DEFINE_CUSTOM_DELEGATE(AppClass, DelegateClass) \
203 JUCE_MAIN_FUNCTION_DEFINITION
Holds a resizable array of primitive or copy-by-value objects.
A utility object that helps you initialise and shutdown JUCE correctly using an RAII pattern.
#define JUCE_API
This macro is added to all JUCE public class declarations.