diff --git a/data/update-juce b/data/update-juce index 756503d2b..a03238dc1 100755 --- a/data/update-juce +++ b/data/update-juce @@ -14,7 +14,7 @@ git clone git@github.com:DISTRHO/DISTRHO-Ports.git ${DISTRHO_PORTS_DIR} --depth= CARLA_MODULES_DIR=${CARLA_DIR}/source/modules JUCE_MODULES_DIR=${DISTRHO_PORTS_DIR}/libs/juce7/source/modules -MODULES=("juce_audio_basics juce_audio_devices juce_audio_processors juce_core juce_data_structures juce_events juce_graphics juce_gui_basics juce_gui_extra") +MODULES=("juce_audio_basics juce_audio_devices juce_audio_formats juce_audio_processors juce_core juce_data_structures juce_dsp juce_events juce_graphics juce_gui_basics juce_gui_extra") for M in ${MODULES}; do echo ${CARLA_MODULES_DIR}/${M}; diff --git a/source/modules/AppConfig.h b/source/modules/AppConfig.h index 685a7c04e..8d27f9e30 100644 --- a/source/modules/AppConfig.h +++ b/source/modules/AppConfig.h @@ -18,6 +18,10 @@ #ifndef CARLA_JUCE_APPCONFIG_H_INCLUDED #define CARLA_JUCE_APPCONFIG_H_INCLUDED +#if defined(DEBUG) && defined(NDEBUG) +# undef DEBUG +#endif + // -------------------------------------------------------------------------------------------------------------------- // Check OS @@ -167,14 +171,14 @@ If your app doesn't need to read FLAC files, you might want to disable this to reduce the size of your codebase and build time. */ -#define JUCE_USE_FLAC 1 +#define JUCE_USE_FLAC 0 /** Config: JUCE_USE_OGGVORBIS Enables the Ogg-Vorbis audio codec classes (available on all platforms). If your app doesn't need to read Ogg-Vorbis files, you might want to disable this to reduce the size of your codebase and build time. */ -#define JUCE_USE_OGGVORBIS 1 +#define JUCE_USE_OGGVORBIS 0 /** Config: JUCE_USE_MP3AUDIOFORMAT Enables the software-based MP3AudioFormat class. @@ -193,7 +197,7 @@ /** Config: JUCE_USE_LAME_AUDIO_FORMAT Enables the LameEncoderAudioFormat class. */ -#define JUCE_USE_LAME_AUDIO_FORMAT 1 +#define JUCE_USE_LAME_AUDIO_FORMAT 0 /** Config: JUCE_USE_WINDOWS_MEDIA_FORMAT Enables the Windows Media SDK codecs. @@ -326,6 +330,75 @@ // nothing here +// -------------------------------------------------------------------------------------------------------------------- +// juce_dsp + +//============================================================================== +/** Config: JUCE_ASSERTION_FIRFILTER + + When this flag is enabled, an assertion will be generated during the + execution of DEBUG configurations if you use a FIRFilter class to process + FIRCoefficients with a size higher than 128, to tell you that's it would be + more efficient to use the Convolution class instead. It is enabled by + default, but you may want to disable it if you really want to process such + a filter in the time domain. +*/ +#define JUCE_ASSERTION_FIRFILTER 0 + +/** Config: JUCE_DSP_USE_INTEL_MKL + + If this flag is set, then JUCE will use Intel's MKL for JUCE's FFT and + convolution classes. + + If you're using the Projucer's Visual Studio exporter, you should also set + the "Use MKL Library (oneAPI)" option in the exporter settings to + "Sequential" or "Parallel". If you're not using the Visual Studio exporter, + the folder containing the mkl_dfti.h header must be in your header search + paths, and you must link against all the necessary MKL libraries. +*/ +#define JUCE_DSP_USE_INTEL_MKL 0 + +/** Config: JUCE_DSP_USE_SHARED_FFTW + + If this flag is set, then JUCE will search for the fftw shared libraries + at runtime and use the library for JUCE's FFT and convolution classes. + + If the library is not found, then JUCE's fallback FFT routines will be used. + + This is especially useful on linux as fftw often comes pre-installed on + popular linux distros. + + You must respect the FFTW license when enabling this option. +*/ +#define JUCE_DSP_USE_SHARED_FFTW 0 + +/** Config: JUCE_DSP_USE_STATIC_FFTW + + If this flag is set, then JUCE will use the statically linked fftw libraries + for JUCE's FFT and convolution classes. + + You must add the fftw header/library folder to the extra header/library search + paths of your JUCE project. You also need to add the fftw library itself + to the extra libraries supplied to your JUCE project during linking. + + You must respect the FFTW license when enabling this option. +*/ +#define JUCE_DSP_USE_STATIC_FFTW 0 + +/** Config: JUCE_DSP_ENABLE_SNAP_TO_ZERO + + Enables code in the dsp module to avoid floating point denormals during the + processing of some of the dsp module's filters. + + Enabling this will add a slight performance overhead to the DSP module's + filters and algorithms. If your audio app already disables denormals altogether + (for example, by using the ScopedNoDenormals class or the + FloatVectorOperations::disableDenormalisedNumberSupport method), then you + can safely disable this flag to shave off a few cpu cycles from the DSP module's + filters and algorithms. +*/ +#define JUCE_DSP_ENABLE_SNAP_TO_ZERO 0 + // -------------------------------------------------------------------------------------------------------------------- // juce_events diff --git a/source/modules/juce_core/system/juce_TargetPlatform.h b/source/modules/juce_core/system/juce_TargetPlatform.h index aca2e6567..21d0db5cf 100644 --- a/source/modules/juce_core/system/juce_TargetPlatform.h +++ b/source/modules/juce_core/system/juce_TargetPlatform.h @@ -36,25 +36,7 @@ */ //============================================================================== -#ifdef JUCE_APP_CONFIG_HEADER - #include JUCE_APP_CONFIG_HEADER -#elif ! defined (JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED) - /* - Most projects will contain a global header file containing various settings that - should be applied to all the code in your project. If you use the projucer, it'll - set up a global header file for you automatically, but if you're doing things manually, - you may want to set the JUCE_APP_CONFIG_HEADER macro with the name of a file to include, - or just include one before all the module cpp files, in which you set - JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1 to silence this error. - (Or if you don't need a global header, then you can just define JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED - globally to avoid this error). - - Note for people who hit this error when trying to compile a JUCE project created by - a pre-v4.2 version of the Introjucer/Projucer, it's very easy to fix: just re-save - your project with the latest version of the Projucer, and it'll magically fix this! - */ - #error "No global header file was included!" -#endif +#include "AppConfig.h" //============================================================================== #if defined (_WIN32) || defined (_WIN64)