|
|
@@ -1,225 +1,230 @@ |
|
|
|
/*
|
|
|
|
==============================================================================
|
|
|
|
|
|
|
|
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
|
|
|
Copyright 2004-7 by Raw Material Software ltd.
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
JUCE can be redistributed and/or modified under the terms of the
|
|
|
|
GNU General Public License, as published by the Free Software Foundation;
|
|
|
|
either version 2 of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
JUCE is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
|
|
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
|
|
|
Boston, MA 02111-1307 USA
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
If you'd like to release a closed-source product which uses JUCE, commercial
|
|
|
|
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
|
|
|
more information.
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __JUCE_CONFIG_JUCEHEADER__
|
|
|
|
#define __JUCE_CONFIG_JUCEHEADER__
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
|
/*
|
|
|
|
This file contains macros that enable/disable various JUCE features.
|
|
|
|
*/
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** The name of the namespace that all Juce classes and functions will be
|
|
|
|
put inside. If this is not defined, no namespace will be used.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_NAMESPACE
|
|
|
|
#define JUCE_NAMESPACE juce
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** Normally, JUCE_DEBUG is set to 1 or 0 based on compiler and project settings,
|
|
|
|
but if you define this value, you can override this can force it to be true or
|
|
|
|
false.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_FORCE_DEBUG
|
|
|
|
//#define JUCE_FORCE_DEBUG 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** If this flag is enabled, the the jassert and jassertfalse macros will
|
|
|
|
always use Logger::writeToLog() to write a message when an assertion happens.
|
|
|
|
|
|
|
|
Enabling it will also leave this turned on in release builds. When it's disabled,
|
|
|
|
however, the jassert and jassertfalse macros will not be compiled in a
|
|
|
|
release build.
|
|
|
|
|
|
|
|
@see jassert, jassertfalse, Logger
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_LOG_ASSERTIONS
|
|
|
|
// #define JUCE_LOG_ASSERTIONS 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** Comment out this macro if you haven't got the Steinberg ASIO SDK, without
|
|
|
|
which the ASIOAudioIODevice class can't be built. See the comments in the
|
|
|
|
ASIOAudioIODevice class's header file for more info about this.
|
|
|
|
|
|
|
|
(This only affects a Win32 build)
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_ASIO
|
|
|
|
#define JUCE_ASIO 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/** Comment out this macro to disable building of ALSA device support on Linux.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_ALSA
|
|
|
|
#define JUCE_ALSA 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** Comment out this macro if you don't want to enable QuickTime or if you don't
|
|
|
|
have the SDK installed.
|
|
|
|
|
|
|
|
If this flag is not enabled, the QuickTimeMovieComponent and QuickTimeAudioFormat
|
|
|
|
classes will be unavailable.
|
|
|
|
|
|
|
|
On Windows, if you enable this, you'll need to have the QuickTime SDK
|
|
|
|
installed, and its header files will need to be on your include path.
|
|
|
|
*/
|
|
|
|
#if ! (defined (JUCE_QUICKTIME) || defined (LINUX) || (defined (_WIN32) && ! defined (_MSC_VER)))
|
|
|
|
#define JUCE_QUICKTIME 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** Comment out this macro if you don't want to enable OpenGL or if you don't
|
|
|
|
have the appropriate headers and libraries available. If it's not enabled, the
|
|
|
|
OpenGLComponent class will be unavailable.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_OPENGL
|
|
|
|
#define JUCE_OPENGL 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** These flags enable the Ogg-Vorbis and Flac audio formats.
|
|
|
|
|
|
|
|
If you're not going to need either of these formats, turn off the flags to
|
|
|
|
avoid bloating your codebase with them.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_USE_FLAC
|
|
|
|
#define JUCE_USE_FLAC 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef JUCE_USE_OGGVORBIS
|
|
|
|
#define JUCE_USE_OGGVORBIS 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** These flags let you turn off the direct inclusion of various 3rd-party libs
|
|
|
|
in the build.
|
|
|
|
You might need to turn these off if you're linking with these libs yourself
|
|
|
|
are struggling with name-clashes.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_INCLUDE_ZLIB_CODE
|
|
|
|
#define JUCE_INCLUDE_ZLIB_CODE 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef JUCE_INCLUDE_OGGVORBIS_CODE
|
|
|
|
#define JUCE_INCLUDE_OGGVORBIS_CODE 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef JUCE_INCLUDE_FLAC_CODE
|
|
|
|
#define JUCE_INCLUDE_FLAC_CODE 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** This flag lets you enable support for CD-burning. You might want to disable
|
|
|
|
it to build without the MS SDK under windows.
|
|
|
|
*/
|
|
|
|
#if (! defined (JUCE_USE_CDBURNER)) && ! (defined (_WIN32) && ! defined (_MSC_VER))
|
|
|
|
#define JUCE_USE_CDBURNER 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** Enabling this macro means that all regions that get repainted will have a coloured
|
|
|
|
line drawn around them.
|
|
|
|
|
|
|
|
This is handy if you're trying to optimise drawing, because it lets you easily see
|
|
|
|
when anything is being repainted unnecessarily.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_ENABLE_REPAINT_DEBUGGING
|
|
|
|
// #define JUCE_ENABLE_REPAINT_DEBUGGING 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** Enable this under Linux to use Xinerama for multi-monitor support.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_USE_XINERAMA
|
|
|
|
#define JUCE_USE_XINERAMA 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/** Enable this under Linux to use XShm for faster shared-memory rendering.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_USE_XSHM
|
|
|
|
#define JUCE_USE_XSHM 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** Enabling this builds support for VST audio plugins.
|
|
|
|
@see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU
|
|
|
|
*/
|
|
|
|
#define JUCE_PLUGINHOST_VST 1
|
|
|
|
|
|
|
|
/** Enabling this builds support for AudioUnit audio plugins.
|
|
|
|
@see AudioUnitPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST
|
|
|
|
*/
|
|
|
|
#define JUCE_PLUGINHOST_AU 1
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** Disabling this will avoid linking to any UI code. This is handy for
|
|
|
|
writing command-line utilities, e.g. on linux boxes which don't have some
|
|
|
|
of the UI libraries installed.
|
|
|
|
|
|
|
|
(On mac and windows, this won't generally make much difference to the build).
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_BUILD_GUI_CLASSES
|
|
|
|
#define JUCE_BUILD_GUI_CLASSES 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
/** Enable this to add extra memory-leak info to the new and delete operators.
|
|
|
|
|
|
|
|
(Currently, this only affects Windows builds in debug mode).
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_CHECK_MEMORY_LEAKS
|
|
|
|
#define JUCE_CHECK_MEMORY_LEAKS 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/** Enable this to turn on juce's internal catching of exceptions.
|
|
|
|
|
|
|
|
Turning it off will avoid any exception catching. With it on, all exceptions
|
|
|
|
are passed to the JUCEApplication::unhandledException() callback for logging.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_CATCH_UNHANDLED_EXCEPTIONS
|
|
|
|
#define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/** If this macro is set, the Juce String class will use unicode as its
|
|
|
|
internal representation. If it isn't set, it'll use ANSI.
|
|
|
|
*/
|
|
|
|
#ifndef JUCE_STRINGS_ARE_UNICODE
|
|
|
|
#define JUCE_STRINGS_ARE_UNICODE 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
|
|
|
|
#endif
|
|
|
|
/* |
|
|
|
============================================================================== |
|
|
|
|
|
|
|
This file is part of the JUCE library - "Jules' Utility Class Extensions" |
|
|
|
Copyright 2004-7 by Raw Material Software ltd. |
|
|
|
|
|
|
|
------------------------------------------------------------------------------ |
|
|
|
|
|
|
|
JUCE can be redistributed and/or modified under the terms of the |
|
|
|
GNU General Public License, as published by the Free Software Foundation; |
|
|
|
either version 2 of the License, or (at your option) any later version. |
|
|
|
|
|
|
|
JUCE is distributed in the hope that it will be useful, |
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
|
GNU General Public License for more details. |
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License |
|
|
|
along with JUCE; if not, visit www.gnu.org/licenses or write to the |
|
|
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, |
|
|
|
Boston, MA 02111-1307 USA |
|
|
|
|
|
|
|
------------------------------------------------------------------------------ |
|
|
|
|
|
|
|
If you'd like to release a closed-source product which uses JUCE, commercial |
|
|
|
licenses are also available: visit www.rawmaterialsoftware.com/juce for |
|
|
|
more information. |
|
|
|
|
|
|
|
============================================================================== |
|
|
|
*/ |
|
|
|
|
|
|
|
#ifndef __JUCE_CONFIG_JUCEHEADER__ |
|
|
|
#define __JUCE_CONFIG_JUCEHEADER__ |
|
|
|
|
|
|
|
//============================================================================== |
|
|
|
/* |
|
|
|
This file contains macros that enable/disable various JUCE features. |
|
|
|
*/ |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** The name of the namespace that all Juce classes and functions will be |
|
|
|
put inside. If this is not defined, no namespace will be used. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_NAMESPACE |
|
|
|
#define JUCE_NAMESPACE juce |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** Normally, JUCE_DEBUG is set to 1 or 0 based on compiler and project settings, |
|
|
|
but if you define this value, you can override this can force it to be true or |
|
|
|
false. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_FORCE_DEBUG |
|
|
|
//#define JUCE_FORCE_DEBUG 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** If this flag is enabled, the the jassert and jassertfalse macros will |
|
|
|
always use Logger::writeToLog() to write a message when an assertion happens. |
|
|
|
|
|
|
|
Enabling it will also leave this turned on in release builds. When it's disabled, |
|
|
|
however, the jassert and jassertfalse macros will not be compiled in a |
|
|
|
release build. |
|
|
|
|
|
|
|
@see jassert, jassertfalse, Logger |
|
|
|
*/ |
|
|
|
#ifndef JUCE_LOG_ASSERTIONS |
|
|
|
// #define JUCE_LOG_ASSERTIONS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** Comment out this macro if you haven't got the Steinberg ASIO SDK, without |
|
|
|
which the ASIOAudioIODevice class can't be built. See the comments in the |
|
|
|
ASIOAudioIODevice class's header file for more info about this. |
|
|
|
|
|
|
|
(This only affects a Win32 build) |
|
|
|
*/ |
|
|
|
#ifndef JUCE_ASIO |
|
|
|
#define JUCE_ASIO 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
/** Comment out this macro to disable building of ALSA device support on Linux. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_ALSA |
|
|
|
#define JUCE_ALSA 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** Comment out this macro if you don't want to enable QuickTime or if you don't |
|
|
|
have the SDK installed. |
|
|
|
|
|
|
|
If this flag is not enabled, the QuickTimeMovieComponent and QuickTimeAudioFormat |
|
|
|
classes will be unavailable. |
|
|
|
|
|
|
|
On Windows, if you enable this, you'll need to have the QuickTime SDK |
|
|
|
installed, and its header files will need to be on your include path. |
|
|
|
*/ |
|
|
|
#if ! (defined (JUCE_QUICKTIME) || defined (LINUX) || (defined (_WIN32) && ! defined (_MSC_VER))) |
|
|
|
#define JUCE_QUICKTIME 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** Comment out this macro if you don't want to enable OpenGL or if you don't |
|
|
|
have the appropriate headers and libraries available. If it's not enabled, the |
|
|
|
OpenGLComponent class will be unavailable. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_OPENGL |
|
|
|
#define JUCE_OPENGL 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** These flags enable the Ogg-Vorbis and Flac audio formats. |
|
|
|
|
|
|
|
If you're not going to need either of these formats, turn off the flags to |
|
|
|
avoid bloating your codebase with them. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_USE_FLAC |
|
|
|
#define JUCE_USE_FLAC 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifndef JUCE_USE_OGGVORBIS |
|
|
|
#define JUCE_USE_OGGVORBIS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** This flag lets you enable support for CD-burning. You might want to disable |
|
|
|
it to build without the MS SDK under windows. |
|
|
|
*/ |
|
|
|
#if (! defined (JUCE_USE_CDBURNER)) && ! (defined (_WIN32) && ! defined (_MSC_VER)) |
|
|
|
#define JUCE_USE_CDBURNER 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** Enabling this macro means that all regions that get repainted will have a coloured |
|
|
|
line drawn around them. |
|
|
|
|
|
|
|
This is handy if you're trying to optimise drawing, because it lets you easily see |
|
|
|
when anything is being repainted unnecessarily. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_ENABLE_REPAINT_DEBUGGING |
|
|
|
// #define JUCE_ENABLE_REPAINT_DEBUGGING 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** Enable this under Linux to use Xinerama for multi-monitor support. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_USE_XINERAMA |
|
|
|
#define JUCE_USE_XINERAMA 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
/** Enable this under Linux to use XShm for faster shared-memory rendering. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_USE_XSHM |
|
|
|
#define JUCE_USE_XSHM 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** Enabling this builds support for VST audio plugins. |
|
|
|
@see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU |
|
|
|
*/ |
|
|
|
//#define JUCE_PLUGINHOST_VST 1 |
|
|
|
|
|
|
|
/** Enabling this builds support for AudioUnit audio plugins. |
|
|
|
@see AudioUnitPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST |
|
|
|
*/ |
|
|
|
#define JUCE_PLUGINHOST_AU 1 |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** Disabling this will avoid linking to any UI code. This is handy for |
|
|
|
writing command-line utilities, e.g. on linux boxes which don't have some |
|
|
|
of the UI libraries installed. |
|
|
|
|
|
|
|
(On mac and windows, this won't generally make much difference to the build). |
|
|
|
*/ |
|
|
|
#ifndef JUCE_BUILD_GUI_CLASSES |
|
|
|
#define JUCE_BUILD_GUI_CLASSES 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
/** This lets you disable building of the WebBrowserComponent, if it's not required. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_WEB_BROWSER |
|
|
|
#define JUCE_WEB_BROWSER 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/* These flags let you avoid the direct inclusion of some 3rd-party libs in the |
|
|
|
codebase - you might need to use this if you're linking to some of these libraries |
|
|
|
yourself. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_INCLUDE_ZLIB_CODE |
|
|
|
#define JUCE_INCLUDE_ZLIB_CODE 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifndef JUCE_INCLUDE_FLAC_CODE |
|
|
|
#define JUCE_INCLUDE_FLAC_CODE 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifndef JUCE_INCLUDE_OGGVORBIS_CODE |
|
|
|
#define JUCE_INCLUDE_OGGVORBIS_CODE 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
/** Enable this to add extra memory-leak info to the new and delete operators. |
|
|
|
|
|
|
|
(Currently, this only affects Windows builds in debug mode). |
|
|
|
*/ |
|
|
|
#ifndef JUCE_CHECK_MEMORY_LEAKS |
|
|
|
#define JUCE_CHECK_MEMORY_LEAKS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
/** Enable this to turn on juce's internal catching of exceptions. |
|
|
|
|
|
|
|
Turning it off will avoid any exception catching. With it on, all exceptions |
|
|
|
are passed to the JUCEApplication::unhandledException() callback for logging. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_CATCH_UNHANDLED_EXCEPTIONS |
|
|
|
#define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
/** If this macro is set, the Juce String class will use unicode as its |
|
|
|
internal representation. If it isn't set, it'll use ANSI. |
|
|
|
*/ |
|
|
|
#ifndef JUCE_STRINGS_ARE_UNICODE |
|
|
|
#define JUCE_STRINGS_ARE_UNICODE 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//============================================================================= |
|
|
|
|
|
|
|
#endif |