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.

138 lines
6.7KB

  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library - "Jules' Utility Class Extensions"
  4. Copyright 2004-7 by Raw Material Software ltd.
  5. ------------------------------------------------------------------------------
  6. JUCE can be redistributed and/or modified under the terms of the
  7. GNU General Public License, as published by the Free Software Foundation;
  8. either version 2 of the License, or (at your option) any later version.
  9. JUCE is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with JUCE; if not, visit www.gnu.org/licenses or write to the
  15. Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  16. Boston, MA 02111-1307 USA
  17. ------------------------------------------------------------------------------
  18. If you'd like to release a closed-source product which uses JUCE, commercial
  19. licenses are also available: visit www.rawmaterialsoftware.com/juce for
  20. more information.
  21. ==============================================================================
  22. */
  23. /*
  24. This file wraps together all the mac-specific code, so that
  25. we can include all the native headers just once, and compile all our
  26. platform-specific stuff in one big lump, keeping it out of the way of
  27. the rest of the codebase.
  28. */
  29. #include "juce_mac_NativeIncludes.h"
  30. BEGIN_JUCE_NAMESPACE
  31. //==============================================================================
  32. #include "../../../src/juce_core/basics/juce_Singleton.h"
  33. #include "../../../src/juce_core/basics/juce_Random.h"
  34. #include "../../../src/juce_core/basics/juce_SystemStats.h"
  35. #include "../../../src/juce_core/threads/juce_Process.h"
  36. #include "../../../src/juce_core/threads/juce_Thread.h"
  37. #include "../../../src/juce_core/threads/juce_InterProcessLock.h"
  38. #include "../../../src/juce_core/io/files/juce_FileInputStream.h"
  39. #include "../../../src/juce_core/io/files/juce_NamedPipe.h"
  40. #include "../../../src/juce_core/io/network/juce_URL.h"
  41. #include "../../../src/juce_core/misc/juce_PlatformUtilities.h"
  42. #include "../../../src/juce_core/text/juce_LocalisedStrings.h"
  43. #include "../../../src/juce_appframework/application/juce_DeletedAtShutdown.h"
  44. #include "../../../src/juce_appframework/application/juce_Application.h"
  45. #include "../../../src/juce_appframework/application/juce_SystemClipboard.h"
  46. #include "../../../src/juce_appframework/events/juce_MessageManager.h"
  47. #include "../../../src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"
  48. #include "../../../src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.h"
  49. #include "../../../src/juce_appframework/gui/graphics/imaging/juce_CameraDevice.h"
  50. #include "../../../src/juce_appframework/gui/components/windows/juce_AlertWindow.h"
  51. #include "../../../src/juce_appframework/gui/components/juce_Desktop.h"
  52. #include "../../../src/juce_appframework/gui/components/menus/juce_MenuBarModel.h"
  53. #include "../../../src/juce_appframework/gui/components/special/juce_OpenGLComponent.h"
  54. #include "../../../src/juce_appframework/gui/components/special/juce_QuickTimeMovieComponent.h"
  55. #include "../../../src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.h"
  56. #include "../../../src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.h"
  57. #include "../../../src/juce_appframework/gui/components/special/juce_NSViewComponent.h"
  58. #include "../../../src/juce_appframework/gui/components/layout/juce_ComponentMovementWatcher.h"
  59. #include "../../../src/juce_appframework/gui/components/special/juce_WebBrowserComponent.h"
  60. #include "../../../src/juce_appframework/gui/components/filebrowser/juce_FileChooser.h"
  61. #include "../../../src/juce_appframework/audio/audio_file_formats/juce_AudioCDBurner.h"
  62. #include "../../../src/juce_appframework/audio/audio_file_formats/juce_AudioCDReader.h"
  63. #include "../../../src/juce_appframework/audio/audio_sources/juce_AudioSource.h"
  64. #include "../../../src/juce_appframework/audio/dsp/juce_AudioDataConverters.h"
  65. #include "../../../src/juce_appframework/audio/devices/juce_AudioIODeviceType.h"
  66. #include "../../../src/juce_appframework/audio/devices/juce_MidiOutput.h"
  67. #include "../../../src/juce_appframework/audio/devices/juce_MidiInput.h"
  68. #undef Point
  69. //==============================================================================
  70. /** This suffix is used for naming all Obj-C classes that are used inside juce.
  71. Because of the flat naming structure used by Obj-C, you can get horrible situations where
  72. two DLLs are loaded into a host, each of which uses classes with the same names, and these get
  73. cross-linked so that when you make a call to a class that you thought was private, it ends up
  74. actually calling into a similarly named class in the other module's address space.
  75. By changing this macro to a unique value, you ensure that all the obj-C classes in your app
  76. have unique names, and should avoid this problem.
  77. If you're using the amalgamated version, you can just set this macro to something unique before
  78. you include juce_amalgamated.cpp.
  79. */
  80. #ifndef JUCE_ObjCExtraSuffix
  81. #define JUCE_ObjCExtraSuffix 3
  82. #endif
  83. #define appendMacro1(a, b, c, d) a ## _ ## b ## _ ## c ## _ ## d
  84. #define appendMacro2(a, b, c, d) appendMacro1(a, b, c, d)
  85. #define MakeObjCClassName(rootName) appendMacro2 (rootName, JUCE_MAJOR_VERSION, JUCE_MINOR_VERSION, JUCE_ObjCExtraSuffix)
  86. //==============================================================================
  87. #define JUCE_INCLUDED_FILE 1
  88. // Now include the actual code files..
  89. #include "juce_mac_Strings.mm"
  90. #include "juce_mac_SystemStats.mm"
  91. #include "juce_mac_Network.mm"
  92. #include "juce_mac_NamedPipe.cpp"
  93. #include "juce_mac_Threads.mm"
  94. #include "juce_posix_SharedCode.h"
  95. #include "juce_mac_Files.mm"
  96. #include "juce_mac_MiscUtilities.mm"
  97. #include "juce_mac_Debugging.mm"
  98. #if ! JUCE_ONLY_BUILD_CORE_LIBRARY
  99. #include "juce_mac_NSViewComponentPeer.mm"
  100. #include "juce_mac_MouseCursor.mm"
  101. #include "juce_mac_NSViewComponent.mm"
  102. #include "juce_mac_AppleRemote.mm"
  103. #include "juce_mac_OpenGLComponent.mm"
  104. #include "juce_mac_MainMenu.mm"
  105. #include "juce_mac_FileChooser.mm"
  106. #include "juce_mac_QuickTimeMovieComponent.mm"
  107. #include "juce_mac_AudioCDBurner.mm"
  108. #include "juce_mac_Fonts.mm"
  109. #include "juce_mac_MessageManager.mm"
  110. #include "juce_mac_WebBrowserComponent.mm"
  111. #include "juce_mac_CoreAudio.cpp"
  112. #include "juce_mac_CoreMidi.cpp"
  113. #include "juce_mac_CameraDevice.mm"
  114. #endif
  115. END_JUCE_NAMESPACE