54#define JUCE_CORE_H_INCLUDED
58 #pragma warning (push)
60 #pragma warning (disable: 4251 4786 4668 4820)
61 #ifdef __INTEL_COMPILER
62 #pragma warning (disable: 1125)
66#include "system/juce_TargetPlatform.h"
74#ifndef JUCE_FORCE_DEBUG
90#ifndef JUCE_LOG_ASSERTIONS
92 #define JUCE_LOG_ASSERTIONS 1
94 #define JUCE_LOG_ASSERTIONS 0
104#if JUCE_DEBUG && ! defined (JUCE_CHECK_MEMORY_LEAKS)
105 #define JUCE_CHECK_MEMORY_LEAKS 1
114#ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
115 #define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES 0
126#ifndef JUCE_INCLUDE_ZLIB_CODE
127 #define JUCE_INCLUDE_ZLIB_CODE 1
130#ifndef JUCE_ZLIB_INCLUDE_PATH
131 #define JUCE_ZLIB_INCLUDE_PATH <zlib.h>
141 #define JUCE_USE_CURL 1
151#ifndef JUCE_LOAD_CURL_SYMBOLS_LAZILY
152 #define JUCE_LOAD_CURL_SYMBOLS_LAZILY 0
159#ifndef JUCE_CATCH_UNHANDLED_EXCEPTIONS
160 #define JUCE_CATCH_UNHANDLED_EXCEPTIONS 0
168#ifndef JUCE_ALLOW_STATIC_NULL_VARIABLES
169 #define JUCE_ALLOW_STATIC_NULL_VARIABLES 0
177#ifndef JUCE_STRICT_REFCOUNTEDPOINTER
178 #define JUCE_STRICT_REFCOUNTEDPOINTER 0
185#ifndef JUCE_ENABLE_ALLOCATION_HOOKS
186 #define JUCE_ENABLE_ALLOCATION_HOOKS 0
189#ifndef JUCE_STRING_UTF_TYPE
190 #define JUCE_STRING_UTF_TYPE 8
196#if JUCE_CORE_INCLUDE_NATIVE_HEADERS
197 #include "native/juce_BasicNativeHeaders.h"
204#include "system/juce_StandardHeader.h"
214 class FileInputStream;
215 class FileOutputStream;
218 extern JUCE_API
bool JUCE_CALLTYPE juce_isRunningUnderDebugger() noexcept;
219 extern JUCE_API
void JUCE_CALLTYPE logAssertion (const
char* file,
int line) noexcept;
222#include "misc/juce_EnumHelpers.h"
223#include "memory/juce_Memory.h"
224#include "maths/juce_MathsFunctions.h"
225#include "memory/juce_ByteOrder.h"
226#include "memory/juce_Atomic.h"
227#include "text/juce_CharacterFunctions.h"
229JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4514 4996)
231#include "text/juce_CharPointer_UTF8.h"
232#include "text/juce_CharPointer_UTF16.h"
233#include "text/juce_CharPointer_UTF32.h"
234#include "text/juce_CharPointer_ASCII.h"
236JUCE_END_IGNORE_WARNINGS_MSVC
238#include "text/juce_String.h"
239#include "text/juce_StringRef.h"
240#include "logging/juce_Logger.h"
241#include "memory/juce_LeakedObjectDetector.h"
242#include "memory/juce_ContainerDeletePolicy.h"
243#include "memory/juce_HeapBlock.h"
244#include "memory/juce_MemoryBlock.h"
245#include "memory/juce_ReferenceCountedObject.h"
246#include "memory/juce_ScopedPointer.h"
247#include "memory/juce_OptionalScopedPointer.h"
248#include "containers/juce_Optional.h"
249#include "containers/juce_Enumerate.h"
250#include "containers/juce_ScopedValueSetter.h"
251#include "memory/juce_Singleton.h"
252#include "memory/juce_WeakReference.h"
253#include "threads/juce_ScopedLock.h"
254#include "threads/juce_CriticalSection.h"
255#include "maths/juce_Range.h"
256#include "maths/juce_NormalisableRange.h"
257#include "maths/juce_StatisticsAccumulator.h"
258#include "containers/juce_ElementComparator.h"
259#include "containers/juce_ArrayAllocationBase.h"
260#include "containers/juce_ArrayBase.h"
261#include "containers/juce_Array.h"
262#include "containers/juce_LinkedListPointer.h"
263#include "misc/juce_ScopeGuard.h"
264#include "containers/juce_ListenerList.h"
265#include "containers/juce_OwnedArray.h"
266#include "containers/juce_ReferenceCountedArray.h"
267#include "containers/juce_SortedSet.h"
268#include "containers/juce_SparseSet.h"
269#include "containers/juce_AbstractFifo.h"
270#include "containers/juce_SingleThreadedAbstractFifo.h"
271#include "text/juce_NewLine.h"
272#include "text/juce_StringPool.h"
273#include "text/juce_Identifier.h"
274#include "text/juce_StringArray.h"
275#include "system/juce_SystemStats.h"
276#include "memory/juce_HeavyweightLeakedObjectDetector.h"
277#include "text/juce_StringPairArray.h"
278#include "text/juce_TextDiff.h"
279#include "text/juce_LocalisedStrings.h"
280#include "text/juce_Base64.h"
281#include "misc/juce_Functional.h"
282#include "containers/juce_Span.h"
283#include "misc/juce_Result.h"
284#include "misc/juce_Uuid.h"
285#include "misc/juce_ConsoleApplication.h"
286#include "containers/juce_Variant.h"
287#include "containers/juce_NamedValueSet.h"
288#include "javascript/juce_JSON.h"
289#include "containers/juce_DynamicObject.h"
290#include "containers/juce_HashMap.h"
291#include "containers/juce_FixedSizeFunction.h"
292#include "time/juce_RelativeTime.h"
293#include "time/juce_Time.h"
294#include "streams/juce_InputStream.h"
295#include "streams/juce_OutputStream.h"
296#include "streams/juce_BufferedInputStream.h"
297#include "streams/juce_MemoryInputStream.h"
298#include "streams/juce_MemoryOutputStream.h"
299#include "streams/juce_SubregionStream.h"
300#include "streams/juce_InputSource.h"
301#include "files/juce_File.h"
302#include "files/juce_DirectoryIterator.h"
303#include "files/juce_RangedDirectoryIterator.h"
304#include "files/juce_FileInputStream.h"
305#include "files/juce_FileOutputStream.h"
306#include "files/juce_FileSearchPath.h"
307#include "files/juce_MemoryMappedFile.h"
308#include "files/juce_TemporaryFile.h"
309#include "files/juce_FileFilter.h"
310#include "files/juce_WildcardFileFilter.h"
311#include "streams/juce_FileInputSource.h"
312#include "logging/juce_FileLogger.h"
313#include "javascript/juce_JSONUtils.h"
314#include "serialisation/juce_Serialisation.h"
315#include "javascript/juce_JSONSerialisation.h"
316#include "javascript/juce_Javascript.h"
317#include "maths/juce_BigInteger.h"
318#include "maths/juce_Expression.h"
319#include "maths/juce_Random.h"
320#include "misc/juce_RuntimePermissions.h"
321#include "misc/juce_WindowsRegistry.h"
322#include "threads/juce_ChildProcess.h"
323#include "threads/juce_DynamicLibrary.h"
324#include "threads/juce_InterProcessLock.h"
325#include "threads/juce_Process.h"
326#include "threads/juce_SpinLock.h"
327#include "threads/juce_WaitableEvent.h"
328#include "threads/juce_Thread.h"
329#include "threads/juce_HighResolutionTimer.h"
330#include "threads/juce_ThreadLocalValue.h"
331#include "threads/juce_ThreadPool.h"
332#include "threads/juce_TimeSliceThread.h"
333#include "threads/juce_ReadWriteLock.h"
334#include "threads/juce_ScopedReadLock.h"
335#include "threads/juce_ScopedWriteLock.h"
336#include "network/juce_IPAddress.h"
337#include "network/juce_MACAddress.h"
338#include "network/juce_NamedPipe.h"
339#include "network/juce_Socket.h"
340#include "network/juce_URL.h"
341#include "network/juce_WebInputStream.h"
342#include "streams/juce_URLInputSource.h"
343#include "time/juce_PerformanceCounter.h"
344#include "unit_tests/juce_UnitTest.h"
345#include "xml/juce_XmlDocument.h"
346#include "xml/juce_XmlElement.h"
347#include "zip/juce_GZIPCompressorOutputStream.h"
348#include "zip/juce_GZIPDecompressorInputStream.h"
349#include "zip/juce_ZipFile.h"
350#include "containers/juce_PropertySet.h"
351#include "memory/juce_SharedResourcePointer.h"
352#include "memory/juce_AllocationHooks.h"
353#include "memory/juce_Reservoir.h"
354#include "files/juce_AndroidDocument.h"
355#include "streams/juce_AndroidDocumentInputSource.h"
357#include "detail/juce_CallbackListenerList.h"
359#if JUCE_CORE_INCLUDE_OBJC_HELPERS && (JUCE_MAC || JUCE_IOS)
360 #include "native/juce_CFHelpers_mac.h"
361 #include "native/juce_ObjCHelpers_mac.h"
364#if JUCE_CORE_INCLUDE_COM_SMART_PTR && JUCE_WINDOWS
365 #include "native/juce_ComSmartPtr_windows.h"
368#if JUCE_CORE_INCLUDE_JNI_HELPERS && JUCE_ANDROID
370 #include "native/juce_JNIHelpers_android.h"
374 #include "unit_tests/juce_UnitTestCategories.h"
389 struct JUCE_API this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_debug_mode
390 { this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_debug_mode() noexcept; };
391 static this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_debug_mode compileUnitMismatchSentinel;
393 struct JUCE_API this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_release_mode
394 { this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_release_mode() noexcept; };
395 static this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_release_mode compileUnitMismatchSentinel;
400JUCE_END_IGNORE_WARNINGS_MSVC
403#if defined (JUCE_DLL_BUILD) || defined (JUCE_DLL)
404 JUCE_IGNORE_MSVC (4251)