diff --git a/BREAKING-CHANGES.txt b/BREAKING-CHANGES.txt index b278d7906d..268344869b 100644 --- a/BREAKING-CHANGES.txt +++ b/BREAKING-CHANGES.txt @@ -1,10 +1,35 @@ JUCE breaking changes ===================== - Develop ======= + +Version 5.2.1 +============= + +Change +------ +Calling JUCEApplicationBase::quit() on Android will now really quit the app, +rather than just placing it in background. Starting with API level 21 (Android 5.0), the +app will not appear in recent apps list after calling quit(). Prior to API 21, the app will still +appear in recent app lists but when a user chooses the app, a new instance of the app will be started. + +Possible Issues +--------------- +Any code calling JUCEApplicationBase::quit() to place the app in background will close the app instead. + +Workaround +---------- +Use Process::hide(). + +Rationale +--------- +The old behaviour JUCEApplicationBase::quit() was confusing JUCE code, as a new instance of JUCE +app was attempted to be created, while the older instance was still running in background. This +would result in assertions when starting a second instance. + + Change ------ On Windows, release builds will now link to the dynamic C++ runtime by default @@ -42,7 +67,6 @@ to push plug-in vendors to use the dynamic runtime. To help with this, JUCE has dynamic runtime linkage the default in JUCE. - Change ------ AudioProcessorGraph interface has changed in a number of ways - Node objects @@ -63,32 +87,6 @@ Rationale The graph class was extremely old and creaky, and these changes is the start of an improvement process that should eventually result in it being broken down into fundamental graph building block classes for use in other contexts. - - -Change ------- -Calling JUCEApplicationBase::quit() on Android will now really quit the app, -rather than just placing it in background. Starting with API level 21 (Android 5.0), the -app will not appear in recent apps list after calling quit(). Prior to API 21, the app will still -appear in recent app lists but when a user chooses the app, a new instance of the app will be started. - - -Possible Issues ---------------- -Any code calling JUCEApplicationBase::quit() to place the app in background will close the app instead. - - -Workaround ----------- -Use Process::hide(). - - -Rationale ---------- -The old behaviour JUCEApplicationBase::quit() was confusing JUCE code, as a new instance of JUCE -app was attempted to be created, while the older instance was still running in background. This -would result in assertions when starting a second instance. - Version 5.2.0 @@ -271,7 +269,6 @@ few are required. This change to DynamicObject is required to support truncating those numbers. - Version 5.1.0 ============= @@ -385,7 +382,6 @@ confusing and unintuitive. Furthermore, this aligns JUCE's Atomic type with std::atomic. - Version 4.3.1 ============= @@ -416,7 +412,6 @@ parameters that have a negative parameter id. Therefore, the hash function for VST3/AudioUnits needed to be changed to only return positive-valued hashes. - Version 4.3.0 ============= @@ -481,7 +476,6 @@ in which the channel configurations appear in the legacy "Channel layout configuration" field. - Version 4.2.1 ============= @@ -520,4 +514,3 @@ their plug-in. Most plug-in backends differentiate between a parameter’s id an index, so this distinction was adopted starting with JUCE 4.2.1 by deriving the parameter’s unique id from the paramID property of AudioProcessorParameterWithID class. - diff --git a/ChangeList.txt b/ChangeList.txt index 1e0426053f..c57cefdbfb 100644 --- a/ChangeList.txt +++ b/ChangeList.txt @@ -4,6 +4,32 @@ This file just lists the more notable headline features. For more detailed info about minor changes and bugfixes, please see the git log! +Version 5.2.1 + - Added native content sharing support for iOS and Android + - Added iOS and Android native file chooser support + - Implemented WebBrowserComponent on Android + - Added SystemStats::getDeviceManufacturer() + - Ensured that JUCE will always use the high-performance audio path on Android if the device supports it + - Added memory warning callbacks on iOS + - Refactored iOSAudioDevice to support multi-channel audio devices and improve the handling of sample rate changes from other apps + - Added SidePanel and BurgerMenu component classes + - Added PushNotifications support on OSX + - Added support for VST3 SDK 3.6.8 + - Added support for loading VST3 preset files + - Added higher-order ambisonics support + - Added thread safe methods for getting and setting the AudioProcessorValueTreeState state + - Cleanup and refactoring work on the AudioProcessorGraph and the audio plugin host demo + - Changed the default language standard for new projects from C++11 to C++14 and set all JUCE projects to use C++14 + - Made the ScopedPointer interface more compatible with std::unique_ptr + - Changed Windows projects to use dynamic runtime linking by default + - Added lambda callbacks to ListenerList, Slider, Button, Label, ComboBox and TextEditor + - Fixed the live-build engine on Windows + - Multiple DSP module fixes and features + - Multiple threading and undefined behaviour fixes and improvements + - Various graphics optimisations + - Multiple Projucer UI and UX improvements + - Various documentation tweaks and fixes + Version 5.2.0 - Added a CMake exporter to the Projucer - JUCE analytics module diff --git a/extras/Projucer/Projucer.jucer b/extras/Projucer/Projucer.jucer index ac6f825ff3..098f691064 100644 --- a/extras/Projucer/Projucer.jucer +++ b/extras/Projucer/Projucer.jucer @@ -1,7 +1,7 @@ diff --git a/modules/juce_analytics/juce_analytics.h b/modules/juce_analytics/juce_analytics.h index 386b048318..a43589e802 100644 --- a/modules/juce_analytics/juce_analytics.h +++ b/modules/juce_analytics/juce_analytics.h @@ -35,7 +35,7 @@ ID: juce_analytics vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE analytics classes description: Classes to collect analytics and send to destinations website: http://www.juce.com/juce diff --git a/modules/juce_audio_basics/juce_audio_basics.h b/modules/juce_audio_basics/juce_audio_basics.h index 9d6052954b..1dd2dbbc3d 100644 --- a/modules/juce_audio_basics/juce_audio_basics.h +++ b/modules/juce_audio_basics/juce_audio_basics.h @@ -31,7 +31,7 @@ ID: juce_audio_basics vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE audio and MIDI data classes description: Classes for audio buffer manipulation, midi message handling, synthesis, etc. website: http://www.juce.com/juce diff --git a/modules/juce_audio_devices/juce_audio_devices.h b/modules/juce_audio_devices/juce_audio_devices.h index 54c046e7ba..5d193fabce 100644 --- a/modules/juce_audio_devices/juce_audio_devices.h +++ b/modules/juce_audio_devices/juce_audio_devices.h @@ -31,7 +31,7 @@ ID: juce_audio_devices vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE audio and MIDI I/O device classes description: Classes to play and record from audio and MIDI I/O devices website: http://www.juce.com/juce diff --git a/modules/juce_audio_formats/juce_audio_formats.h b/modules/juce_audio_formats/juce_audio_formats.h index 881c97d3a2..97b170708c 100644 --- a/modules/juce_audio_formats/juce_audio_formats.h +++ b/modules/juce_audio_formats/juce_audio_formats.h @@ -35,7 +35,7 @@ ID: juce_audio_formats vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE audio file format codecs description: Classes for reading and writing various audio file formats. website: http://www.juce.com/juce diff --git a/modules/juce_audio_plugin_client/juce_audio_plugin_client.h b/modules/juce_audio_plugin_client/juce_audio_plugin_client.h index 9b8374b5d0..77acef5a70 100644 --- a/modules/juce_audio_plugin_client/juce_audio_plugin_client.h +++ b/modules/juce_audio_plugin_client/juce_audio_plugin_client.h @@ -35,7 +35,7 @@ ID: juce_audio_plugin_client vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE audio plugin wrapper classes description: Classes for building VST, VST3, AudioUnit, AAX and RTAS plugins. website: http://www.juce.com/juce @@ -72,7 +72,7 @@ DAW projects with automation data written by an AudioUnit, VST3 or AAX plug-in built with JUCE version 5.1.1 or earlier may load incorrectly when opened by an AudioUnit, VST3 or AAX plug-in built - with JUCE version 5.2.0 and later. + with JUCE version 5.2.1 and later. */ #ifndef JUCE_FORCE_LEGACY_PARAMETER_AUTOMATION_TYPE #define JUCE_FORCE_LEGACY_PARAMETER_AUTOMATION_TYPE 0 diff --git a/modules/juce_audio_processors/juce_audio_processors.h b/modules/juce_audio_processors/juce_audio_processors.h index 7ee84624cb..4d6001cb30 100644 --- a/modules/juce_audio_processors/juce_audio_processors.h +++ b/modules/juce_audio_processors/juce_audio_processors.h @@ -35,7 +35,7 @@ ID: juce_audio_processors vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE audio processor classes description: Classes for loading and playing VST, AU, or internally-generated audio processors. website: http://www.juce.com/juce diff --git a/modules/juce_audio_utils/juce_audio_utils.h b/modules/juce_audio_utils/juce_audio_utils.h index f4ac336ccf..042b5aeac3 100644 --- a/modules/juce_audio_utils/juce_audio_utils.h +++ b/modules/juce_audio_utils/juce_audio_utils.h @@ -35,7 +35,7 @@ ID: juce_audio_utils vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE extra audio utility classes description: Classes for audio-related GUI and miscellaneous tasks. website: http://www.juce.com/juce diff --git a/modules/juce_blocks_basics/juce_blocks_basics.h b/modules/juce_blocks_basics/juce_blocks_basics.h index dad3a3ea2b..65e4548cd6 100644 --- a/modules/juce_blocks_basics/juce_blocks_basics.h +++ b/modules/juce_blocks_basics/juce_blocks_basics.h @@ -31,7 +31,7 @@ ID: juce_blocks_basics vendor: juce - version: 5.2.0 + version: 5.2.1 name: Provides low-level control over ROLI BLOCKS devices description: JUCE wrapper for low-level control over ROLI BLOCKS devices. website: http://developer.roli.com diff --git a/modules/juce_box2d/juce_box2d.h b/modules/juce_box2d/juce_box2d.h index 7bdf5a29be..efb0dceb82 100644 --- a/modules/juce_box2d/juce_box2d.h +++ b/modules/juce_box2d/juce_box2d.h @@ -35,7 +35,7 @@ ID: juce_box2d vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE wrapper for the Box2D physics engine description: The Box2D physics engine and some utility classes. website: http://www.juce.com/juce diff --git a/modules/juce_core/juce_core.h b/modules/juce_core/juce_core.h index 4beae76b0a..6ad812bacc 100644 --- a/modules/juce_core/juce_core.h +++ b/modules/juce_core/juce_core.h @@ -32,7 +32,7 @@ ID: juce_core vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE core classes description: The essential set of basic JUCE classes, as required by all the other JUCE modules. Includes text, container, memory, threading and i/o functionality. website: http://www.juce.com/juce diff --git a/modules/juce_core/system/juce_StandardHeader.h b/modules/juce_core/system/juce_StandardHeader.h index e06096e496..554f74ffc4 100644 --- a/modules/juce_core/system/juce_StandardHeader.h +++ b/modules/juce_core/system/juce_StandardHeader.h @@ -29,7 +29,7 @@ */ #define JUCE_MAJOR_VERSION 5 #define JUCE_MINOR_VERSION 2 -#define JUCE_BUILDNUMBER 0 +#define JUCE_BUILDNUMBER 1 /** Current JUCE version number. diff --git a/modules/juce_cryptography/juce_cryptography.h b/modules/juce_cryptography/juce_cryptography.h index 1ecef117e7..ef528a460e 100644 --- a/modules/juce_cryptography/juce_cryptography.h +++ b/modules/juce_cryptography/juce_cryptography.h @@ -35,7 +35,7 @@ ID: juce_cryptography vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE cryptography classes description: Classes for various basic cryptography functions, including RSA, Blowfish, MD5, SHA, etc. website: http://www.juce.com/juce diff --git a/modules/juce_data_structures/juce_data_structures.h b/modules/juce_data_structures/juce_data_structures.h index 4eaf00cadd..1ec189c94b 100644 --- a/modules/juce_data_structures/juce_data_structures.h +++ b/modules/juce_data_structures/juce_data_structures.h @@ -35,7 +35,7 @@ ID: juce_data_structures vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE data model helper classes description: Classes for undo/redo management, and smart data structures. website: http://www.juce.com/juce diff --git a/modules/juce_dsp/juce_dsp.h b/modules/juce_dsp/juce_dsp.h index af814e6d6f..cccca7b1c4 100644 --- a/modules/juce_dsp/juce_dsp.h +++ b/modules/juce_dsp/juce_dsp.h @@ -36,7 +36,7 @@ ID: juce_dsp vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE DSP classes description: Classes for audio buffer manipulation, digital audio processing, filtering, oversampling, fast math functions etc. website: http://www.juce.com/juce diff --git a/modules/juce_events/juce_events.h b/modules/juce_events/juce_events.h index dfa512a5c9..e58698a59c 100644 --- a/modules/juce_events/juce_events.h +++ b/modules/juce_events/juce_events.h @@ -31,7 +31,7 @@ ID: juce_events vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE message and event handling classes description: Classes for running an application's main event loop and sending/receiving messages, timers, etc. website: http://www.juce.com/juce diff --git a/modules/juce_graphics/juce_graphics.h b/modules/juce_graphics/juce_graphics.h index 358500276a..e3597bcd78 100644 --- a/modules/juce_graphics/juce_graphics.h +++ b/modules/juce_graphics/juce_graphics.h @@ -35,7 +35,7 @@ ID: juce_graphics vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE graphics classes description: Classes for 2D vector graphics, image loading/saving, font handling, etc. website: http://www.juce.com/juce diff --git a/modules/juce_gui_basics/juce_gui_basics.h b/modules/juce_gui_basics/juce_gui_basics.h index 1620249103..2a3351f69f 100644 --- a/modules/juce_gui_basics/juce_gui_basics.h +++ b/modules/juce_gui_basics/juce_gui_basics.h @@ -35,7 +35,7 @@ ID: juce_gui_basics vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE GUI core classes description: Basic user-interface components and related classes. website: http://www.juce.com/juce diff --git a/modules/juce_gui_extra/juce_gui_extra.h b/modules/juce_gui_extra/juce_gui_extra.h index b24ab77540..9b43e943ff 100644 --- a/modules/juce_gui_extra/juce_gui_extra.h +++ b/modules/juce_gui_extra/juce_gui_extra.h @@ -35,7 +35,7 @@ ID: juce_gui_extra vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE extended GUI classes description: Miscellaneous GUI classes for specialised tasks. website: http://www.juce.com/juce diff --git a/modules/juce_opengl/juce_opengl.h b/modules/juce_opengl/juce_opengl.h index af3a1bc5e9..564dd6806f 100644 --- a/modules/juce_opengl/juce_opengl.h +++ b/modules/juce_opengl/juce_opengl.h @@ -35,7 +35,7 @@ ID: juce_opengl vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE OpenGL classes description: Classes for rendering OpenGL in a JUCE window. website: http://www.juce.com/juce diff --git a/modules/juce_osc/juce_osc.h b/modules/juce_osc/juce_osc.h index 3991beb8f8..aa7c504a63 100644 --- a/modules/juce_osc/juce_osc.h +++ b/modules/juce_osc/juce_osc.h @@ -35,7 +35,7 @@ ID: juce_osc vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE OSC classes description: Open Sound Control implementation. website: http://www.juce.com/juce diff --git a/modules/juce_product_unlocking/juce_product_unlocking.h b/modules/juce_product_unlocking/juce_product_unlocking.h index fd2f693ef3..0e6111ad52 100644 --- a/modules/juce_product_unlocking/juce_product_unlocking.h +++ b/modules/juce_product_unlocking/juce_product_unlocking.h @@ -35,7 +35,7 @@ ID: juce_product_unlocking vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE Online marketplace support description: Classes for online product authentication website: http://www.juce.com/juce diff --git a/modules/juce_video/juce_video.h b/modules/juce_video/juce_video.h index c9e040c5b0..011a392bf7 100644 --- a/modules/juce_video/juce_video.h +++ b/modules/juce_video/juce_video.h @@ -36,7 +36,7 @@ ID: juce_video vendor: juce - version: 5.2.0 + version: 5.2.1 name: JUCE video playback and capture classes description: Classes for playing video and capturing camera input. website: http://www.juce.com/juce