53 #define JUCE_CORE_H_INCLUDED
57 #pragma warning (push)
59 #pragma warning (disable: 4251 4786 4668 4820)
60 #ifdef __INTEL_COMPILER
61 #pragma warning (disable: 1125)
65 #include "system/juce_TargetPlatform.h"
73 #ifndef JUCE_FORCE_DEBUG
89 #ifndef JUCE_LOG_ASSERTIONS
91 #define JUCE_LOG_ASSERTIONS 1
93 #define JUCE_LOG_ASSERTIONS 0
103 #if JUCE_DEBUG && ! defined (JUCE_CHECK_MEMORY_LEAKS)
104 #define JUCE_CHECK_MEMORY_LEAKS 1
113 #ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
114 #define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES 0
125 #ifndef JUCE_INCLUDE_ZLIB_CODE
126 #define JUCE_INCLUDE_ZLIB_CODE 1
129 #ifndef JUCE_ZLIB_INCLUDE_PATH
130 #define JUCE_ZLIB_INCLUDE_PATH <zlib.h>
139 #ifndef JUCE_USE_CURL
140 #define JUCE_USE_CURL 1
150 #ifndef JUCE_LOAD_CURL_SYMBOLS_LAZILY
151 #define JUCE_LOAD_CURL_SYMBOLS_LAZILY 0
158 #ifndef JUCE_CATCH_UNHANDLED_EXCEPTIONS
159 #define JUCE_CATCH_UNHANDLED_EXCEPTIONS 0
167 #ifndef JUCE_ALLOW_STATIC_NULL_VARIABLES
168 #define JUCE_ALLOW_STATIC_NULL_VARIABLES 0
176 #ifndef JUCE_STRICT_REFCOUNTEDPOINTER
177 #define JUCE_STRICT_REFCOUNTEDPOINTER 0
181 #ifndef JUCE_STRING_UTF_TYPE
182 #define JUCE_STRING_UTF_TYPE 8
188 #if JUCE_CORE_INCLUDE_NATIVE_HEADERS
189 #include "native/juce_BasicNativeHeaders.h"
196 #include "system/juce_StandardHeader.h"
206 class FileInputStream;
207 class FileOutputStream;
210 extern JUCE_API
bool JUCE_CALLTYPE juce_isRunningUnderDebugger() noexcept;
211 extern JUCE_API
void JUCE_CALLTYPE logAssertion (const
char* file,
int line) noexcept;
214 #include "memory/juce_Memory.h"
215 #include "maths/juce_MathsFunctions.h"
216 #include "memory/juce_ByteOrder.h"
217 #include "memory/juce_Atomic.h"
218 #include "text/juce_CharacterFunctions.h"
221 #pragma warning (push)
222 #pragma warning (disable: 4514 4996)
225 #include "text/juce_CharPointer_UTF8.h"
226 #include "text/juce_CharPointer_UTF16.h"
227 #include "text/juce_CharPointer_UTF32.h"
228 #include "text/juce_CharPointer_ASCII.h"
231 #pragma warning (pop)
234 #include "text/juce_String.h"
235 #include "text/juce_StringRef.h"
236 #include "logging/juce_Logger.h"
237 #include "memory/juce_LeakedObjectDetector.h"
238 #include "memory/juce_ContainerDeletePolicy.h"
239 #include "memory/juce_HeapBlock.h"
240 #include "memory/juce_MemoryBlock.h"
241 #include "memory/juce_ReferenceCountedObject.h"
242 #include "memory/juce_ScopedPointer.h"
243 #include "memory/juce_OptionalScopedPointer.h"
244 #include "memory/juce_Singleton.h"
245 #include "memory/juce_WeakReference.h"
246 #include "threads/juce_ScopedLock.h"
247 #include "threads/juce_CriticalSection.h"
248 #include "maths/juce_Range.h"
249 #include "maths/juce_NormalisableRange.h"
250 #include "maths/juce_StatisticsAccumulator.h"
251 #include "containers/juce_ElementComparator.h"
252 #include "containers/juce_ArrayAllocationBase.h"
253 #include "containers/juce_ArrayBase.h"
254 #include "containers/juce_Array.h"
255 #include "containers/juce_LinkedListPointer.h"
256 #include "containers/juce_ListenerList.h"
257 #include "containers/juce_OwnedArray.h"
258 #include "containers/juce_ReferenceCountedArray.h"
259 #include "containers/juce_ScopedValueSetter.h"
260 #include "containers/juce_SortedSet.h"
261 #include "containers/juce_SparseSet.h"
262 #include "containers/juce_AbstractFifo.h"
263 #include "text/juce_NewLine.h"
264 #include "text/juce_StringPool.h"
265 #include "text/juce_Identifier.h"
266 #include "text/juce_StringArray.h"
267 #include "system/juce_SystemStats.h"
268 #include "memory/juce_HeavyweightLeakedObjectDetector.h"
269 #include "text/juce_StringPairArray.h"
270 #include "text/juce_TextDiff.h"
271 #include "text/juce_LocalisedStrings.h"
272 #include "text/juce_Base64.h"
273 #include "misc/juce_Result.h"
274 #include "misc/juce_Uuid.h"
275 #include "misc/juce_ConsoleApplication.h"
276 #include "containers/juce_Variant.h"
277 #include "containers/juce_NamedValueSet.h"
278 #include "containers/juce_DynamicObject.h"
279 #include "containers/juce_HashMap.h"
280 #include "time/juce_RelativeTime.h"
281 #include "time/juce_Time.h"
282 #include "streams/juce_InputStream.h"
283 #include "streams/juce_OutputStream.h"
284 #include "streams/juce_BufferedInputStream.h"
285 #include "streams/juce_MemoryInputStream.h"
286 #include "streams/juce_MemoryOutputStream.h"
287 #include "streams/juce_SubregionStream.h"
288 #include "streams/juce_InputSource.h"
289 #include "files/juce_File.h"
290 #include "files/juce_DirectoryIterator.h"
291 #include "files/juce_FileInputStream.h"
292 #include "files/juce_FileOutputStream.h"
293 #include "files/juce_FileSearchPath.h"
294 #include "files/juce_MemoryMappedFile.h"
295 #include "files/juce_TemporaryFile.h"
296 #include "files/juce_FileFilter.h"
297 #include "files/juce_WildcardFileFilter.h"
298 #include "streams/juce_FileInputSource.h"
299 #include "logging/juce_FileLogger.h"
300 #include "javascript/juce_JSON.h"
301 #include "javascript/juce_Javascript.h"
302 #include "maths/juce_BigInteger.h"
303 #include "maths/juce_Expression.h"
304 #include "maths/juce_Random.h"
305 #include "misc/juce_RuntimePermissions.h"
306 #include "misc/juce_WindowsRegistry.h"
307 #include "threads/juce_ChildProcess.h"
308 #include "threads/juce_DynamicLibrary.h"
309 #include "threads/juce_HighResolutionTimer.h"
310 #include "threads/juce_InterProcessLock.h"
311 #include "threads/juce_Process.h"
312 #include "threads/juce_SpinLock.h"
313 #include "threads/juce_WaitableEvent.h"
314 #include "threads/juce_Thread.h"
315 #include "threads/juce_ThreadLocalValue.h"
316 #include "threads/juce_ThreadPool.h"
317 #include "threads/juce_TimeSliceThread.h"
318 #include "threads/juce_ReadWriteLock.h"
319 #include "threads/juce_ScopedReadLock.h"
320 #include "threads/juce_ScopedWriteLock.h"
321 #include "network/juce_IPAddress.h"
322 #include "network/juce_MACAddress.h"
323 #include "network/juce_NamedPipe.h"
324 #include "network/juce_Socket.h"
325 #include "network/juce_URL.h"
326 #include "network/juce_WebInputStream.h"
327 #include "streams/juce_URLInputSource.h"
328 #include "time/juce_PerformanceCounter.h"
329 #include "unit_tests/juce_UnitTest.h"
330 #include "xml/juce_XmlDocument.h"
331 #include "xml/juce_XmlElement.h"
332 #include "zip/juce_GZIPCompressorOutputStream.h"
333 #include "zip/juce_GZIPDecompressorInputStream.h"
334 #include "zip/juce_ZipFile.h"
335 #include "containers/juce_PropertySet.h"
336 #include "memory/juce_SharedResourcePointer.h"
338 #if JUCE_CORE_INCLUDE_OBJC_HELPERS && (JUCE_MAC || JUCE_IOS)
339 #include "native/juce_osx_ObjCHelpers.h"
342 #if JUCE_CORE_INCLUDE_COM_SMART_PTR && JUCE_WINDOWS
343 #include "native/juce_win32_ComSmartPtr.h"
346 #if JUCE_CORE_INCLUDE_JNI_HELPERS && JUCE_ANDROID
348 #include "native/juce_android_JNIHelpers.h"
352 #include "unit_tests/juce_UnitTestCategories.h"
367 struct JUCE_API this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_debug_mode
368 { this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_debug_mode() noexcept; };
369 static this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_debug_mode compileUnitMismatchSentinel;
371 struct JUCE_API this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_release_mode
372 { this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_release_mode() noexcept; };
373 static this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_release_mode compileUnitMismatchSentinel;
379 #pragma warning (pop)
382 #if defined (JUCE_DLL_BUILD) || defined (JUCE_DLL)
383 #pragma warning (disable: 4251)