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.

418 lines
13KB

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