The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

429 lines
14KB

  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library - "Jules' Utility Class Extensions"
  4. Copyright 2004-11 by Raw Material Software Ltd.
  5. ------------------------------------------------------------------------------
  6. JUCE can be redistributed and/or modified under the terms of the GNU General
  7. Public License (Version 2), as published by the Free Software Foundation.
  8. A copy of the license is included in the JUCE distribution, or can be found
  9. online at www.gnu.org/licenses.
  10. JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
  11. WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  12. A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  13. ------------------------------------------------------------------------------
  14. To release a closed-source product which uses JUCE, commercial licenses are
  15. available: visit www.rawmaterialsoftware.com/juce for more information.
  16. ==============================================================================
  17. */
  18. #ifndef __JUCE_CORE_JUCEHEADER__
  19. #define __JUCE_CORE_JUCEHEADER__
  20. /* This line is here as a sanity-check to catch syntax errors caused by mistakes in 3rd-party
  21. header files that have been included prior to this one. If you hit an error at this line,
  22. there's probably some kind of syntax problem in whatever code immediately precedes this header.
  23. It also causes an error if you attempt to build using a C or obj-C compiler rather than a C++ one.
  24. */
  25. namespace DummyNamespaceStatementToCatchSyntaxErrors {}
  26. //==============================================================================
  27. #include "system/juce_TargetPlatform.h"
  28. //=============================================================================
  29. /** Config: JUCE_FORCE_DEBUG
  30. Normally, JUCE_DEBUG is set to 1 or 0 based on compiler and project settings,
  31. but if you define this value, you can override this to force it to be true or false.
  32. */
  33. #ifndef JUCE_FORCE_DEBUG
  34. //#define JUCE_FORCE_DEBUG 0
  35. #endif
  36. //=============================================================================
  37. /** Config: JUCE_LOG_ASSERTIONS
  38. If this flag is enabled, the the jassert and jassertfalse macros will always use Logger::writeToLog()
  39. to write a message when an assertion happens.
  40. Enabling it will also leave this turned on in release builds. When it's disabled,
  41. however, the jassert and jassertfalse macros will not be compiled in a
  42. release build.
  43. @see jassert, jassertfalse, Logger
  44. */
  45. #ifndef JUCE_LOG_ASSERTIONS
  46. #if JUCE_ANDROID
  47. #define JUCE_LOG_ASSERTIONS 1
  48. #else
  49. #define JUCE_LOG_ASSERTIONS 0
  50. #endif
  51. #endif
  52. //=============================================================================
  53. /** Config: JUCE_CHECK_MEMORY_LEAKS
  54. Enables a memory-leak check for certain objects when the app terminates. See the LeakedObjectDetector
  55. class and the JUCE_LEAK_DETECTOR macro for more details about enabling leak checking for specific classes.
  56. */
  57. #if JUCE_DEBUG && ! defined (JUCE_CHECK_MEMORY_LEAKS)
  58. #define JUCE_CHECK_MEMORY_LEAKS 1
  59. #endif
  60. //=============================================================================
  61. /** Config: JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
  62. In a Visual C++ build, this can be used to stop the required system libs being
  63. automatically added to the link stage.
  64. */
  65. #ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
  66. #define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES 0
  67. #endif
  68. /* Config: JUCE_INCLUDE_ZLIB_CODE
  69. This can be used to disable Juce's embedded 3rd-party zlib code.
  70. You might need to tweak this if you're linking to an external zlib library in your app,
  71. but for normal apps, this option should be left alone.
  72. If you disable this, you might also want to set a value for JUCE_ZLIB_INCLUDE_PATH, to
  73. specify the path where your zlib headers live.
  74. */
  75. #ifndef JUCE_INCLUDE_ZLIB_CODE
  76. #define JUCE_INCLUDE_ZLIB_CODE 1
  77. #endif
  78. #ifndef JUCE_ZLIB_INCLUDE_PATH
  79. #define JUCE_ZLIB_INCLUDE_PATH <zlib.h>
  80. #endif
  81. /* Config: JUCE_CATCH_UNHANDLED_EXCEPTIONS
  82. If enabled, this will add some exception-catching code to forward unhandled exceptions
  83. to your JUCEApplication::unhandledException() callback.
  84. */
  85. #ifndef JUCE_CATCH_UNHANDLED_EXCEPTIONS
  86. //#define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1
  87. #endif
  88. //=============================================================================
  89. //=============================================================================
  90. #if JUCE_MSVC
  91. #pragma warning (disable: 4251) // (DLL build warning, must be disabled before pushing the warning state)
  92. #pragma warning (push)
  93. #pragma warning (disable: 4786) // (long class name warning)
  94. #ifdef __INTEL_COMPILER
  95. #pragma warning (disable: 1125)
  96. #endif
  97. #endif
  98. #include "system/juce_StandardHeader.h"
  99. namespace juce
  100. {
  101. // START_AUTOINCLUDE containers, files, json, logging, maths, memory, misc, network,
  102. // streams, system, text, threads, time, unit_tests, xml, zip
  103. #ifndef __JUCE_ABSTRACTFIFO_JUCEHEADER__
  104. #include "containers/juce_AbstractFifo.h"
  105. #endif
  106. #ifndef __JUCE_ARRAY_JUCEHEADER__
  107. #include "containers/juce_Array.h"
  108. #endif
  109. #ifndef __JUCE_ARRAYALLOCATIONBASE_JUCEHEADER__
  110. #include "containers/juce_ArrayAllocationBase.h"
  111. #endif
  112. #ifndef __JUCE_DYNAMICOBJECT_JUCEHEADER__
  113. #include "containers/juce_DynamicObject.h"
  114. #endif
  115. #ifndef __JUCE_ELEMENTCOMPARATOR_JUCEHEADER__
  116. #include "containers/juce_ElementComparator.h"
  117. #endif
  118. #ifndef __JUCE_HASHMAP_JUCEHEADER__
  119. #include "containers/juce_HashMap.h"
  120. #endif
  121. #ifndef __JUCE_LINKEDLISTPOINTER_JUCEHEADER__
  122. #include "containers/juce_LinkedListPointer.h"
  123. #endif
  124. #ifndef __JUCE_NAMEDVALUESET_JUCEHEADER__
  125. #include "containers/juce_NamedValueSet.h"
  126. #endif
  127. #ifndef __JUCE_OWNEDARRAY_JUCEHEADER__
  128. #include "containers/juce_OwnedArray.h"
  129. #endif
  130. #ifndef __JUCE_PROPERTYSET_JUCEHEADER__
  131. #include "containers/juce_PropertySet.h"
  132. #endif
  133. #ifndef __JUCE_REFERENCECOUNTEDARRAY_JUCEHEADER__
  134. #include "containers/juce_ReferenceCountedArray.h"
  135. #endif
  136. #ifndef __JUCE_SCOPEDVALUESETTER_JUCEHEADER__
  137. #include "containers/juce_ScopedValueSetter.h"
  138. #endif
  139. #ifndef __JUCE_SORTEDSET_JUCEHEADER__
  140. #include "containers/juce_SortedSet.h"
  141. #endif
  142. #ifndef __JUCE_SPARSESET_JUCEHEADER__
  143. #include "containers/juce_SparseSet.h"
  144. #endif
  145. #ifndef __JUCE_VARIANT_JUCEHEADER__
  146. #include "containers/juce_Variant.h"
  147. #endif
  148. #ifndef __JUCE_DIRECTORYITERATOR_JUCEHEADER__
  149. #include "files/juce_DirectoryIterator.h"
  150. #endif
  151. #ifndef __JUCE_FILE_JUCEHEADER__
  152. #include "files/juce_File.h"
  153. #endif
  154. #ifndef __JUCE_FILEINPUTSTREAM_JUCEHEADER__
  155. #include "files/juce_FileInputStream.h"
  156. #endif
  157. #ifndef __JUCE_FILEOUTPUTSTREAM_JUCEHEADER__
  158. #include "files/juce_FileOutputStream.h"
  159. #endif
  160. #ifndef __JUCE_FILESEARCHPATH_JUCEHEADER__
  161. #include "files/juce_FileSearchPath.h"
  162. #endif
  163. #ifndef __JUCE_MEMORYMAPPEDFILE_JUCEHEADER__
  164. #include "files/juce_MemoryMappedFile.h"
  165. #endif
  166. #ifndef __JUCE_TEMPORARYFILE_JUCEHEADER__
  167. #include "files/juce_TemporaryFile.h"
  168. #endif
  169. #ifndef __JUCE_JSON_JUCEHEADER__
  170. #include "json/juce_JSON.h"
  171. #endif
  172. #ifndef __JUCE_FILELOGGER_JUCEHEADER__
  173. #include "logging/juce_FileLogger.h"
  174. #endif
  175. #ifndef __JUCE_LOGGER_JUCEHEADER__
  176. #include "logging/juce_Logger.h"
  177. #endif
  178. #ifndef __JUCE_BIGINTEGER_JUCEHEADER__
  179. #include "maths/juce_BigInteger.h"
  180. #endif
  181. #ifndef __JUCE_EXPRESSION_JUCEHEADER__
  182. #include "maths/juce_Expression.h"
  183. #endif
  184. #ifndef __JUCE_MATHSFUNCTIONS_JUCEHEADER__
  185. #include "maths/juce_MathsFunctions.h"
  186. #endif
  187. #ifndef __JUCE_RANDOM_JUCEHEADER__
  188. #include "maths/juce_Random.h"
  189. #endif
  190. #ifndef __JUCE_RANGE_JUCEHEADER__
  191. #include "maths/juce_Range.h"
  192. #endif
  193. #ifndef __JUCE_ATOMIC_JUCEHEADER__
  194. #include "memory/juce_Atomic.h"
  195. #endif
  196. #ifndef __JUCE_BYTEORDER_JUCEHEADER__
  197. #include "memory/juce_ByteOrder.h"
  198. #endif
  199. #ifndef __JUCE_HEAPBLOCK_JUCEHEADER__
  200. #include "memory/juce_HeapBlock.h"
  201. #endif
  202. #ifndef __JUCE_LEAKEDOBJECTDETECTOR_JUCEHEADER__
  203. #include "memory/juce_LeakedObjectDetector.h"
  204. #endif
  205. #ifndef __JUCE_MEMORY_JUCEHEADER__
  206. #include "memory/juce_Memory.h"
  207. #endif
  208. #ifndef __JUCE_MEMORYBLOCK_JUCEHEADER__
  209. #include "memory/juce_MemoryBlock.h"
  210. #endif
  211. #ifndef __JUCE_OPTIONALSCOPEDPOINTER_JUCEHEADER__
  212. #include "memory/juce_OptionalScopedPointer.h"
  213. #endif
  214. #ifndef __JUCE_REFERENCECOUNTEDOBJECT_JUCEHEADER__
  215. #include "memory/juce_ReferenceCountedObject.h"
  216. #endif
  217. #ifndef __JUCE_SCOPEDPOINTER_JUCEHEADER__
  218. #include "memory/juce_ScopedPointer.h"
  219. #endif
  220. #ifndef __JUCE_SINGLETON_JUCEHEADER__
  221. #include "memory/juce_Singleton.h"
  222. #endif
  223. #ifndef __JUCE_WEAKREFERENCE_JUCEHEADER__
  224. #include "memory/juce_WeakReference.h"
  225. #endif
  226. #ifndef __JUCE_RESULT_JUCEHEADER__
  227. #include "misc/juce_Result.h"
  228. #endif
  229. #ifndef __JUCE_UUID_JUCEHEADER__
  230. #include "misc/juce_Uuid.h"
  231. #endif
  232. #ifndef __JUCE_WINDOWSREGISTRY_JUCEHEADER__
  233. #include "misc/juce_WindowsRegistry.h"
  234. #endif
  235. #ifndef __JUCE_MACADDRESS_JUCEHEADER__
  236. #include "network/juce_MACAddress.h"
  237. #endif
  238. #ifndef __JUCE_NAMEDPIPE_JUCEHEADER__
  239. #include "network/juce_NamedPipe.h"
  240. #endif
  241. #ifndef __JUCE_SOCKET_JUCEHEADER__
  242. #include "network/juce_Socket.h"
  243. #endif
  244. #ifndef __JUCE_URL_JUCEHEADER__
  245. #include "network/juce_URL.h"
  246. #endif
  247. #ifndef __JUCE_BUFFEREDINPUTSTREAM_JUCEHEADER__
  248. #include "streams/juce_BufferedInputStream.h"
  249. #endif
  250. #ifndef __JUCE_FILEINPUTSOURCE_JUCEHEADER__
  251. #include "streams/juce_FileInputSource.h"
  252. #endif
  253. #ifndef __JUCE_INPUTSOURCE_JUCEHEADER__
  254. #include "streams/juce_InputSource.h"
  255. #endif
  256. #ifndef __JUCE_INPUTSTREAM_JUCEHEADER__
  257. #include "streams/juce_InputStream.h"
  258. #endif
  259. #ifndef __JUCE_MEMORYINPUTSTREAM_JUCEHEADER__
  260. #include "streams/juce_MemoryInputStream.h"
  261. #endif
  262. #ifndef __JUCE_MEMORYOUTPUTSTREAM_JUCEHEADER__
  263. #include "streams/juce_MemoryOutputStream.h"
  264. #endif
  265. #ifndef __JUCE_OUTPUTSTREAM_JUCEHEADER__
  266. #include "streams/juce_OutputStream.h"
  267. #endif
  268. #ifndef __JUCE_SUBREGIONSTREAM_JUCEHEADER__
  269. #include "streams/juce_SubregionStream.h"
  270. #endif
  271. #ifndef __JUCE_PLATFORMDEFS_JUCEHEADER__
  272. #include "system/juce_PlatformDefs.h"
  273. #endif
  274. #ifndef __JUCE_STANDARDHEADER_JUCEHEADER__
  275. #include "system/juce_StandardHeader.h"
  276. #endif
  277. #ifndef __JUCE_SYSTEMSTATS_JUCEHEADER__
  278. #include "system/juce_SystemStats.h"
  279. #endif
  280. #ifndef __JUCE_TARGETPLATFORM_JUCEHEADER__
  281. #include "system/juce_TargetPlatform.h"
  282. #endif
  283. #ifndef __JUCE_CHARACTERFUNCTIONS_JUCEHEADER__
  284. #include "text/juce_CharacterFunctions.h"
  285. #endif
  286. #ifndef __JUCE_CHARPOINTER_ASCII_JUCEHEADER__
  287. #include "text/juce_CharPointer_ASCII.h"
  288. #endif
  289. #ifndef __JUCE_CHARPOINTER_UTF16_JUCEHEADER__
  290. #include "text/juce_CharPointer_UTF16.h"
  291. #endif
  292. #ifndef __JUCE_CHARPOINTER_UTF32_JUCEHEADER__
  293. #include "text/juce_CharPointer_UTF32.h"
  294. #endif
  295. #ifndef __JUCE_CHARPOINTER_UTF8_JUCEHEADER__
  296. #include "text/juce_CharPointer_UTF8.h"
  297. #endif
  298. #ifndef __JUCE_IDENTIFIER_JUCEHEADER__
  299. #include "text/juce_Identifier.h"
  300. #endif
  301. #ifndef __JUCE_LOCALISEDSTRINGS_JUCEHEADER__
  302. #include "text/juce_LocalisedStrings.h"
  303. #endif
  304. #ifndef __JUCE_NEWLINE_JUCEHEADER__
  305. #include "text/juce_NewLine.h"
  306. #endif
  307. #ifndef __JUCE_STRING_JUCEHEADER__
  308. #include "text/juce_String.h"
  309. #endif
  310. #ifndef __JUCE_STRINGARRAY_JUCEHEADER__
  311. #include "text/juce_StringArray.h"
  312. #endif
  313. #ifndef __JUCE_STRINGPAIRARRAY_JUCEHEADER__
  314. #include "text/juce_StringPairArray.h"
  315. #endif
  316. #ifndef __JUCE_STRINGPOOL_JUCEHEADER__
  317. #include "text/juce_StringPool.h"
  318. #endif
  319. #ifndef __JUCE_CHILDPROCESS_JUCEHEADER__
  320. #include "threads/juce_ChildProcess.h"
  321. #endif
  322. #ifndef __JUCE_CRITICALSECTION_JUCEHEADER__
  323. #include "threads/juce_CriticalSection.h"
  324. #endif
  325. #ifndef __JUCE_DYNAMICLIBRARY_JUCEHEADER__
  326. #include "threads/juce_DynamicLibrary.h"
  327. #endif
  328. #ifndef __JUCE_INTERPROCESSLOCK_JUCEHEADER__
  329. #include "threads/juce_InterProcessLock.h"
  330. #endif
  331. #ifndef __JUCE_PROCESS_JUCEHEADER__
  332. #include "threads/juce_Process.h"
  333. #endif
  334. #ifndef __JUCE_READWRITELOCK_JUCEHEADER__
  335. #include "threads/juce_ReadWriteLock.h"
  336. #endif
  337. #ifndef __JUCE_SCOPEDLOCK_JUCEHEADER__
  338. #include "threads/juce_ScopedLock.h"
  339. #endif
  340. #ifndef __JUCE_SCOPEDREADLOCK_JUCEHEADER__
  341. #include "threads/juce_ScopedReadLock.h"
  342. #endif
  343. #ifndef __JUCE_SCOPEDWRITELOCK_JUCEHEADER__
  344. #include "threads/juce_ScopedWriteLock.h"
  345. #endif
  346. #ifndef __JUCE_SPINLOCK_JUCEHEADER__
  347. #include "threads/juce_SpinLock.h"
  348. #endif
  349. #ifndef __JUCE_THREAD_JUCEHEADER__
  350. #include "threads/juce_Thread.h"
  351. #endif
  352. #ifndef __JUCE_THREADLOCALVALUE_JUCEHEADER__
  353. #include "threads/juce_ThreadLocalValue.h"
  354. #endif
  355. #ifndef __JUCE_THREADPOOL_JUCEHEADER__
  356. #include "threads/juce_ThreadPool.h"
  357. #endif
  358. #ifndef __JUCE_TIMESLICETHREAD_JUCEHEADER__
  359. #include "threads/juce_TimeSliceThread.h"
  360. #endif
  361. #ifndef __JUCE_WAITABLEEVENT_JUCEHEADER__
  362. #include "threads/juce_WaitableEvent.h"
  363. #endif
  364. #ifndef __JUCE_PERFORMANCECOUNTER_JUCEHEADER__
  365. #include "time/juce_PerformanceCounter.h"
  366. #endif
  367. #ifndef __JUCE_RELATIVETIME_JUCEHEADER__
  368. #include "time/juce_RelativeTime.h"
  369. #endif
  370. #ifndef __JUCE_TIME_JUCEHEADER__
  371. #include "time/juce_Time.h"
  372. #endif
  373. #ifndef __JUCE_UNITTEST_JUCEHEADER__
  374. #include "unit_tests/juce_UnitTest.h"
  375. #endif
  376. #ifndef __JUCE_XMLDOCUMENT_JUCEHEADER__
  377. #include "xml/juce_XmlDocument.h"
  378. #endif
  379. #ifndef __JUCE_XMLELEMENT_JUCEHEADER__
  380. #include "xml/juce_XmlElement.h"
  381. #endif
  382. #ifndef __JUCE_GZIPCOMPRESSOROUTPUTSTREAM_JUCEHEADER__
  383. #include "zip/juce_GZIPCompressorOutputStream.h"
  384. #endif
  385. #ifndef __JUCE_GZIPDECOMPRESSORINPUTSTREAM_JUCEHEADER__
  386. #include "zip/juce_GZIPDecompressorInputStream.h"
  387. #endif
  388. #ifndef __JUCE_ZIPFILE_JUCEHEADER__
  389. #include "zip/juce_ZipFile.h"
  390. #endif
  391. // END_AUTOINCLUDE
  392. }
  393. #if JUCE_MSVC
  394. #pragma warning (pop)
  395. #endif
  396. #endif // __JUCE_CORE_JUCEHEADER__