Browse Source

Add back juce6.0, to be used for vitalium

Signed-off-by: falkTX <falktx@falktx.com>
pull/115/merge
falkTX 5 months ago
parent
commit
c4534c95bc
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
100 changed files with 29404 additions and 0 deletions
  1. +469
    -0
      libs/juce6.0/AppConfig.h
  2. +82
    -0
      libs/juce6.0/meson.build
  3. +14
    -0
      libs/juce6.0/patches/01_audiodevicemanager-prefer-jack-over-alsa.patch
  4. +80
    -0
      libs/juce6.0/patches/02_flac-assume-sse-present.patch
  5. +13
    -0
      libs/juce6.0/patches/03_fix-midi-message-constness.patch
  6. +2796
    -0
      libs/juce6.0/patches/04_vst2-interface.patch
  7. +538
    -0
      libs/juce6.0/patches/04_vst2-interface_file.patch
  8. +58
    -0
      libs/juce6.0/patches/05_mingw-fixes.patch
  9. +307
    -0
      libs/juce6.0/patches/06_old-compiler-compatibility.patch
  10. +13
    -0
      libs/juce6.0/patches/07_allow-local-ladspa.patch
  11. +406
    -0
      libs/juce6.0/patches/08_remove-splashscreen.patch
  12. +46
    -0
      libs/juce6.0/patches/09_proper-getExecutableFile.patch
  13. +119
    -0
      libs/juce6.0/patches/10_fix-fork-exec-usage.patch
  14. +61
    -0
      libs/juce6.0/patches/11_childprocess-getPID.patch
  15. +25
    -0
      libs/juce6.0/patches/12_linux-filechooser-needs-modal-loops.patch
  16. +70
    -0
      libs/juce6.0/patches/13_dialogwindow-allow-native-titlebar.patch
  17. +23
    -0
      libs/juce6.0/patches/14_fix-x11-temporary-windows.patch
  18. +16
    -0
      libs/juce6.0/patches/15_fix-linux-thread-prio.patch
  19. +24
    -0
      libs/juce6.0/patches/16_lv2-definitions.patch
  20. +14
    -0
      libs/juce6.0/patches/17_allow-vst2-without-audio.patch
  21. +13
    -0
      libs/juce6.0/patches/18_dynamic-vst2-plugin-name.patch
  22. +17
    -0
      libs/juce6.0/patches/19_fix-vst2-linux-gui-init.patch
  23. +20
    -0
      libs/juce6.0/patches/20_messagemanager-dispatch-public.patch
  24. +145
    -0
      libs/juce6.0/patches/21_audioprocessor-no-gui.patch
  25. +34
    -0
      libs/juce6.0/patches/22_mingw-filechooser-no-vista.patch
  26. +26
    -0
      libs/juce6.0/patches/23_fix-juce-includes.patch
  27. +117
    -0
      libs/juce6.0/patches/24_vital-needed-changes.patch
  28. +0
    -0
      libs/juce6.0/patches/24_vital-needed-changes_pt2.patch
  29. +457
    -0
      libs/juce6.0/patches/24_vital-needed-changes_pt3.patch
  30. +18
    -0
      libs/juce6.0/patches/25_mingw-atomic-add.patch
  31. +98
    -0
      libs/juce6.0/source/README.md
  32. +182
    -0
      libs/juce6.0/source/modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.h
  33. +725
    -0
      libs/juce6.0/source/modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp
  34. +496
    -0
      libs/juce6.0/source/modules/juce_audio_basics/buffers/juce_AudioChannelSet.h
  35. +596
    -0
      libs/juce6.0/source/modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp
  36. +716
    -0
      libs/juce6.0/source/modules/juce_audio_basics/buffers/juce_AudioDataConverters.h
  37. +75
    -0
      libs/juce6.0/source/modules/juce_audio_basics/buffers/juce_AudioProcessLoadMeasurer.cpp
  38. +96
    -0
      libs/juce6.0/source/modules/juce_audio_basics/buffers/juce_AudioProcessLoadMeasurer.h
  39. +1199
    -0
      libs/juce6.0/source/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h
  40. +1305
    -0
      libs/juce6.0/source/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp
  41. +257
    -0
      libs/juce6.0/source/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h
  42. +88
    -0
      libs/juce6.0/source/modules/juce_audio_basics/juce_audio_basics.cpp
  43. +122
    -0
      libs/juce6.0/source/modules/juce_audio_basics/juce_audio_basics.h
  44. +23
    -0
      libs/juce6.0/source/modules/juce_audio_basics/juce_audio_basics.mm
  45. +308
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiBuffer.cpp
  46. +346
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiBuffer.h
  47. +798
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiFile.cpp
  48. +197
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiFile.h
  49. +177
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp
  50. +196
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiKeyboardState.h
  51. +1328
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiMessage.cpp
  52. +986
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiMessage.h
  53. +412
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp
  54. +306
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiMessageSequence.h
  55. +380
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiRPN.cpp
  56. +154
    -0
      libs/juce6.0/source/modules/juce_audio_basics/midi/juce_MidiRPN.h
  57. +2310
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp
  58. +415
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPEInstrument.h
  59. +238
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPEMessages.cpp
  60. +116
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPEMessages.h
  61. +127
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPENote.cpp
  62. +184
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPENote.h
  63. +338
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp
  64. +312
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPESynthesiser.h
  65. +376
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp
  66. +215
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h
  67. +50
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp
  68. +191
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h
  69. +494
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPEUtils.cpp
  70. +153
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPEUtils.h
  71. +173
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPEValue.cpp
  72. +97
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPEValue.h
  73. +386
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp
  74. +225
    -0
      libs/juce6.0/source/modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h
  75. +332
    -0
      libs/juce6.0/source/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h
  76. +179
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_AudioSource.h
  77. +315
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp
  78. +119
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_BufferingAudioSource.h
  79. +187
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp
  80. +141
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h
  81. +80
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp
  82. +68
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h
  83. +261
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_MemoryAudioSource.cpp
  84. +82
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_MemoryAudioSource.h
  85. +158
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp
  86. +99
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_MixerAudioSource.h
  87. +76
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_PositionableAudioSource.h
  88. +265
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp
  89. +106
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h
  90. +83
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp
  91. +74
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_ReverbAudioSource.h
  92. +78
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp
  93. +71
    -0
      libs/juce6.0/source/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h
  94. +585
    -0
      libs/juce6.0/source/modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp
  95. +645
    -0
      libs/juce6.0/source/modules/juce_audio_basics/synthesisers/juce_Synthesiser.h
  96. +248
    -0
      libs/juce6.0/source/modules/juce_audio_basics/utilities/juce_ADSR.h
  97. +112
    -0
      libs/juce6.0/source/modules/juce_audio_basics/utilities/juce_Decibels.h
  98. +500
    -0
      libs/juce6.0/source/modules/juce_audio_basics/utilities/juce_GenericInterpolator.h
  99. +336
    -0
      libs/juce6.0/source/modules/juce_audio_basics/utilities/juce_IIRFilter.cpp
  100. +217
    -0
      libs/juce6.0/source/modules/juce_audio_basics/utilities/juce_IIRFilter.h

+ 469
- 0
libs/juce6.0/AppConfig.h View File

@@ -0,0 +1,469 @@
/*
==============================================================================
Build options for juce static library
==============================================================================
*/
#ifndef BUILD_JUCE_APPCONFIG_H_INCLUDED
#define BUILD_JUCE_APPCONFIG_H_INCLUDED
#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1
#define JUCE_MODULE_AVAILABLE_juce_audio_formats 1
#define JUCE_MODULE_AVAILABLE_juce_audio_plugin_client 1
#define JUCE_MODULE_AVAILABLE_juce_audio_processors 1
#define JUCE_MODULE_AVAILABLE_juce_audio_utils 1
#define JUCE_MODULE_AVAILABLE_juce_blocks_basics 0
#define JUCE_MODULE_AVAILABLE_juce_box2d 0
#define JUCE_MODULE_AVAILABLE_juce_core 1
#define JUCE_MODULE_AVAILABLE_juce_cryptography 1
#define JUCE_MODULE_AVAILABLE_juce_data_structures 1
#define JUCE_MODULE_AVAILABLE_juce_dsp 1
#define JUCE_MODULE_AVAILABLE_juce_events 1
#define JUCE_MODULE_AVAILABLE_juce_graphics 1
#define JUCE_MODULE_AVAILABLE_juce_gui_basics 1
#define JUCE_MODULE_AVAILABLE_juce_gui_extra 1
#define JUCE_MODULE_AVAILABLE_juce_opengl 1
#define JUCE_MODULE_AVAILABLE_juce_osc 0
#define JUCE_MODULE_AVAILABLE_juce_product_unlocking 0
#define JUCE_MODULE_AVAILABLE_juce_video 0
// optional
#ifndef JUCE_MODULE_AVAILABLE_juce_audio_devices
#define JUCE_MODULE_AVAILABLE_juce_audio_devices 0
#endif
// FIXME needed for some plugins
#define JUCE_MODAL_LOOPS_PERMITTED 1
//=============================================================================
#define JUCE_STANDALONE_APPLICATION 0
#define JUCE_REPORT_APP_USAGE 0
#define JUCE_DISPLAY_SPLASH_SCREEN 0
#define JUCE_USE_DARK_SPLASH_SCREEN 0
//=============================================================================
// juce_audio_basics
#ifdef __ARM_NEON__
#define JUCE_USE_ARM_NEON 1
#endif
#ifdef __SSE2__
#define JUCE_USE_SSE_INTRINSICS 1
#endif
//=============================================================================
// juce_audio_devices
/** Config: JUCE_ASIO
Enables ASIO audio devices (MS Windows only).
Turning this on means that you'll need to have the Steinberg ASIO SDK installed
on your Windows build machine.
See the comments in the ASIOAudioIODevice class's header file for more
info about this.
*/
#define JUCE_ASIO 0
/** Config: JUCE_WASAPI
Enables WASAPI audio devices (Windows Vista and above).
*/
#define JUCE_WASAPI 0
/** Config: JUCE_DIRECTSOUND
Enables DirectSound audio (MS Windows only).
*/
#define JUCE_DIRECTSOUND 0
/** Config: JUCE_ALSA
Enables ALSA audio devices (Linux only).
*/
#if LINUX
#define JUCE_ALSA 1
#define JUCE_ALSA_MIDI_NAME "JuceMidi"
#else
#define JUCE_ALSA 0
#endif
/** Config: JUCE_JACK
Enables JACK audio devices (Linux only).
*/
#define JUCE_JACK 0
/** Config: JUCE_USE_ANDROID_OPENSLES
Enables OpenSLES devices (Android only).
*/
#define JUCE_USE_ANDROID_OPENSLES 0
/** Config: JUCE_USE_CDREADER
Enables the AudioCDReader class (on supported platforms).
*/
#define JUCE_USE_CDREADER 0
/** Config: JUCE_USE_CDBURNER
Enables the AudioCDBurner class (on supported platforms).
*/
#define JUCE_USE_CDBURNER 0
//=============================================================================
// juce_audio_formats
/** Config: JUCE_USE_FLAC
Enables the FLAC audio codec classes (available on all platforms).
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
/** 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
/** Config: JUCE_USE_MP3AUDIOFORMAT
Enables the software-based MP3AudioFormat class.
IMPORTANT DISCLAIMER: By choosing to enable the JUCE_USE_MP3AUDIOFORMAT flag and to compile
this MP3 code into your software, you do so AT YOUR OWN RISK! By doing so, you are agreeing
that Raw Material Software is in no way responsible for any patent, copyright, or other
legal issues that you may suffer as a result.
The code in juce_MP3AudioFormat.cpp is NOT guaranteed to be free from infringements of 3rd-party
intellectual property. If you wish to use it, please seek your own independent advice about the
legality of doing so. If you are not willing to accept full responsibility for the consequences
of using this code, then do not enable this setting.
*/
#define JUCE_USE_MP3AUDIOFORMAT 0
/** Config: JUCE_USE_LAME_AUDIO_FORMAT
Enables the LameEncoderAudioFormat class.
*/
#define JUCE_USE_LAME_AUDIO_FORMAT 0
/** Config: JUCE_USE_WINDOWS_MEDIA_FORMAT
Enables the Windows Media SDK codecs.
*/
#define JUCE_USE_WINDOWS_MEDIA_FORMAT 0
//=============================================================================
// juce_audio_processors
/** Config: JUCE_PLUGINHOST_VST
Enables the VST audio plugin hosting classes. This requires the Steinberg VST SDK to be
installed on your machine.
@see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU, JUCE_PLUGINHOST_VST3
*/
#define JUCE_PLUGINHOST_VST 1
/** Config: JUCE_PLUGINHOST_VST3
Enables the VST3 audio plugin hosting classes. This requires the Steinberg VST3 SDK to be
installed on your machine.
@see VSTPluginFormat, VST3PluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST, JUCE_PLUGINHOST_AU
*/
#if 0 //MAC || WINDOWS
#define JUCE_PLUGINHOST_VST3 1
#else
#define JUCE_PLUGINHOST_VST3 0
#endif
/** Config: JUCE_PLUGINHOST_AU
Enables the AudioUnit plugin hosting classes. This is Mac-only, of course.
@see AudioUnitPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST, JUCE_PLUGINHOST_VST3
*/
#if MAC
#define JUCE_PLUGINHOST_AU 1
#else
#define JUCE_PLUGINHOST_AU 0
#endif
#if LINUX
#define JUCE_PLUGINHOST_LADSPA 1
#else
#define JUCE_PLUGINHOST_LADSPA 0
#endif
//=============================================================================
// juce_audio_utils
//=============================================================================
// juce_core
/** Config: JUCE_FORCE_DEBUG
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 to force it to be true or false.
*/
#define JUCE_FORCE_DEBUG 0
/** Config: JUCE_LOG_ASSERTIONS
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
*/
#define JUCE_LOG_ASSERTIONS 1
/** Config: JUCE_CHECK_MEMORY_LEAKS
Enables a memory-leak check for certain objects when the app terminates. See the LeakedObjectDetector
class and the JUCE_LEAK_DETECTOR macro for more details about enabling leak checking for specific classes.
*/
#ifdef DEBUG
#define JUCE_CHECK_MEMORY_LEAKS 1
#else
#define JUCE_CHECK_MEMORY_LEAKS 0
#endif
/** Config: JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
In a Visual C++ build, this can be used to stop the required system libs being
automatically added to the link stage.
*/
#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES 0
/* Config: JUCE_INCLUDE_ZLIB_CODE
This can be used to disable Juce's embedded 3rd-party zlib code.
You might need to tweak this if you're linking to an external zlib library in your app,
but for normal apps, this option should be left alone.
If you disable this, you might also want to set a value for JUCE_ZLIB_INCLUDE_PATH, to
specify the path where your zlib headers live.
*/
#define JUCE_INCLUDE_ZLIB_CODE 1
/** Config: JUCE_USE_CURL
Enables http/https support via libcurl (Linux only). Enabling this will add an additional
run-time dynmic dependency to libcurl.
If you disable this then https/ssl support will not be available on linux.
*/
#define JUCE_USE_CURL 0
/* Config: JUCE_CATCH_UNHANDLED_EXCEPTIONS
If enabled, this will add some exception-catching code to forward unhandled exceptions
to your JUCEApplication::unhandledException() callback.
*/
#define JUCE_CATCH_UNHANDLED_EXCEPTIONS 0
/** Config: JUCE_ALLOW_STATIC_NULL_VARIABLES
If disabled, this will turn off dangerous static globals like String::empty, var::null, etc
which can cause nasty order-of-initialisation problems if they are referenced during static
constructor code.
*/
#define JUCE_ALLOW_STATIC_NULL_VARIABLES 0
#define JUCE_STRING_UTF_TYPE 8
#define JUCE_USE_VFORK 1
//=============================================================================
// juce_cryptography
//=============================================================================
// juce_data_structures
//=============================================================================
// 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.
The folder containing the mkl_dfti.h header must be in your header
search paths when using this flag. You also need to add all the necessary
intel mkl libraries to the "External Libraries to Link" field in the
Projucer.
*/
#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 1
/** 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 exmaple, 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
//=============================================================================
// juce_graphics
//=============================================================================
/** Config: JUCE_USE_COREIMAGE_LOADER
On OSX, enabling this flag means that the CoreImage codecs will be used to load
PNG/JPEG/GIF files. It is enabled by default, but you may want to disable it if
you'd rather use libpng, libjpeg, etc.
*/
#if MAC
#define JUCE_USE_COREIMAGE_LOADER 1
#else
#define JUCE_USE_COREIMAGE_LOADER 0
#endif
/** Config: JUCE_USE_DIRECTWRITE
Enabling this flag means that DirectWrite will be used when available for font
management and layout.
*/
#define JUCE_USE_DIRECTWRITE 0
#define JUCE_INCLUDE_PNGLIB_CODE 1
#define JUCE_INCLUDE_JPEGLIB_CODE 1
#if MAC
#define USE_COREGRAPHICS_RENDERING 1
#else
#define USE_COREGRAPHICS_RENDERING 0
#endif
//=============================================================================
// juce_gui_basics
/** Config: JUCE_ENABLE_REPAINT_DEBUGGING
If this option is turned on, each area of the screen that gets repainted will
flash in a random colour, so that you can see exactly which bits of your
components are being drawn.
*/
#define JUCE_ENABLE_REPAINT_DEBUGGING 0
/** JUCE_USE_XRANDR: Enables Xrandr multi-monitor support (Linux only).
Unless you specifically want to disable this, it's best to leave this option turned on.
Note that your users do not need to have Xrandr installed for your JUCE app to run, as
the availability of Xrandr is queried during runtime.
*/
#define JUCE_USE_XRANDR 0
/** JUCE_USE_XINERAMA: Enables Xinerama multi-monitor support (Linux only).
Unless you specifically want to disable this, it's best to leave this option turned on.
*/
#define JUCE_USE_XINERAMA 0
/** Config: JUCE_USE_XSHM
Enables X shared memory for faster rendering on Linux. This is best left turned on
unless you have a good reason to disable it.
*/
#if LINUX
#define JUCE_USE_XSHM 1
#else
#define JUCE_USE_XSHM 0
#endif
/** Config: JUCE_USE_XRENDER
Enables XRender to allow semi-transparent windowing on Linux.
*/
#define JUCE_USE_XRENDER 0
/** Config: JUCE_USE_XCURSOR
Uses XCursor to allow ARGB cursor on Linux. This is best left turned on unless you have
a good reason to disable it.
*/
#if LINUX
#define JUCE_USE_XCURSOR 1
#else
#define JUCE_USE_XCURSOR 0
#endif
#if LINUX
#define JUCE_DISABLE_NATIVE_FILECHOOSERS 1
#endif
//=============================================================================
// juce_gui_extra
/** Config: JUCE_WEB_BROWSER
This lets you disable the WebBrowserComponent class (Mac and Windows).
If you're not using any embedded web-pages, turning this off may reduce your code size.
*/
#define JUCE_WEB_BROWSER 0
/** Config: JUCE_ENABLE_LIVE_CONSTANT_EDITOR
This lets you turn on the JUCE_ENABLE_LIVE_CONSTANT_EDITOR support. See the documentation
for that macro for more details.
*/
#define JUCE_ENABLE_LIVE_CONSTANT_EDITOR 0
//=============================================================================
// juce_opengl
#define JUCE_OPENGL3 1
//=============================================================================
// Linux embed build
#if JUCE_AUDIOPROCESSOR_NO_GUI
#undef JUCE_MODULE_AVAILABLE_juce_graphics
#undef JUCE_MODULE_AVAILABLE_juce_gui_basics
#undef JUCE_MODULE_AVAILABLE_juce_gui_extra
#undef JUCE_MODULE_AVAILABLE_juce_opengl
#define JUCE_MODULE_AVAILABLE_juce_graphics 0
#define JUCE_MODULE_AVAILABLE_juce_gui_basics 0
#define JUCE_MODULE_AVAILABLE_juce_gui_extra 0
#define JUCE_MODULE_AVAILABLE_juce_opengl 0
#undef JUCE_ALSA
#undef JUCE_PLUGINHOST_LADSPA
#undef JUCE_PLUGINHOST_VST
#define JUCE_ALSA 0
#define JUCE_PLUGINHOST_LADSPA 0
#define JUCE_PLUGINHOST_VST 0
#endif
#endif // BUILD_JUCE_APPCONFIG_H_INCLUDED

+ 82
- 0
libs/juce6.0/meson.build View File

@@ -0,0 +1,82 @@
###############################################################################

if linux_embed
juce60_srcs = [
'source/modules/juce_audio_basics/juce_audio_basics.cpp',
'source/modules/juce_audio_formats/juce_audio_formats.cpp',
'source/modules/juce_audio_processors/juce_audio_processors.cpp',
'source/modules/juce_audio_utils/juce_audio_utils.cpp',
'source/modules/juce_core/juce_core.cpp',
'source/modules/juce_cryptography/juce_cryptography.cpp',
'source/modules/juce_data_structures/juce_data_structures.cpp',
'source/modules/juce_dsp/juce_dsp.cpp',
'source/modules/juce_events/juce_events.cpp',
]
else
juce60_srcs = [
'source/modules/juce_audio_basics/juce_audio_basics.cpp',
'source/modules/juce_audio_formats/juce_audio_formats.cpp',
'source/modules/juce_audio_processors/juce_audio_processors.cpp',
'source/modules/juce_audio_utils/juce_audio_utils.cpp',
'source/modules/juce_core/juce_core.cpp',
'source/modules/juce_cryptography/juce_cryptography.cpp',
'source/modules/juce_data_structures/juce_data_structures.cpp',
'source/modules/juce_dsp/juce_dsp.cpp',
'source/modules/juce_events/juce_events.cpp',
'source/modules/juce_graphics/juce_graphics.cpp',
'source/modules/juce_gui_basics/juce_gui_basics.cpp',
'source/modules/juce_gui_extra/juce_gui_extra.cpp',
'source/modules/juce_opengl/juce_opengl.cpp',
]
endif

juce60_devices_srcs = [
'source/modules/juce_audio_devices/juce_audio_devices.cpp',
]

juce60_extra_cpp_args = [
'-std=gnu++14',
'-Wno-non-virtual-dtor',
]

if os_windows
juce60_extra_cpp_args += [
'-D_NATIVE_WCHAR_T_DEFINED',
'-D__wchar_t=wchar_t',
'-Wno-unknown-pragmas',
]
if host_machine.cpu() == 'x86'
juce60_extra_cpp_args += [
'-mpreferred-stack-boundary=2',
]
endif
endif

lib_juce60 = static_library('juce60',
sources: juce60_srcs,
include_directories: [
include_directories('.'),
include_directories('source'),
include_directories('source/modules'),
include_directories('../juced/source/dependancies/ladspa_sdk/src'),
],
cpp_args: build_flags_cpp + juce60_extra_cpp_args,
dependencies: dependencies,
pic: true,
install: false,
)

lib_juce60_device = static_library('juce60-devices',
sources: juce60_devices_srcs,
include_directories: [
include_directories('.'),
include_directories('source'),
include_directories('source/modules'),
],
cpp_args: build_flags_cpp + juce60_extra_cpp_args + ['-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1'],
dependencies: dependencies_devices,
pic: true,
install: false,
)

###############################################################################

+ 14
- 0
libs/juce6.0/patches/01_audiodevicemanager-prefer-jack-over-alsa.patch View File

@@ -0,0 +1,14 @@
diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp
index a19c7b05e..deabba6db 100644
--- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp
+++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp
@@ -185,8 +185,8 @@ void AudioDeviceManager::createAudioDeviceTypes (OwnedArray<AudioIODeviceType>&
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_CoreAudio());
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_iOSAudio());
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Bela());
- addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_ALSA());
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_JACK());
+ addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_ALSA());
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Oboe());
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_OpenSLES());
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Android());

+ 80
- 0
libs/juce6.0/patches/02_flac-assume-sse-present.patch View File

@@ -0,0 +1,80 @@
diff --git a/modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c b/modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c
index 4eac42e95..74d120e7d 100644
--- a/modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c
+++ b/modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c
@@ -240,42 +240,7 @@ void FLAC__cpu_info(FLAC__CPUInfo *info)
disable_sse(info);
# endif
#elif defined(__linux__)
- int sse = 0;
- struct sigaction sigill_save;
- struct sigaction sigill_sse;
- sigill_sse.sa_sigaction = sigill_handler_sse_os;
- #ifdef __ANDROID__
- sigemptyset (&sigill_sse.sa_mask);
- #else
- __sigemptyset(&sigill_sse.sa_mask);
- #endif
- sigill_sse.sa_flags = SA_SIGINFO | SA_RESETHAND; /* SA_RESETHAND just in case our SIGILL return jump breaks, so we don't get stuck in a loop */
- if(0 == sigaction(SIGILL, &sigill_sse, &sigill_save))
- {
- /* http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html */
- /* see sigill_handler_sse_os() for an explanation of the following: */
- asm volatile (
- "xorps %%xmm0,%%xmm0\n\t" /* will cause SIGILL if unsupported by OS */
- "incl %0\n\t" /* SIGILL handler will jump over this */
- /* landing zone */
- "nop\n\t" /* SIGILL jump lands here if "inc" is 9 bytes */
- "nop\n\t"
- "nop\n\t"
- "nop\n\t"
- "nop\n\t"
- "nop\n\t"
- "nop\n\t" /* SIGILL jump lands here if "inc" is 3 bytes (expected) */
- "nop\n\t"
- "nop" /* SIGILL jump lands here if "inc" is 1 byte */
- : "=r"(sse)
- : "0"(sse)
- );
-
- sigaction(SIGILL, &sigill_save, NULL);
- }
-
- if(!sse)
- disable_sse(info);
+ int sse = 1;
#elif defined(_MSC_VER)
__try {
__asm {
@@ -287,30 +252,7 @@ void FLAC__cpu_info(FLAC__CPUInfo *info)
disable_sse(info);
}
#elif defined(__GNUC__) /* MinGW goes here */
- int sse = 0;
- /* Based on the idea described in Agner Fog's manual "Optimizing subroutines in assembly language" */
- /* In theory, not guaranteed to detect lack of OS SSE support on some future Intel CPUs, but in practice works (see the aforementioned manual) */
- if (ia32_fxsr) {
- struct {
- FLAC__uint32 buff[128];
- } __attribute__((aligned(16))) fxsr;
- FLAC__uint32 old_val, new_val;
-
- asm volatile ("fxsave %0" : "=m" (fxsr) : "m" (fxsr));
- old_val = fxsr.buff[50];
- fxsr.buff[50] ^= 0x0013c0de; /* change value in the buffer */
- asm volatile ("fxrstor %0" : "=m" (fxsr) : "m" (fxsr)); /* try to change SSE register */
- fxsr.buff[50] = old_val; /* restore old value in the buffer */
- asm volatile ("fxsave %0 " : "=m" (fxsr) : "m" (fxsr)); /* old value will be overwritten if SSE register was changed */
- new_val = fxsr.buff[50]; /* == old_val if FXRSTOR didn't change SSE register and (old_val ^ 0x0013c0de) otherwise */
- fxsr.buff[50] = old_val; /* again restore old value in the buffer */
- asm volatile ("fxrstor %0" : "=m" (fxsr) : "m" (fxsr)); /* restore old values of registers */
-
- if ((old_val^new_val) == 0x0013c0de)
- sse = 1;
- }
- if(!sse)
- disable_sse(info);
+ int sse = 1;
#else
/* no way to test, disable to be safe */
disable_sse(info);

+ 13
- 0
libs/juce6.0/patches/03_fix-midi-message-constness.patch View File

@@ -0,0 +1,13 @@
diff --git a/modules/juce_audio_basics/midi/juce_MidiMessage.h b/modules/juce_audio_basics/midi/juce_MidiMessage.h
index 22ac79483..5c761f659 100644
--- a/modules/juce_audio_basics/midi/juce_MidiMessage.h
+++ b/modules/juce_audio_basics/midi/juce_MidiMessage.h
@@ -979,7 +979,7 @@ private:
#endif
inline bool isHeapAllocated() const noexcept { return size > (int) sizeof (packedData); }
- inline uint8* getData() const noexcept { return isHeapAllocated() ? packedData.allocatedData : (uint8*) packedData.asBytes; }
+ inline uint8* getData() const noexcept { return isHeapAllocated() ? packedData.allocatedData : const_cast<uint8*>(packedData.asBytes); }
uint8* allocateSpace (int);
};

+ 2796
- 0
libs/juce6.0/patches/04_vst2-interface.patch
File diff suppressed because it is too large
View File


+ 538
- 0
libs/juce6.0/patches/04_vst2-interface_file.patch View File

@@ -0,0 +1,538 @@
diff --git a/modules/juce_audio_processors/format_types/juce_VSTInterface.h b/modules/juce_audio_processors/format_types/juce_VSTInterface.h
new file mode 100644
index 000000000..58179be1a
--- /dev/null
+++ b/modules/juce_audio_processors/format_types/juce_VSTInterface.h
@@ -0,0 +1,532 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE library.
+ Copyright (c) 2017 - ROLI Ltd.
+
+ JUCE is an open source library subject to commercial or open-source
+ licensing.
+
+ By using JUCE, you agree to the terms of both the JUCE 5 End-User License
+ Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
+ 27th April 2017).
+
+ End User License Agreement: www.juce.com/juce-5-licence
+ Privacy Policy: www.juce.com/juce-5-privacy-policy
+
+ Or: You may also use this code under the terms of the GPL v3 (see
+ www.gnu.org/licenses).
+
+ JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
+ EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
+ DISCLAIMED.
+
+ ==============================================================================
+*/
+
+#ifndef JUCE_VSTINTERFACE_H_INCLUDED
+#define JUCE_VSTINTERFACE_H_INCLUDED
+
+using namespace juce;
+
+#if JUCE_MSVC
+ #define VSTINTERFACECALL __cdecl
+ #pragma pack(push)
+ #pragma pack(8)
+#elif JUCE_MAC || JUCE_IOS
+ #define VSTINTERFACECALL
+ #if JUCE_64BIT
+ #pragma options align=power
+ #else
+ #pragma options align=mac68k
+ #endif
+#else
+ #define VSTINTERFACECALL
+ #pragma pack(push, 8)
+#endif
+
+const int32 juceVstInterfaceVersion = 2400;
+const int32 juceVstInterfaceIdentifier = 0x56737450; // The "magic" identifier in the SDK is 'VstP'.
+
+//==============================================================================
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct VstEffectInterface
+{
+ int32 interfaceIdentifier;
+ pointer_sized_int (VSTINTERFACECALL* dispatchFunction) (VstEffectInterface*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt);
+ void (VSTINTERFACECALL* processAudioFunction) (VstEffectInterface*, float** inputs, float** outputs, int32 numSamples);
+ void (VSTINTERFACECALL* setParameterValueFunction) (VstEffectInterface*, int32 parameterIndex, float value);
+ float (VSTINTERFACECALL* getParameterValueFunction) (VstEffectInterface*, int32 parameterIndex);
+ int32 numPrograms;
+ int32 numParameters;
+ int32 numInputChannels;
+ int32 numOutputChannels;
+ int32 flags;
+ pointer_sized_int hostSpace1;
+ pointer_sized_int hostSpace2;
+ int32 latency;
+ int32 deprecated1;
+ int32 deprecated2;
+ float deprecated3;
+ void* effectPointer;
+ void* userPointer;
+ int32 plugInIdentifier;
+ int32 plugInVersion;
+ void (VSTINTERFACECALL* processAudioInplaceFunction) (VstEffectInterface*, float** inputs, float** outputs, int32 numSamples);
+ void (VSTINTERFACECALL* processDoubleAudioInplaceFunction) (VstEffectInterface*, double** inputs, double** outputs, int32 numSamples);
+ char emptySpace[56];
+};
+
+typedef pointer_sized_int (VSTINTERFACECALL* VstHostCallback) (VstEffectInterface*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt);
+
+enum VstEffectInterfaceFlags
+{
+ vstEffectFlagHasEditor = 1,
+ vstEffectFlagInplaceAudio = 16,
+ vstEffectFlagDataInChunks = 32,
+ vstEffectFlagIsSynth = 256,
+ vstEffectFlagInplaceDoubleAudio = 4096
+};
+
+//==============================================================================
+enum VstHostToPlugInOpcodes
+{
+ plugInOpcodeOpen,
+ plugInOpcodeClose,
+ plugInOpcodeSetCurrentProgram,
+ plugInOpcodeGetCurrentProgram,
+ plugInOpcodeSetCurrentProgramName,
+ plugInOpcodeGetCurrentProgramName,
+ plugInOpcodeGetParameterLabel,
+ plugInOpcodeGetParameterText,
+ plugInOpcodeGetParameterName,
+ plugInOpcodeSetSampleRate = plugInOpcodeGetParameterName + 2,
+ plugInOpcodeSetBlockSize,
+ plugInOpcodeResumeSuspend,
+ plugInOpcodeGetEditorBounds,
+ plugInOpcodeOpenEditor,
+ plugInOpcodeCloseEditor,
+ plugInOpcodeDrawEditor,
+ plugInOpcodeGetMouse,
+ plugInOpcodeEditorIdle = plugInOpcodeGetMouse + 2,
+ plugInOpcodeeffEditorTop,
+ plugInOpcodeSleepEditor,
+ plugInOpcodeIdentify,
+ plugInOpcodeGetData,
+ plugInOpcodeSetData,
+ plugInOpcodePreAudioProcessingEvents,
+ plugInOpcodeIsParameterAutomatable,
+ plugInOpcodeParameterValueForText,
+ plugInOpcodeGetProgramName = plugInOpcodeParameterValueForText + 2,
+ plugInOpcodeConnectInput = plugInOpcodeGetProgramName + 2,
+ plugInOpcodeConnectOutput,
+ plugInOpcodeGetInputPinProperties,
+ plugInOpcodeGetOutputPinProperties,
+ plugInOpcodeGetPlugInCategory,
+ plugInOpcodeSetSpeakerConfiguration = plugInOpcodeGetPlugInCategory + 7,
+ plugInOpcodeSetBypass = plugInOpcodeSetSpeakerConfiguration + 2,
+ plugInOpcodeGetPlugInName,
+ plugInOpcodeGetManufacturerName = plugInOpcodeGetPlugInName + 2,
+ plugInOpcodeGetManufacturerProductName,
+ plugInOpcodeGetManufacturerVersion,
+ plugInOpcodeManufacturerSpecific,
+ plugInOpcodeCanPlugInDo,
+ plugInOpcodeGetTailSize,
+ plugInOpcodeIdle,
+ plugInOpcodeKeyboardFocusRequired = plugInOpcodeIdle + 4,
+ plugInOpcodeGetVstInterfaceVersion,
+ plugInOpcodeGetCurrentMidiProgram = plugInOpcodeGetVstInterfaceVersion + 5,
+ plugInOpcodeGetSpeakerArrangement = plugInOpcodeGetCurrentMidiProgram + 6,
+ plugInOpcodeNextPlugInUniqueID,
+ plugInOpcodeStartProcess,
+ plugInOpcodeStopProcess,
+ plugInOpcodeSetNumberOfSamplesToProcess,
+ plugInOpcodeSetSampleFloatType = plugInOpcodeSetNumberOfSamplesToProcess + 4,
+ pluginOpcodeGetNumMidiInputChannels,
+ pluginOpcodeGetNumMidiOutputChannels,
+ plugInOpcodeMaximum = pluginOpcodeGetNumMidiOutputChannels
+};
+
+
+enum VstPlugInToHostOpcodes
+{
+ hostOpcodeParameterChanged,
+ hostOpcodeVstVersion,
+ hostOpcodeCurrentId,
+ hostOpcodeIdle,
+ hostOpcodePinConnected,
+ hostOpcodePlugInWantsMidi = hostOpcodePinConnected + 2,
+ hostOpcodeGetTimingInfo,
+ hostOpcodePreAudioProcessingEvents,
+ hostOpcodeSetTime,
+ hostOpcodeTempoAt,
+ hostOpcodeGetNumberOfAutomatableParameters,
+ hostOpcodeGetParameterInterval,
+ hostOpcodeIOModified,
+ hostOpcodeNeedsIdle,
+ hostOpcodeWindowSize,
+ hostOpcodeGetSampleRate,
+ hostOpcodeGetBlockSize,
+ hostOpcodeGetInputLatency,
+ hostOpcodeGetOutputLatency,
+ hostOpcodeGetPreviousPlugIn,
+ hostOpcodeGetNextPlugIn,
+ hostOpcodeWillReplace,
+ hostOpcodeGetCurrentAudioProcessingLevel,
+ hostOpcodeGetAutomationState,
+ hostOpcodeOfflineStart,
+ hostOpcodeOfflineReadSource,
+ hostOpcodeOfflineWrite,
+ hostOpcodeOfflineGetCurrentPass,
+ hostOpcodeOfflineGetCurrentMetaPass,
+ hostOpcodeSetOutputSampleRate,
+ hostOpcodeGetOutputSpeakerConfiguration,
+ hostOpcodeGetManufacturerName,
+ hostOpcodeGetProductName,
+ hostOpcodeGetManufacturerVersion,
+ hostOpcodeManufacturerSpecific,
+ hostOpcodeSetIcon,
+ hostOpcodeCanHostDo,
+ hostOpcodeGetLanguage,
+ hostOpcodeOpenEditorWindow,
+ hostOpcodeCloseEditorWindow,
+ hostOpcodeGetDirectory,
+ hostOpcodeUpdateView,
+ hostOpcodeParameterChangeGestureBegin,
+ hostOpcodeParameterChangeGestureEnd,
+};
+
+//==============================================================================
+enum VstProcessingSampleType
+{
+ vstProcessingSampleTypeFloat,
+ vstProcessingSampleTypeDouble
+};
+
+//==============================================================================
+// These names must be identical to the Steinberg SDK so JUCE users can set
+// exactly what they want.
+enum VstPlugInCategory
+{
+ kPlugCategUnknown,
+ kPlugCategEffect,
+ kPlugCategSynth,
+ kPlugCategAnalysis,
+ kPlugCategMastering,
+ kPlugCategSpacializer,
+ kPlugCategRoomFx,
+ kPlugSurroundFx,
+ kPlugCategRestoration,
+ kPlugCategOfflineProcess,
+ kPlugCategShell,
+ kPlugCategGenerator
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct VstEditorBounds
+{
+ int16 upper;
+ int16 leftmost;
+ int16 lower;
+ int16 rightmost;
+};
+
+//==============================================================================
+enum VstMaxStringLengths
+{
+ vstMaxNameLength = 64,
+ vstMaxParameterOrPinLabelLength = 64,
+ vstMaxParameterOrPinShortLabelLength = 8,
+ vstMaxCategoryLength = 24,
+ vstMaxManufacturerStringLength = 64,
+ vstMaxPlugInNameStringLength = 64
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct VstPinInfo
+{
+ char text[vstMaxParameterOrPinLabelLength];
+ int32 flags;
+ int32 configurationType;
+ char shortText[vstMaxParameterOrPinShortLabelLength];
+ char unused[48];
+};
+
+enum VstPinInfoFlags
+{
+ vstPinInfoFlagIsActive = 1,
+ vstPinInfoFlagIsStereo = 2,
+ vstPinInfoFlagValid = 4
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct VstEvent
+{
+ int32 type;
+ int32 size;
+ int32 sampleOffset;
+ int32 flags;
+ char content[16];
+};
+
+enum VstEventTypes
+{
+ vstMidiEventType = 1,
+ vstSysExEventType = 6
+};
+
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct VstEventBlock
+{
+ int32 numberOfEvents;
+ pointer_sized_int future;
+ VstEvent* events[2];
+};
+
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct VstMidiEvent
+{
+ int32 type;
+ int32 size;
+ int32 sampleOffset;
+ int32 flags;
+ int32 noteSampleLength;
+ int32 noteSampleOffset;
+ char midiData[4];
+ char tuning;
+ char noteVelocityOff;
+ char future1;
+ char future2;
+};
+
+enum VstMidiEventFlags
+{
+ vstMidiEventIsRealtime = 1
+};
+
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct VstSysExEvent
+{
+ int32 type;
+ int32 size;
+ int32 offsetSamples;
+ int32 flags;
+ int32 sysExDumpSize;
+ pointer_sized_int future1;
+ char* sysExDump;
+ pointer_sized_int future2;
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct VstTimingInformation
+{
+ double samplePosition;
+ double sampleRate;
+ double systemTimeNanoseconds;
+ double musicalPosition;
+ double tempoBPM;
+ double lastBarPosition;
+ double loopStartPosition;
+ double loopEndPosition;
+ int32 timeSignatureNumerator;
+ int32 timeSignatureDenominator;
+ int32 smpteOffset;
+ int32 smpteRate;
+ int32 samplesToNearestClock;
+ int32 flags;
+};
+
+enum VstTimingInformationFlags
+{
+ vstTimingInfoFlagTransportChanged = 1,
+ vstTimingInfoFlagCurrentlyPlaying = 2,
+ vstTimingInfoFlagLoopActive = 4,
+ vstTimingInfoFlagCurrentlyRecording = 8,
+ vstTimingInfoFlagAutomationWriteModeActive = 64,
+ vstTimingInfoFlagAutomationReadModeActive = 128,
+ vstTimingInfoFlagNanosecondsValid = 256,
+ vstTimingInfoFlagMusicalPositionValid = 512,
+ vstTimingInfoFlagTempoValid = 1024,
+ vstTimingInfoFlagLastBarPositionValid = 2048,
+ vstTimingInfoFlagLoopPositionValid = 4096,
+ vstTimingInfoFlagTimeSignatureValid = 8192,
+ vstTimingInfoFlagSmpteValid = 16384,
+ vstTimingInfoFlagNearestClockValid = 32768
+};
+
+//==============================================================================
+enum VstSmpteRates
+{
+ vstSmpteRateFps24,
+ vstSmpteRateFps25,
+ vstSmpteRateFps2997,
+ vstSmpteRateFps30,
+ vstSmpteRateFps2997drop,
+ vstSmpteRateFps30drop,
+
+ vstSmpteRate16mmFilm,
+ vstSmpteRate35mmFilm,
+
+ vstSmpteRateFps239 = vstSmpteRate35mmFilm + 3,
+ vstSmpteRateFps249 ,
+ vstSmpteRateFps599,
+ vstSmpteRateFps60
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct VstIndividualSpeakerInfo
+{
+ float azimuthalAngle;
+ float elevationAngle;
+ float radius;
+ float reserved;
+ char label[vstMaxNameLength];
+ int32 type;
+ char unused[28];
+};
+
+enum VstIndividualSpeakerType
+{
+ vstIndividualSpeakerTypeUndefined = 0x7fffffff,
+ vstIndividualSpeakerTypeMono = 0,
+ vstIndividualSpeakerTypeLeft,
+ vstIndividualSpeakerTypeRight,
+ vstIndividualSpeakerTypeCentre,
+ vstIndividualSpeakerTypeLFE,
+ vstIndividualSpeakerTypeLeftSurround,
+ vstIndividualSpeakerTypeRightSurround,
+ vstIndividualSpeakerTypeLeftCentre,
+ vstIndividualSpeakerTypeRightCentre,
+ vstIndividualSpeakerTypeSurround,
+ vstIndividualSpeakerTypeCentreSurround = vstIndividualSpeakerTypeSurround,
+ vstIndividualSpeakerTypeLeftRearSurround,
+ vstIndividualSpeakerTypeRightRearSurround,
+ vstIndividualSpeakerTypeTopMiddle,
+ vstIndividualSpeakerTypeTopFrontLeft,
+ vstIndividualSpeakerTypeTopFrontCentre,
+ vstIndividualSpeakerTypeTopFrontRight,
+ vstIndividualSpeakerTypeTopRearLeft,
+ vstIndividualSpeakerTypeTopRearCentre,
+ vstIndividualSpeakerTypeTopRearRight,
+ vstIndividualSpeakerTypeLFE2
+};
+
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct VstSpeakerConfiguration
+{
+ int32 type;
+ int32 numberOfChannels;
+ VstIndividualSpeakerInfo speakers[8];
+};
+
+enum VstSpeakerConfigurationType
+{
+ vstSpeakerConfigTypeUser = -2,
+ vstSpeakerConfigTypeEmpty = -1,
+ vstSpeakerConfigTypeMono = 0,
+ vstSpeakerConfigTypeLR,
+ vstSpeakerConfigTypeLsRs,
+ vstSpeakerConfigTypeLcRc,
+ vstSpeakerConfigTypeSlSr,
+ vstSpeakerConfigTypeCLfe,
+ vstSpeakerConfigTypeLRC,
+ vstSpeakerConfigTypeLRS,
+ vstSpeakerConfigTypeLRCLfe,
+ vstSpeakerConfigTypeLRLfeS,
+ vstSpeakerConfigTypeLRCS,
+ vstSpeakerConfigTypeLRLsRs,
+ vstSpeakerConfigTypeLRCLfeS,
+ vstSpeakerConfigTypeLRLfeLsRs,
+ vstSpeakerConfigTypeLRCLsRs,
+ vstSpeakerConfigTypeLRCLfeLsRs,
+ vstSpeakerConfigTypeLRCLsRsCs,
+ vstSpeakerConfigTypeLRLsRsSlSr,
+ vstSpeakerConfigTypeLRCLfeLsRsCs,
+ vstSpeakerConfigTypeLRLfeLsRsSlSr,
+ vstSpeakerConfigTypeLRCLsRsLcRc,
+ vstSpeakerConfigTypeLRCLsRsSlSr,
+ vstSpeakerConfigTypeLRCLfeLsRsLcRc,
+ vstSpeakerConfigTypeLRCLfeLsRsSlSr,
+ vstSpeakerConfigTypeLRCLsRsLcRcCs,
+ vstSpeakerConfigTypeLRCLsRsCsSlSr,
+ vstSpeakerConfigTypeLRCLfeLsRsLcRcCs,
+ vstSpeakerConfigTypeLRCLfeLsRsCsSlSr,
+ vstSpeakerConfigTypeLRCLfeLsRsTflTfcTfrTrlTrrLfe2
+};
+
+#if JUCE_BIG_ENDIAN
+ #define JUCE_MULTICHAR_CONSTANT(a, b, c, d) (a | (((uint32) b) << 8) | (((uint32) c) << 16) | (((uint32) d) << 24))
+#else
+ #define JUCE_MULTICHAR_CONSTANT(a, b, c, d) (d | (((uint32) c) << 8) | (((uint32) b) << 16) | (((uint32) a) << 24))
+#endif
+
+enum PresonusExtensionConstants
+{
+ presonusVendorID = JUCE_MULTICHAR_CONSTANT ('P', 'r', 'e', 'S'),
+ presonusSetContentScaleFactor = JUCE_MULTICHAR_CONSTANT ('A', 'e', 'C', 's')
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+ @tags{Audio}
+*/
+struct vst2FxBank
+{
+ int32 magic1;
+ int32 size;
+ int32 magic2;
+ int32 version1;
+ int32 fxID;
+ int32 version2;
+ int32 elements;
+ int32 current;
+ char shouldBeZero[124];
+ int32 chunkSize;
+ char chunk[1];
+};
+
+#if JUCE_MSVC
+ #pragma pack(pop)
+#elif JUCE_MAC || JUCE_IOS
+ #pragma options align=reset
+#else
+ #pragma pack(pop)
+#endif
+
+#endif // JUCE_VSTINTERFACE_H_INCLUDED

+ 58
- 0
libs/juce6.0/patches/05_mingw-fixes.patch View File

@@ -0,0 +1,58 @@
diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
index 8683dc728..94f6bf569 100644
--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
@@ -61,7 +61,7 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4996 4100)
#define PRAGMA_ALIGN_SUPPORTED 1
#endif
-#if ! JUCE_MSVC
+#if ! JUCE_WINDOWS
#define __cdecl
#endif
diff --git a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h
index 6bea84307..baaa59f06 100644
--- a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h
+++ b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h
@@ -73,11 +73,6 @@
#define JucePlugin_Build_RTAS 0
#endif
-#if ! (defined (_MSC_VER) || defined (__APPLE_CPP__) || defined (__APPLE_CC__) || defined (LINUX) || defined (__linux__))
- #undef JucePlugin_Build_VST3
- #define JucePlugin_Build_VST3 0
-#endif
-
//==============================================================================
#if JucePlugin_Build_LV2 && ! defined (JucePlugin_LV2URI)
#error "You need to define the JucePlugin_LV2URI value!"
diff --git a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
index 620ba9874..d9359b736 100644
--- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
+++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
@@ -62,9 +62,6 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4355)
#ifndef WM_APPCOMMAND
#define WM_APPCOMMAND 0x0319
#endif
-
- extern "C" void _fpreset();
- extern "C" void _clearfp();
#elif ! JUCE_WINDOWS
static void _fpreset() {}
static void _clearfp() {}
diff --git a/modules/juce_core/threads/juce_WaitableEvent.h b/modules/juce_core/threads/juce_WaitableEvent.h
index 52269f706..670903653 100644
--- a/modules/juce_core/threads/juce_WaitableEvent.h
+++ b/modules/juce_core/threads/juce_WaitableEvent.h
@@ -20,6 +20,10 @@
==============================================================================
*/
+#if JUCE_MINGW && !defined(_GLIBCXX_HAS_GTHREADS)
+#include "mingw-std-threads/mingw.condition_variable.h"
+#endif
+
namespace juce
{

+ 307
- 0
libs/juce6.0/patches/06_old-compiler-compatibility.patch View File

@@ -0,0 +1,307 @@
diff --git a/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h b/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h
index acd165ff0..bdc0bf58f 100644
--- a/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h
+++ b/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h
@@ -20,6 +20,11 @@
==============================================================================
*/
+#ifndef __clang__
+// GCC4 compatibility
+namespace std { using ::max_align_t; }
+#endif
+
namespace juce
{
diff --git a/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h b/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h
index ac5ce32da..f0cd938ae 100644
--- a/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h
+++ b/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h
@@ -236,8 +236,10 @@ private:
{ kAudioChannelLayoutTag_AAC_6_0, { centre, left, right, leftSurround, rightSurround, centreSurround } },
{ kAudioChannelLayoutTag_AAC_6_1, { centre, left, right, leftSurround, rightSurround, centreSurround, LFE } },
{ kAudioChannelLayoutTag_AAC_7_0, { centre, left, right, leftSurround, rightSurround, leftSurroundRear, rightSurroundRear } },
+#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
{ kAudioChannelLayoutTag_AAC_7_1_B, { centre, left, right, leftSurround, rightSurround, leftSurroundRear, rightSurroundRear, LFE } },
{ kAudioChannelLayoutTag_AAC_7_1_C, { centre, left, right, leftSurround, rightSurround, LFE, topFrontLeft, topFrontRight } },
+#endif
{ kAudioChannelLayoutTag_AAC_Octagonal, { centre, left, right, leftSurround, rightSurround, leftSurroundRear, rightSurroundRear, centreSurround } },
{ kAudioChannelLayoutTag_TMH_10_2_std, { left, right, centre, topFrontCentre, leftSurroundSide, rightSurroundSide, leftSurround, rightSurround, topFrontLeft, topFrontRight, wideLeft, wideRight, topRearCentre, centreSurround, LFE, LFE2 } },
{ kAudioChannelLayoutTag_AC3_1_0_1, { centre, LFE } },
diff --git a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm
index 9aa4a338e..7cad3e7c1 100644
--- a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm
+++ b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm
@@ -59,6 +59,10 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations")
namespace juce
{
+#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_8
+static const uint32 kAudioUnitType_MIDIProcessor = 'aumi';
+#endif
+
// Change this to disable logging of various activities
#ifndef AU_LOGGING
#define AU_LOGGING 1
@@ -276,7 +280,7 @@ namespace AudioUnitFormatHelpers
NSBundle* bundle = [[NSBundle alloc] initWithPath: (NSString*) fileOrIdentifier.toCFString()];
NSArray* audioComponents = [bundle objectForInfoDictionaryKey: @"AudioComponents"];
- NSDictionary* dict = audioComponents[0];
+ NSDictionary* dict = [audioComponents objectAtIndex: 0];
desc.componentManufacturer = stringToOSType (nsStringToJuce ((NSString*) [dict valueForKey: @"manufacturer"]));
desc.componentType = stringToOSType (nsStringToJuce ((NSString*) [dict valueForKey: @"type"]));
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
index 39eac8211..f556f12b3 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
@@ -1184,7 +1184,7 @@ public:
String xMeterID, yMeterID;
};
- virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return {}; }
+ virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return CurveData(); }
//==============================================================================
/** Not for public use - this is called before deleting an editor component. */
diff --git a/modules/juce_core/native/juce_osx_ObjCHelpers.h b/modules/juce_core/native/juce_osx_ObjCHelpers.h
index a9a7c8eb7..aa068eaa0 100644
--- a/modules/juce_core/native/juce_osx_ObjCHelpers.h
+++ b/modules/juce_core/native/juce_osx_ObjCHelpers.h
@@ -71,7 +71,7 @@ inline NSArray* varArrayToNSArray (const var& varToParse);
inline NSDictionary* varObjectToNSDictionary (const var& varToParse)
{
- auto dictionary = [NSMutableDictionary dictionary];
+ NSDictionary* dictionary = [NSMutableDictionary dictionary];
if (varToParse.isObject())
{
@@ -118,7 +118,7 @@ inline NSArray* varArrayToNSArray (const var& varToParse)
const auto* varArray = varToParse.getArray();
- auto array = [NSMutableArray arrayWithCapacity: (NSUInteger) varArray->size()];
+ NSArray* array = [NSMutableArray arrayWithCapacity: (NSUInteger) varArray->size()];
for (const auto& aVar : *varArray)
{
@@ -152,7 +152,8 @@ inline var nsDictionaryToVar (NSDictionary* dictionary)
DynamicObject::Ptr dynamicObject (new DynamicObject());
for (NSString* key in dictionary)
- dynamicObject->setProperty (nsStringToJuce (key), nsObjectToVar (dictionary[key]));
+ dynamicObject->setProperty (nsStringToJuce (key),
+ nsObjectToVar ([dictionary objectForKey: key]));
return var (dynamicObject.get());
}
diff --git a/modules/juce_core/system/juce_CompilerSupport.h b/modules/juce_core/system/juce_CompilerSupport.h
index 4d96d7cb0..d76d92d49 100644
--- a/modules/juce_core/system/juce_CompilerSupport.h
+++ b/modules/juce_core/system/juce_CompilerSupport.h
@@ -92,7 +92,7 @@
//==============================================================================
// C++ library
-#if (defined (__GLIBCXX__) && __GLIBCXX__ < 20130322) || (defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION < 3700))
+#if (defined (__GLIBCXX__) && __GLIBCXX__ < 20130322)
#error "JUCE requires a C++ library containing std::atomic"
#endif
diff --git a/modules/juce_core/system/juce_PlatformDefs.h b/modules/juce_core/system/juce_PlatformDefs.h
index 43000cab6..0a1798ba2 100644
--- a/modules/juce_core/system/juce_PlatformDefs.h
+++ b/modules/juce_core/system/juce_PlatformDefs.h
@@ -99,11 +99,7 @@ namespace juce
deliberately and want to ignore the warning.
*/
#if JUCE_CLANG
- #if __has_cpp_attribute(clang::fallthrough)
- #define JUCE_FALLTHROUGH [[clang::fallthrough]];
- #else
- #define JUCE_FALLTHROUGH
- #endif
+ #define JUCE_FALLTHROUGH [[clang::fallthrough]];
#elif JUCE_GCC
#if __GNUC__ >= 7
#define JUCE_FALLTHROUGH [[gnu::fallthrough]];
diff --git a/modules/juce_core/system/juce_TargetPlatform.h b/modules/juce_core/system/juce_TargetPlatform.h
index 5b4d293bb..6b41688b2 100644
--- a/modules/juce_core/system/juce_TargetPlatform.h
+++ b/modules/juce_core/system/juce_TargetPlatform.h
@@ -145,8 +145,8 @@
#endif
#if JUCE_MAC
- #if ! defined (MAC_OS_X_VERSION_10_11)
- #error "The 10.11 SDK (Xcode 7.3.1+) is required to build JUCE apps. You can create apps that run on macOS 10.7+ by changing the deployment target."
+ #if ! defined (MAC_OS_X_VERSION_10_8)
+ #error "The 10.8 SDK is required to build JUCE apps. You can create apps that run on macOS 10.7+ by changing the deployment target."
#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7
#error "Building for OSX 10.6 is no longer supported!"
#endif
diff --git a/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm b/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm
index de6ffecfc..2a85d25f5 100644
--- a/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm
+++ b/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm
@@ -26,6 +26,10 @@
namespace juce
{
+#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_8
+ #define __nullable
+#endif
+
//==============================================================================
// This class has been renamed from CoreGraphicsImage to avoid a symbol
// collision in Pro Tools 2019.12 and possibly 2020 depending on the Pro Tools
diff --git a/modules/juce_graphics/native/juce_mac_Fonts.mm b/modules/juce_graphics/native/juce_mac_Fonts.mm
index ff0a23a9f..88142091d 100644
--- a/modules/juce_graphics/native/juce_mac_Fonts.mm
+++ b/modules/juce_graphics/native/juce_mac_Fonts.mm
@@ -359,20 +359,20 @@ namespace CoreTextTypeLayout
auto verticalJustification = text.getJustification().getOnlyVerticalFlags();
- auto ctFrameArea = [area, minCTFrameHeight, verticalJustification]
+ const Rectangle<float> ctFrameArea = [area, minCTFrameHeight, verticalJustification]
{
if (minCTFrameHeight < area.getHeight())
- return area;
+ return Rectangle<float> (area);
if (verticalJustification == Justification::verticallyCentred)
return area.withSizeKeepingCentre (area.getWidth(), minCTFrameHeight);
- auto frameArea = area.withHeight (minCTFrameHeight);
+ const Rectangle<float> frameArea = area.withHeight (minCTFrameHeight);
if (verticalJustification == Justification::bottom)
return frameArea.withBottomY (area.getBottom());
- return frameArea;
+ return Rectangle<float> (frameArea);
}();
auto frame = createCTFrame (framesetter, CGRectMake ((CGFloat) ctFrameArea.getX(), flipHeight - (CGFloat) ctFrameArea.getBottom(),
diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
index 26ca40630..bd5e69ab0 100644
--- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
+++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
@@ -1583,17 +1583,21 @@ private:
case NSEventTypeSystemDefined:
case NSEventTypeApplicationDefined:
case NSEventTypePeriodic:
+ #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
case NSEventTypeGesture:
+ #endif
case NSEventTypeMagnify:
case NSEventTypeSwipe:
case NSEventTypeRotate:
case NSEventTypeBeginGesture:
case NSEventTypeEndGesture:
case NSEventTypeQuickLook:
- #if JUCE_64BIT
+ #if JUCE_64BIT
case NSEventTypeSmartMagnify:
+ #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
case NSEventTypePressure:
#endif
+ #endif
#if defined (MAC_OS_X_VERSION_10_12) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12
#if JUCE_64BIT
case NSEventTypeDirectTouch:
diff --git a/modules/juce_gui_basics/native/juce_mac_Windowing.mm b/modules/juce_gui_basics/native/juce_mac_Windowing.mm
index 918f0b4a6..63e15d07b 100644
--- a/modules/juce_gui_basics/native/juce_mac_Windowing.mm
+++ b/modules/juce_gui_basics/native/juce_mac_Windowing.mm
@@ -309,7 +309,7 @@ bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& fi
for (auto& filename : files)
{
auto* nsFilename = juceStringToNS (filename);
- auto fileURL = [NSURL fileURLWithPath: nsFilename];
+ NSURL* fileURL = [NSURL fileURLWithPath: nsFilename];
auto dragItem = [[NSDraggingItem alloc] initWithPasteboardWriter: fileURL];
auto eventPos = [event locationInWindow];
diff --git a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
index b8e6e0c7e..6ad01c68a 100644
--- a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
+++ b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
@@ -3329,7 +3329,7 @@ void XWindowSystem::handleButtonPressEvent (LinuxComponentPeer* peer, const XBut
peer->toFront (true);
peer->handleMouseEvent (MouseInputSource::InputSourceType::mouse, getLogicalMousePos (buttonPressEvent, peer->getPlatformScaleFactor()),
ModifierKeys::currentModifiers, MouseInputSource::invalidPressure,
- MouseInputSource::invalidOrientation, getEventTime (buttonPressEvent), {});
+ MouseInputSource::invalidOrientation, getEventTime (buttonPressEvent));
}
void XWindowSystem::handleButtonPressEvent (LinuxComponentPeer* peer, const XButtonPressedEvent& buttonPressEvent) const
diff --git a/modules/juce_gui_basics/windows/juce_ComponentPeer.h b/modules/juce_gui_basics/windows/juce_ComponentPeer.h
index 691e5679b..ed4f3c199 100644
--- a/modules/juce_gui_basics/windows/juce_ComponentPeer.h
+++ b/modules/juce_gui_basics/windows/juce_ComponentPeer.h
@@ -321,7 +321,7 @@ public:
//==============================================================================
void handleMouseEvent (MouseInputSource::InputSourceType type, Point<float> positionWithinPeer, ModifierKeys newMods, float pressure,
- float orientation, int64 time, PenDetails pen = {}, int touchIndex = 0);
+ float orientation, int64 time, PenDetails pen = PenDetails(), int touchIndex = 0);
void handleMouseWheel (MouseInputSource::InputSourceType type, Point<float> positionWithinPeer,
int64 time, const MouseWheelDetails&, int touchIndex = 0);
diff --git a/modules/juce_gui_extra/juce_gui_extra.cpp b/modules/juce_gui_extra/juce_gui_extra.cpp
index 9cf367411..d42555e13 100644
--- a/modules/juce_gui_extra/juce_gui_extra.cpp
+++ b/modules/juce_gui_extra/juce_gui_extra.cpp
@@ -136,7 +136,9 @@
#include "misc/juce_PushNotifications.cpp"
#include "misc/juce_RecentlyOpenedFilesList.cpp"
#include "misc/juce_SplashScreen.cpp"
+#if !JUCE_MAC || MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
#include "misc/juce_SystemTrayIconComponent.cpp"
+#endif
#include "misc/juce_LiveConstantEditor.cpp"
#include "misc/juce_AnimatedAppComponent.cpp"
@@ -146,7 +148,9 @@
#if JUCE_MAC
#include "native/juce_mac_NSViewComponent.mm"
#include "native/juce_mac_AppleRemote.mm"
- #include "native/juce_mac_SystemTrayIcon.cpp"
+ #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
+ #include "native/juce_mac_SystemTrayIcon.cpp"
+ #endif
#endif
#if JUCE_IOS
diff --git a/modules/juce_gui_extra/juce_gui_extra.h b/modules/juce_gui_extra/juce_gui_extra.h
index bcec491c9..062bde636 100644
--- a/modules/juce_gui_extra/juce_gui_extra.h
+++ b/modules/juce_gui_extra/juce_gui_extra.h
@@ -115,7 +115,9 @@
#include "misc/juce_PushNotifications.h"
#include "misc/juce_RecentlyOpenedFilesList.h"
#include "misc/juce_SplashScreen.h"
+#if !JUCE_MAC || MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
#include "misc/juce_SystemTrayIconComponent.h"
+#endif
#include "misc/juce_WebBrowserComponent.h"
#include "misc/juce_LiveConstantEditor.h"
#include "misc/juce_AnimatedAppComponent.h"
diff --git a/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp b/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp
index 9786c0875..34695b5e1 100644
--- a/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp
+++ b/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp
@@ -157,7 +157,7 @@ void RecentlyOpenedFilesList::forgetRecentFileNatively (const File& file)
// from the recent list, so we clear them all and add them back excluding
// the specified file
- auto sharedDocController = [NSDocumentController sharedDocumentController];
+ NSDocumentController* sharedDocController = [NSDocumentController sharedDocumentController];
auto recentDocumentURLs = [sharedDocController recentDocumentURLs];
[sharedDocController clearRecentDocuments: nil];

+ 13
- 0
libs/juce6.0/patches/07_allow-local-ladspa.patch View File

@@ -0,0 +1,13 @@
diff --git a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp
index 19f1d7ac7..8ffe16b06 100644
--- a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp
+++ b/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp
@@ -25,7 +25,7 @@
#if JUCE_PLUGINHOST_LADSPA && JUCE_LINUX
-#include <ladspa.h>
+#include "ladspa.h"
namespace juce
{

+ 406
- 0
libs/juce6.0/patches/08_remove-splashscreen.patch View File

@@ -0,0 +1,406 @@
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp
index 30249c0a5..e6db9f196 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp
@@ -40,8 +40,6 @@ AudioProcessorEditor::AudioProcessorEditor (AudioProcessor* p) noexcept : proce
AudioProcessorEditor::~AudioProcessorEditor()
{
- splashScreen.deleteAndZero();
-
// if this fails, then the wrapper hasn't called editorBeingDeleted() on the
// filter for some reason..
jassert (processor.getActiveEditor() != this);
@@ -56,23 +54,6 @@ void AudioProcessorEditor::hostMIDIControllerIsAvailable (bool) {
void AudioProcessorEditor::initialise()
{
- /*
- ==========================================================================
- In accordance with the terms of the JUCE 6 End-Use License Agreement, the
- JUCE Code in SECTION A cannot be removed, changed or otherwise rendered
- ineffective unless you have a JUCE Indie or Pro license, or are using
- JUCE under the GPL v3 license.
-
- End User License Agreement: www.juce.com/juce-6-licence
- ==========================================================================
- */
-
- // BEGIN SECTION A
-
- splashScreen = new JUCESplashScreen (*this);
-
- // END SECTION A
-
setConstrainer (&defaultConstrainer);
resizeListener.reset (new AudioProcessorEditorListener (*this));
addComponentListener (resizeListener.get());
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h
index c925540c9..a472f39e1 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h
@@ -218,7 +218,6 @@ private:
bool resizableByHost = false;
ComponentBoundsConstrainer defaultConstrainer;
ComponentBoundsConstrainer* constrainer = nullptr;
- Component::SafePointer<Component> splashScreen;
AffineTransform hostScaleTransform;
JUCE_DECLARE_NON_COPYABLE (AudioProcessorEditor)
diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp
index 12a815f6b..bda0fd972 100644
--- a/modules/juce_gui_basics/juce_gui_basics.cpp
+++ b/modules/juce_gui_basics/juce_gui_basics.cpp
@@ -219,7 +219,6 @@ namespace juce
#include "application/juce_Application.cpp"
#include "misc/juce_BubbleComponent.cpp"
#include "misc/juce_DropShadower.cpp"
-#include "misc/juce_JUCESplashScreen.cpp"
#include "layout/juce_FlexBox.cpp"
#include "layout/juce_GridItem.cpp"
diff --git a/modules/juce_gui_basics/juce_gui_basics.h b/modules/juce_gui_basics/juce_gui_basics.h
index a9258b86d..def87c2e0 100644
--- a/modules/juce_gui_basics/juce_gui_basics.h
+++ b/modules/juce_gui_basics/juce_gui_basics.h
@@ -250,7 +250,6 @@ namespace juce
#include "menus/juce_BurgerMenuComponent.h"
#include "buttons/juce_ToolbarButton.h"
#include "misc/juce_DropShadower.h"
-#include "misc/juce_JUCESplashScreen.h"
#include "widgets/juce_TreeView.h"
#include "windows/juce_TopLevelWindow.h"
#include "windows/juce_AlertWindow.h"
diff --git a/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp b/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp
deleted file mode 100644
index 427632661..000000000
--- a/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- ==============================================================================
-
- This file is part of the JUCE library.
- Copyright (c) 2020 - Raw Material Software Limited
-
- JUCE is an open source library subject to commercial or open-source
- licensing.
-
- By using JUCE, you agree to the terms of both the JUCE 6 End-User License
- Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
-
- End User License Agreement: www.juce.com/juce-6-licence
- Privacy Policy: www.juce.com/juce-privacy-policy
-
- Or: You may also use this code under the terms of the GPL v3 (see
- www.gnu.org/licenses).
-
- JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
- EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
- DISCLAIMED.
-
- ==============================================================================
-*/
-
-namespace juce
-{
-
-/*
- ==============================================================================
-
- In accordance with the terms of the JUCE 6 End-Use License Agreement, the
- JUCE Code in SECTION A cannot be removed, changed or otherwise rendered
- ineffective unless you have a JUCE Indie or Pro license, or are using JUCE
- under the GPL v3 license.
-
- End User License Agreement: www.juce.com/juce-6-licence
-
- ==============================================================================
-*/
-
-// BEGIN SECTION A
-
-#if ! defined (JUCE_DISPLAY_SPLASH_SCREEN)
- #define JUCE_DISPLAY_SPLASH_SCREEN 1
-#endif
-
-#if ! defined (JUCE_USE_DARK_SPLASH_SCREEN)
- #define JUCE_USE_DARK_SPLASH_SCREEN 1
-#endif
-
-static const int millisecondsToDisplaySplash = 2000, splashScreenFadeOutTime = 2000;
-static const int splashScreenLogoWidth = 123, splashScreenLogoHeight = 63;
-static uint32 splashDisplayTime = 0;
-static bool splashHasStartedFading = false;
-
-static Rectangle<float> getLogoArea (Rectangle<float> parentRect)
-{
- return parentRect.reduced (6.0f)
- .removeFromRight ((float) splashScreenLogoWidth)
- .removeFromBottom ((float) splashScreenLogoHeight);
-}
-
-//==============================================================================
-JUCESplashScreen::JUCESplashScreen (Component& parent)
-{
- ignoreUnused (parent);
-
- #if JUCE_DISPLAY_SPLASH_SCREEN
- if (splashDisplayTime == 0
- || Time::getMillisecondCounter() < splashDisplayTime + (uint32) millisecondsToDisplaySplash)
- {
- content = getSplashScreenLogo();
-
- setAlwaysOnTop (true);
- parent.addAndMakeVisible (this);
- }
- else
- #endif
- {
- startTimer (1);
- }
-}
-
-std::unique_ptr<Drawable> JUCESplashScreen::getSplashScreenLogo()
-{
- const char* svgData = R"JUCESPLASHSCREEN(
- <?xml version="1.0" encoding="UTF-8"?>
- <svg width="123px" height="63px" viewBox="0 0 123 63" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs>
- <rect id="path-1" x="0.253112033" y="0.253112033" width="122" height="62" rx="10"></rect>
- </defs>
- <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.8">
- <mask id="mask-2" fill="white">
- <use xlink:href="#path-1"></use>
- </mask>
- <rect stroke="#B144C8" stroke-width="2" x="1.25311203" y="1.25311203" width="120" height="60" rx="10" fill=")JUCESPLASHSCREEN"
- #if JUCE_USE_DARK_SPLASH_SCREEN
- "#000000"
- #else
- "#FFFFFF"
- #endif
- "\"></rect>"
- R"JUCESPLASHSCREEN(
- <g id="Slice" mask="url(#mask-2)" fill="#B144C8" transform="translate(6.000000, 14.000000)">
- <path d="M17.728338,35.4569627 C7.9530089,35.4569627 0,27.5039538 0,17.7286247 C0,7.95303496 7.9530089,2.60592054e-05 17.728338,2.60592054e-05 C27.5039277,2.60592054e-05 35.4569366,7.95303496 35.4569366,17.7286247 C35.4569366,27.5039538 27.5039277,35.4569627 17.728338,35.4569627 Z M17.728338,1.18222797 C8.60474962,1.18222797 1.18230615,8.60493204 1.18230615,17.7285204 C1.18230615,26.8521088 8.60474962,34.2745523 17.728338,34.2745523 C26.852187,34.2745523 34.2746305,26.8521088 34.2746305,17.7285204 C34.2746305,8.60493204 26.852187,1.18222797 17.728338,1.18222797 Z" id="Combined-Shape"></path>
- <path d="M31.7163462,17.1373674 C32.0191542,17.1373674 32.3177926,17.0276581 32.5291328,16.8108455 C32.7621021,16.5724038 32.869466,16.2576086 32.8308984,15.9313473 C32.5035948,13.1505695 31.4109323,10.5157233 29.6709592,8.31215687 C29.4580554,8.04244409 29.1630652,7.89364603 28.8404523,7.89364603 C28.5558858,7.89364603 28.2796582,8.01325778 28.062585,8.23007037 L19.5130809,16.7798351 C19.3812213,16.9119552 19.4745133,17.1373674 19.6610972,17.1373674 L31.7163462,17.1373674 Z" id="Fill-6"></path>
- <path d="M28.8404002,27.5631082 L28.8404002,27.5631082 C29.1630131,27.5631082 29.4580033,27.4148313 29.6711676,27.1451185 C31.4108802,24.941031 32.5038033,22.3064453 32.8308463,19.5256675 C32.8694139,19.1994062 32.76205,18.884611 32.5290807,18.6461693 C32.3177405,18.4293567 32.019102,18.3196475 31.7162941,18.3196475 L19.6610451,18.3196475 C19.4747217,18.3196475 19.3811692,18.5453202 19.5130288,18.6771798 L28.0627935,27.2269445 C28.2796061,27.443757 28.5558336,27.5631082 28.8404002,27.5631082" id="Fill-8"></path>
- <path d="M6.61653649,7.89375026 C6.29392353,7.89375026 5.99893332,8.04228773 5.78576902,8.31200051 C4.04605647,10.5158275 2.95313339,13.1506738 2.62609037,15.9314516 C2.58752274,16.2577128 2.69488667,16.572508 2.92785596,16.8109498 C3.13919612,17.0277623 3.43783461,17.1374716 3.74064258,17.1374716 L15.7958916,17.1374716 C15.9822149,17.1374716 16.0757675,16.9117989 15.9439079,16.7799393 L7.39414318,8.23017461 C7.17733059,8.01336202 6.90110301,7.89375026 6.61653649,7.89375026" id="Fill-10"></path>
- <path d="M15.7957874,18.3197256 L3.74053834,18.3197256 C3.43773038,18.3197256 3.13935247,18.4294349 2.92775173,18.6462475 C2.69504302,18.8846892 2.5874185,19.1994844 2.62598613,19.5257457 C2.95328975,22.3065235 4.04595223,24.9411091 5.78592538,27.1449361 C5.99882908,27.4146489 6.29407988,27.5631864 6.61643225,27.5631864 C6.90073818,27.5631864 7.17670517,27.4440958 7.39351776,27.2278044 L7.39403894,27.2272832 L15.9438036,18.6772579 C16.0756632,18.5451378 15.9823713,18.3197256 15.7957874,18.3197256" id="Fill-12"></path>
- <path d="M17.1374455,3.74079894 C17.1374455,3.43773038 17.0277363,3.13909188 16.8109237,2.92775173 C16.572482,2.69478243 16.2574262,2.5874185 15.9314255,2.62598613 C13.1506477,2.95328975 10.5158015,4.04595223 8.31223504,5.78592538 C8.04252227,5.99882908 7.8937242,6.29407988 7.8937242,6.61643225 C7.8937242,6.90099877 8.01307536,7.17748694 8.23014855,7.39429953 L16.7799132,15.9438036 C16.9117728,16.0756632 17.1374455,15.9823713 17.1374455,15.7957874 L17.1374455,3.74079894 Z" id="Fill-14"></path>
- <path d="M27.5631603,6.61648437 L27.5631603,6.61648437 C27.5631603,6.294132 27.4148834,5.9988812 27.1451707,5.7857169 C24.9410831,4.04600435 22.3064974,2.95308127 19.5257196,2.62603825 C19.1994583,2.58747062 18.8846631,2.69483455 18.6459608,2.92780385 C18.4294088,3.139144 18.3196996,3.43778249 18.3196996,3.74085105 L18.3196996,15.7958395 C18.3196996,15.9821628 18.5453723,16.0757153 18.6772319,15.9438558 L27.2269966,7.39409106 C27.4438092,7.17727847 27.5631603,6.90131148 27.5631603,6.61648437" id="Fill-16"></path>
- <path d="M7.89380238,28.840348 C7.89380238,29.162961 8.04233985,29.4579512 8.31205263,29.6711155 C10.5158796,31.4110887 13.1507259,32.5040117 15.9315037,32.8307942 C16.2575044,32.8693618 16.5725601,32.7619979 16.8110019,32.5290286 C17.0278145,32.3176884 17.1375237,32.0190499 17.1375237,31.7162419 L17.1375237,19.6609929 C17.1375237,19.4746696 16.9115904,19.3811171 16.7799914,19.5129766 L8.23022672,28.0627413 C8.01315354,28.2798145 7.89380238,28.5557815 7.89380238,28.840348" id="Fill-18"></path>
- <path d="M18.3197778,31.7163462 C18.3197778,32.0191542 18.429487,32.3175321 18.646039,32.5291328 C18.8847413,32.7618415 19.1995365,32.869466 19.5257978,32.8308984 C22.3065756,32.5038554 24.9411613,31.4111929 27.1449883,29.6709592 C27.414701,29.4580554 27.5632385,29.1630652 27.5632385,28.8404523 C27.5632385,28.5561463 27.4441479,28.2801794 27.2278565,28.0633668 L18.6773101,19.5133415 C18.5451899,19.3812213 18.3197778,19.4745133 18.3197778,19.6613578 L18.3197778,31.7163462 Z" id="Fill-20"></path>
- </g>
- <path d="M57.404,39.48 L57.404,25.688 L53.404,25.688 L53.404,39.48 C53.404,41.912 51.996,43.512 49.884,43.512 C48.7,43.512 47.804,43.032 46.524,41.336 L43.644,43.832 C45.596,46.392 47.484,47.256 49.884,47.256 C54.268,47.256 57.404,44.152 57.404,39.48 Z M78.508,38.296 L78.508,25.688 L74.508,25.688 L74.508,38.136 C74.508,41.4 72.588,43.512 69.836,43.512 C67.084,43.512 65.164,41.4 65.164,38.136 L65.164,25.688 L61.164,25.688 L61.164,38.296 C61.164,43.864 65.196,47.256 69.836,47.256 C74.476,47.256 78.508,43.864 78.508,38.296 Z M99.324,44.6 L96.956,41.624 C94.94,43.032 93.628,43.512 92.06,43.512 C88.188,43.512 85.052,40.376 85.052,36.344 C85.052,32.312 88.188,29.176 92.06,29.176 C93.692,29.176 94.876,29.592 96.988,31.064 L99.324,28.152 C97.116,26.36 94.748,25.432 92.06,25.432 C86.012,25.432 80.956,30.264 80.956,36.344 C80.956,42.392 85.948,47.256 92.06,47.256 C94.524,47.256 96.604,46.648 99.324,44.6 Z M114.796,47 L114.796,43.384 L105.516,43.384 L105.516,38.04 L114.444,38.04 L114.444,34.424 L105.516,34.424 L105.516,29.304 L114.796,29.304 L114.796,25.688 L101.516,25.688 L101.516,47 L114.796,47 Z" id="JUCE" fill="#B144C8" mask="url(#mask-2)"></path>
- <path d="M66.1199999,21 L63.8399999,14.12 L61.8399999,19.17 L59.8399999,14.12 L57.5599999,21 L58.3999999,21 L59.9099999,16.34 L61.8399999,21.22 L63.7699999,16.34 L65.2799999,21 L66.1199999,21 Z M71.2166666,21 L70.4166666,21 C70.2866666,20.77 70.2466666,20.43 70.2466666,20.18 C69.8966666,20.63 69.2066666,21.08 68.4266666,21.08 C67.4766666,21.08 66.8066666,20.56 66.8066666,19.73 C66.8066666,18.89 67.3666666,18.06 70.1766666,17.61 C70.1766666,17.04 69.7466666,16.66 69.0066666,16.66 C68.3666666,16.66 67.9366666,16.89 67.5566666,17.18 L67.0766666,16.61 C67.6066666,16.17 68.2866666,15.9 69.0666666,15.9 C69.9066666,15.9 70.9766666,16.22 70.9766666,17.62 L70.9766666,19.83 C70.9766666,20.19 71.0366666,20.65 71.2166666,21 Z M70.1766666,18.73 L70.1766666,18.29 C68.1366666,18.64 67.6066666,19.15 67.6066666,19.73 C67.6066666,20.2 68.1166666,20.4 68.5866666,20.4 C69.3066666,20.4 70.1766666,19.8 70.1766666,18.73 Z M77.0633333,21 L76.2633333,21 L76.2633333,20.18 C75.9433333,20.68 75.2933333,21.08 74.5033333,21.08 C73.1133333,21.08 71.9833333,19.9 71.9833333,18.49 C71.9833333,17.08 73.1133333,15.9 74.5033333,15.9 C75.2933333,15.9 75.9433333,16.3 76.2633333,16.8 L76.2633333,14 L77.0633333,14 L77.0633333,21 Z M76.2633333,18.49 C76.2633333,17.47 75.5133333,16.66 74.5233333,16.66 C73.5333333,16.66 72.7833333,17.47 72.7833333,18.49 C72.7833333,19.51 73.5333333,20.32 74.5233333,20.32 C75.5133333,20.32 76.2633333,19.51 76.2633333,18.49 Z M83.14,18.46 C83.14,18.64 83.12,18.81 83.12,18.81 L78.9,18.81 C79.04,19.66 79.77,20.32 80.66,20.32 C81.18,20.32 81.73,20.09 82.12,19.67 L82.69,20.19 C82.17,20.78 81.43,21.08 80.66,21.08 C79.23,21.08 78.07,19.91 78.07,18.49 C78.07,17.06 79.22,15.9 80.65,15.9 C82.12,15.9 83.14,17.06 83.14,18.46 Z M82.3,18.1 C82.12,17.2 81.52,16.66 80.65,16.66 C79.78,16.66 79.07,17.27 78.91,18.1 L82.3,18.1 Z M93.5633333,15.98 L92.7233333,15.98 L91.4533333,19.36 L89.8233333,15.7 L88.1933333,19.36 L86.9233333,15.98 L86.0833333,15.98 L88.1433333,21.28 L89.8233333,17.44 L91.5033333,21.28 L93.5633333,15.98 Z M95.4,14.46 C95.4,14.16 95.15,13.91 94.85,13.91 C94.55,13.91 94.3,14.16 94.3,14.46 C94.3,14.76 94.55,15.01 94.85,15.01 C95.15,15.01 95.4,14.76 95.4,14.46 Z M95.25,21 L95.25,15.98 L94.45,15.98 L94.45,21 L95.25,21 Z M99.1466667,16.69 L99.1466667,15.98 L97.8066667,15.98 L97.8066667,14.34 L97.0066667,14.34 L97.0066667,15.98 L95.9966667,15.98 L95.9966667,16.69 L97.0066667,16.69 L97.0066667,21 L97.8066667,21 L97.8066667,16.69 L99.1466667,16.69 Z M104.173333,21 L104.173333,18.12 C104.173333,16.7 103.243333,15.9 102.093333,15.9 C101.403333,15.9 100.833333,16.27 100.623333,16.63 L100.623333,14 L99.8233334,14 L99.8233334,21 L100.623333,21 L100.623333,18.17 C100.623333,17.22 101.233333,16.66 102.013333,16.66 C102.793333,16.66 103.373333,17.22 103.373333,18.17 L103.373333,21 L104.173333,21 Z" id="Made-with" fill="#B144C8" mask="url(#mask-2)"></path>
- </g>
- </svg>
- )JUCESPLASHSCREEN";
-
- auto svgXml = parseXML (svgData);
- jassert (svgXml != nullptr);
- return Drawable::createFromSVG (*svgXml);
-}
-
-void JUCESplashScreen::paint (Graphics& g)
-{
- auto r = getLocalBounds().toFloat();
- Point<float> bottomRight (0.9f * r.getWidth(),
- 0.9f * r.getHeight());
-
- ColourGradient cg (Colour (0x00000000), Line<float> (0.0f, r.getHeight(), r.getWidth(), 0.0f)
- .findNearestPointTo (bottomRight),
- Colour (0xff000000), bottomRight, false);
- cg.addColour (0.25f, Colour (0x10000000));
- cg.addColour (0.50f, Colour (0x30000000));
- cg.addColour (0.75f, Colour (0x70000000));
- g.setFillType (cg);
- g.fillAll();
-
- content->drawWithin (g, getLogoArea (r), RectanglePlacement::centred, 1.0f);
-
- if (splashDisplayTime == 0)
- splashDisplayTime = Time::getMillisecondCounter();
-
- if (! isTimerRunning())
- startTimer (millisecondsToDisplaySplash);
-}
-
-void JUCESplashScreen::timerCallback()
-{
- #if JUCE_DISPLAY_SPLASH_SCREEN
- if (isVisible() && ! splashHasStartedFading)
- {
- splashHasStartedFading = true;
- fader.animateComponent (this, getBounds(), 0.0f, splashScreenFadeOutTime, false, 0, 0);
- }
-
- if (splashHasStartedFading && ! fader.isAnimating())
- #endif
- delete this;
-}
-
-void JUCESplashScreen::parentSizeChanged()
-{
- if (auto* p = getParentComponent())
- setBounds (p->getLocalBounds().removeFromBottom (splashScreenLogoHeight * 3)
- .removeFromRight (splashScreenLogoWidth * 3));
-}
-
-void JUCESplashScreen::parentHierarchyChanged()
-{
- toFront (false);
-}
-
-bool JUCESplashScreen::hitTest (int x, int y)
-{
- if (! splashHasStartedFading)
- return getLogoArea (getLocalBounds().toFloat()).contains ((float) x, (float) y);
-
- return false;
-}
-
-void JUCESplashScreen::mouseUp (const MouseEvent&)
-{
- URL juceWebsite ("https://juce.com");
- juceWebsite.launchInDefaultBrowser();
-}
-
-// END SECTION A
-
-} // namespace juce
diff --git a/modules/juce_gui_basics/misc/juce_JUCESplashScreen.h b/modules/juce_gui_basics/misc/juce_JUCESplashScreen.h
deleted file mode 100644
index 3767fc301..000000000
--- a/modules/juce_gui_basics/misc/juce_JUCESplashScreen.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- ==============================================================================
-
- This file is part of the JUCE library.
- Copyright (c) 2020 - Raw Material Software Limited
-
- JUCE is an open source library subject to commercial or open-source
- licensing.
-
- By using JUCE, you agree to the terms of both the JUCE 6 End-User License
- Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
-
- End User License Agreement: www.juce.com/juce-6-licence
- Privacy Policy: www.juce.com/juce-privacy-policy
-
- Or: You may also use this code under the terms of the GPL v3 (see
- www.gnu.org/licenses).
-
- JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
- EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
- DISCLAIMED.
-
- ==============================================================================
-*/
-
-/*
- ==============================================================================
-
- In accordance with the terms of the JUCE 6 End-Use License Agreement, the
- JUCE Code in SECTION A cannot be removed, changed or otherwise rendered
- ineffective unless you have a JUCE Indie or Pro license, or are using JUCE
- under the GPL v3 license.
-
- End User License Agreement: www.juce.com/juce-6-licence
-
- ==============================================================================
-*/
-
-// BEGIN SECTION A
-
-namespace juce
-{
-
-/**
- The standard JUCE splash screen component.
-
- @tags{GUI}
-*/
-class JUCE_API JUCESplashScreen : public Component,
- private Timer,
- private DeletedAtShutdown
-{
-public:
- JUCESplashScreen (Component& parentToAddTo);
-
- static std::unique_ptr<Drawable> getSplashScreenLogo();
-
-private:
- void paint (Graphics&) override;
- void timerCallback() override;
- void parentSizeChanged() override;
- void parentHierarchyChanged() override;
- bool hitTest (int, int) override;
- void mouseUp (const MouseEvent&) override;
-
- std::unique_ptr<Drawable> content;
- ComponentAnimator fader;
-
- JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (JUCESplashScreen)
-};
-
-// END SECTION A
-
-} // namespace juce
diff --git a/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp b/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp
index d2360e5f4..42bd2d9d9 100644
--- a/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp
+++ b/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp
@@ -41,8 +41,6 @@ ResizableWindow::ResizableWindow (const String& name, Colour bkgnd, bool shouldA
ResizableWindow::~ResizableWindow()
{
- splashScreen.deleteAndZero();
-
// Don't delete or remove the resizer components yourself! They're managed by the
// ResizableWindow, and you should leave them alone! You may have deleted them
// accidentally by careless use of deleteAllChildren()..?
@@ -60,27 +58,6 @@ ResizableWindow::~ResizableWindow()
void ResizableWindow::initialise (const bool shouldAddToDesktop)
{
- /*
- ==========================================================================
-
- In accordance with the terms of the JUCE 6 End-Use License Agreement, the
- JUCE Code in SECTION A cannot be removed, changed or otherwise rendered
- ineffective unless you have a JUCE Indie or Pro license, or are using
- JUCE under the GPL v3 license.
-
- End User License Agreement: www.juce.com/juce-6-licence
-
- ==========================================================================
- */
-
- // BEGIN SECTION A
-
- #if ! JucePlugin_Build_Standalone
- splashScreen = new JUCESplashScreen (*this);
- #endif
-
- // END SECTION A
-
defaultConstrainer.setMinimumOnscreenAmounts (0x10000, 16, 24, 16);
lastNonFullScreenPos.setBounds (50, 50, 256, 256);
diff --git a/modules/juce_gui_basics/windows/juce_ResizableWindow.h b/modules/juce_gui_basics/windows/juce_ResizableWindow.h
index d67303595..e59f620c1 100644
--- a/modules/juce_gui_basics/windows/juce_ResizableWindow.h
+++ b/modules/juce_gui_basics/windows/juce_ResizableWindow.h
@@ -383,7 +383,7 @@ protected:
private:
//==============================================================================
- Component::SafePointer<Component> contentComponent, splashScreen;
+ Component::SafePointer<Component> contentComponent;
bool ownsContentComponent = false, resizeToFitContent = false, fullscreen = false, canDrag = true, dragStarted = false;
ComponentDragger dragger;
Rectangle<int> lastNonFullScreenPos;

+ 46
- 0
libs/juce6.0/patches/09_proper-getExecutableFile.patch View File

@@ -0,0 +1,46 @@
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h
index 082a5697a..c79ca18ea 100644
--- a/modules/juce_core/native/juce_posix_SharedCode.h
+++ b/modules/juce_core/native/juce_posix_SharedCode.h
@@ -600,12 +600,39 @@ File juce_getExecutableFile()
auto localSymbol = (void*) juce_getExecutableFile;
dladdr (localSymbol, &exeInfo);
- return CharPointer_UTF8 (exeInfo.dli_fname);
+
+ const CharPointer_UTF8 filename (exeInfo.dli_fname);
+
+ // if the filename is absolute simply return it
+ if (File::isAbsolutePath (filename))