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>
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)