1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Merge remote-tracking branch 'upstream/develop' into develop

This commit is contained in:
Gio Azzalini 2020-04-08 10:01:14 +02:00
commit ff00c7616d
542 changed files with 6525 additions and 5789 deletions

2
.gitignore vendored
View file

@ -48,6 +48,7 @@ profile
**/Builds/Android/local.properties
**/Builds/Android/app/build
**/Builds/Android/app/.externalNativeBuild
**/Builds/Android/app/.cxx
**/Builds/Android/lib/build
**/Builds/Android/lib/.externalNativeBuild
**/Builds/CLion/cmake-build-*
@ -56,4 +57,5 @@ profile
**/Builds/MacOSX/**/Intermediates.noindex
**/doxygen/doc
**/doxygen/build
**/.idea
extras/Projucer/JUCECompileEngine.dylib

View file

@ -4,6 +4,55 @@ JUCE breaking changes
Develop
=======
Change
------
The Windows DPI handling in the VST wrapper and hosting code has been
refactored to be more stable.
Possible Issues
---------------
The new code uses a top-level AffineTransform to scale the JUCE editor window
instead of native methods. Therefore any AudioProcessorEditors which have their
own AffineTransform applied will no longer work correctly.
Workaround
----------
If you are using an AffineTransform to scale the entire plug-in window then
consider using Desktop::setGlobalScaleFactor() instead, or, for applying other
transforms, consider putting the component you want to transform in a child of
the editor and transform that instead.
Rationale
---------
The old code had some bugs when using OpenGL and when moving between monitors
with different scale factors. The new code should fix these and DPI-aware
plug-ins will scale correctly.
Change
------
Relative Xcode subproject paths specified in the Projucer are now relative to
the build directory rather than the project directory.
Possible Issues
---------------
After being re-saved in the Projucer existing Xcode projects will fail to find
any subprojects specified using a relative path.
Workaround
----------
Update the subproject path in the Projucer.
Rationale
---------
Most other Xcode specific paths are specified reltive to the build directory.
This change brings the Xcode subproject path in line with the rest of the
configuration.
Version 5.4.6
=============
Change
------
AudioProcessorValueTreeState::getRawParameterValue now returns a
@ -78,6 +127,28 @@ state.
Version 5.4.5
=============
Change
------
The alignment of text rendered on macOS using CoreGraphics may have shifted
slightly, depending on the font you have used. The default macOS font has
shifted downwards.
Possible Issues
---------------
Meticulously aligned text components of a GUI may now be misaligned.
Workaround
----------
Use a custom LookAndFeel to change the location where text is drawn, or use a
different font that matches the previous alignment of your original font.
Rationale
---------
This was an unintentional change resulting from moving away from a deprecated
macOS text API. The new alignment is consistent with other rendering engines
(web browsers and text editors) and the software renderer.
Change
------
The JUCEApplicationBase::backButtonPressed() method now returns a bool to

View file

@ -3,6 +3,23 @@
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.4.7
- Fixed a macOS focus bug causing Components to not receive mouse events
- Fixed a potential NullPointerException in the Android IAP code
- Fixed an entitlements file generation bug in the Projucer
- Send VST2 audioMasterUpdateDisplay opcode on the message thread to fix some hosts not updating
- Fixed some build errors and warnings when using Clang on Windows
- Changed the default architecture specified in Linux Makefiles generated by the Projucer
Version 5.4.6
- Fixed compatibility with macOS versions below 10.11
- Multiple thread safety improvements
- Added dynamic parameter and parameter group names
- Updated to the latest Android In-App Purchases API
- Improvements to the Windows message queue under high load
- Replaced WaitableEvent internals with std::condition_variable
- Fixed some macOS text alignment issues
Version 5.4.5
- Improved message queue performance on Linux
- Added missing lifecycle callbacks on Android Q

View file

@ -1056,25 +1056,6 @@ USE_HTAGS = NO
VERBATIM_HEADERS = NO
# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
# cost of reduced performance. This can be particularly helpful with template
# rich C++ code for which doxygen's built-in parser lacks the necessary type
# information.
# Note: The availability of this option depends on whether or not doxygen was
# compiled with the --with-libclang option.
# The default value is: NO.
CLANG_ASSISTED_PARSING = NO
# If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories
# specified with INPUT and INCLUDE_PATH.
# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
CLANG_OPTIONS =
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
@ -2166,12 +2147,6 @@ EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of 'which perl').
# The default file (with absolute path) is: /usr/bin/perl.
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
@ -2185,15 +2160,6 @@ PERL_PATH = /usr/bin/perl
CLASS_DIAGRAMS = YES
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see:
# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
# documentation. The MSCGEN_PATH tag allows you to specify the directory where
# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.
MSCGEN_PATH =
# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides.

View file

@ -166,6 +166,9 @@ public:
m_body->ApplyTorque(-50.0f);
}
break;
default:
break;
}
}

View file

@ -19,7 +19,7 @@
#pragma once
#include "../JuceLibraryCode/JuceHeader.h"
#include <JuceHeader.h>
#ifndef PIP_DEMO_UTILITIES_INCLUDED
#define PIP_DEMO_UTILITIES_INCLUDED 1
@ -74,11 +74,11 @@ inline File getExamplesDirectory() noexcept
#endif
}
inline InputStream* createAssetInputStream (const char* resourcePath)
inline std::unique_ptr<InputStream> createAssetInputStream (const char* resourcePath)
{
#if JUCE_ANDROID
ZipFile apkZip (File::getSpecialLocation (File::invokedExecutableFile));
return apkZip.createStreamForEntry (apkZip.getIndexOfFileName ("assets/" + String (resourcePath)));
return std::unique_ptr<InputStream> (apkZip.createStreamForEntry (apkZip.getIndexOfFileName ("assets/" + String (resourcePath))));
#else
#if JUCE_IOS
auto assetsDir = File::getSpecialLocation (File::currentExecutableFile)

View file

@ -348,7 +348,7 @@ private:
{
recorder.stop();
#if (JUCE_ANDROID || JUCE_IOS)
#if JUCE_CONTENT_SHARING
SafePointer<AudioRecordingDemo> safeThis (this);
File fileToShare = lastRecording;

View file

@ -182,7 +182,7 @@ struct SynthAudioSource : public AudioSource
{
WavAudioFormat wavFormat;
std::unique_ptr<AudioFormatReader> audioReader (wavFormat.createReaderFor (createAssetInputStream ("cello.wav"), true));
std::unique_ptr<AudioFormatReader> audioReader (wavFormat.createReaderFor (createAssetInputStream ("cello.wav").release(), true));
BigInteger allNotes;
allNotes.setRange (0, 128, true);

View file

@ -511,14 +511,14 @@ private:
{
if (currentMode == canvas)
{
block.setProgram (new BitmapLEDProgram (block));
block.setProgram (std::make_unique<BitmapLEDProgram>(block));
// Redraw any previously drawn LEDs
redrawLEDs();
}
else if (currentMode == colourPalette)
{
block.setProgram (new DrumPadGridProgram (block));
block.setProgram (std::make_unique <DrumPadGridProgram>(block));
// Setup the grid layout
if (auto* program = getPaletteProgram())

View file

@ -75,7 +75,7 @@ public:
// If this is a Lightpad then set the grid program to be blank
if (block->getLEDGrid() != nullptr)
block->setProgram (new BitmapLEDProgram (*block));
block->setProgram (std::make_unique<BitmapLEDProgram>(*block));
// If this is a Lightpad then redraw it at 25Hz
if (block->getType() == Block::lightPadBlock)
@ -175,7 +175,11 @@ public:
return { static_cast<float> (port.index), static_cast<float> (block->getHeight()) };
case e::west:
return { 0.0f, static_cast<float> (port.index) };
default:
break;
}
break;
}
case 90:
{
@ -189,7 +193,11 @@ public:
return { static_cast<float> (0.0f - block->getHeight()), static_cast<float> (port.index) };
case e::west:
return { static_cast<float> (-1.0f - port.index), 0.0f };
default:
break;
}
break;
}
case 180:
{
@ -203,7 +211,11 @@ public:
return { static_cast<float> (-1.0f - port.index), static_cast<float> (0.0f - block->getHeight()) };
case e::west:
return { 0.0f, static_cast<float> (-1.0f - port.index) };
default:
break;
}
break;
}
case 270:
{
@ -217,8 +229,15 @@ public:
return { static_cast<float> (block->getHeight()), static_cast<float> (-1.0f - port.index) };
case e::west:
return { static_cast<float> (port.index), 0.0f };
default:
break;
}
break;
}
default:
break;
}
return {};
@ -626,7 +645,7 @@ public:
auto numBlockComponents = blockComponents.size();
// If there are no currently connected Blocks then display some text on the screen
if (numBlockComponents == 0)
if (masterBlockComponent == nullptr || numBlockComponents == 0)
{
noBlocksLabel.setVisible (true);
noBlocksLabel.setBounds (0, (getHeight() / 2) - 50, getWidth(), 100);
@ -776,6 +795,9 @@ private:
/** Calculates the position and rotation of each connected Block relative to the master Block */
void positionBlocks (BlockTopology topology)
{
if (masterBlockComponent == nullptr)
return;
Array<BlockComponent*> blocksConnectedToMaster;
auto maxDelta = std::numeric_limits<float>::max();
@ -921,7 +943,11 @@ private:
return 90;
case edge::west:
return 270;
default:
break;
}
break;
}
case edge::south:
{
@ -935,7 +961,11 @@ private:
return 270;
case edge::west:
return 90;
default:
break;
}
break;
}
case edge::east:
{
@ -949,7 +979,11 @@ private:
return 180;
case edge::west:
return 0;
default:
break;
}
break;
}
case edge::west:
@ -964,8 +998,15 @@ private:
return 0;
case edge::west:
return 180;
default:
break;
}
break;
}
default:
break;
}
return 0;

View file

@ -411,7 +411,7 @@ public:
}
else
{
if (squareWaveY[x - 1] == 1)
if (x > 0 && squareWaveY[x - 1] == 1)
squareWaveY[x - 1] = 255;
squareWaveY[x] = 13;
@ -643,7 +643,7 @@ public:
detachActiveBlock();
// Get the array of currently connected Block objects from the PhysicalTopologySource
auto blocks = topologySource.getCurrentTopology().blocks;
auto blocks = topologySource.getBlocks();
// Iterate over the array of Block objects
for (auto b : blocks)
@ -785,7 +785,7 @@ private:
if (currentMode == waveformSelectionMode)
{
// Set the LEDGrid program
block.setProgram (new WaveshapeProgram (block));
block.setProgram (std::make_unique<WaveshapeProgram>(block));
// Initialise the program
if (auto* waveshapeProgram = getWaveshapeProgram())
@ -797,7 +797,7 @@ private:
else if (currentMode == playMode)
{
// Set the LEDGrid program
auto error = block.setProgram (new DrumPadGridProgram (block));
auto error = block.setProgram (std::make_unique<DrumPadGridProgram>(block));
if (error.failed())
{

View file

@ -90,8 +90,7 @@ struct ConvolutionDemoDSP
auto selectedType = cabinetTypeParameter->getCurrentSelectedID();
auto assetName = (selectedType == 2 ? "guitar_amp.wav" : "cassette_recorder.wav");
std::unique_ptr<InputStream> assetInputStream (createAssetInputStream (assetName));
if (assetInputStream != nullptr)
if (auto assetInputStream = createAssetInputStream (assetName))
{
currentCabinetData.reset();
assetInputStream->readIntoMemoryBlock (currentCabinetData);

View file

@ -8,7 +8,7 @@ SET(BINARY_NAME "juce_jni")
add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c")
set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression")
add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=23" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCE_PUSH_NOTIFICATIONS_ACTIVITY=\"com/roli/juce/JuceActivity\"" "-DJUCE_ANDROID_GL_ES_VERSION_3_0=1" "-DJUCE_DEMO_RUNNER=1" "-DJUCE_UNIT_TESTS=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=5.4.5" "-DJUCE_APP_VERSION_HEX=0x50405")
add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=23" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCE_PUSH_NOTIFICATIONS_ACTIVITY=\"com/roli/juce/JuceActivity\"" "-DJUCE_ANDROID_GL_ES_VERSION_3_0=1" "-DJUCE_DEMO_RUNNER=1" "-DJUCE_UNIT_TESTS=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=5.4.7" "-DJUCE_APP_VERSION_HEX=0x50407")
include_directories( AFTER
"../../../JuceLibraryCode"
@ -138,6 +138,7 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h"
"../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"
"../../../../../modules/juce_audio_devices/native/juce_android_HighPerformanceAudioHelpers.h"
"../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"
"../../../../../modules/juce_audio_devices/native/juce_android_Oboe.cpp"
"../../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp"
@ -729,8 +730,6 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_core/misc/juce_Result.h"
"../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp"
"../../../../../modules/juce_core/misc/juce_RuntimePermissions.h"
"../../../../../modules/juce_core/misc/juce_StdFunctionCompat.cpp"
"../../../../../modules/juce_core/misc/juce_StdFunctionCompat.h"
"../../../../../modules/juce_core/misc/juce_Uuid.cpp"
"../../../../../modules/juce_core/misc/juce_Uuid.h"
"../../../../../modules/juce_core/misc/juce_WindowsRegistry.h"
@ -975,6 +974,7 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_dsp/processors/juce_Oversampling.h"
"../../../../../modules/juce_dsp/processors/juce_ProcessContext.h"
"../../../../../modules/juce_dsp/processors/juce_ProcessorChain.h"
"../../../../../modules/juce_dsp/processors/juce_ProcessorChain_test.cpp"
"../../../../../modules/juce_dsp/processors/juce_ProcessorDuplicator.h"
"../../../../../modules/juce_dsp/processors/juce_ProcessorWrapper.h"
"../../../../../modules/juce_dsp/processors/juce_Reverb.h"
@ -1744,6 +1744,7 @@ set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/j
set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_HighPerformanceAudioHelpers.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_Oboe.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
@ -2335,8 +2336,6 @@ set_source_files_properties("../../../../../modules/juce_core/misc/juce_Result.c
set_source_files_properties("../../../../../modules/juce_core/misc/juce_Result.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_RuntimePermissions.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_StdFunctionCompat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_StdFunctionCompat.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_Uuid.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_Uuid.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_WindowsRegistry.h" PROPERTIES HEADER_FILE_ONLY TRUE)
@ -2581,6 +2580,7 @@ set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_Ove
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_Oversampling.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_ProcessContext.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_ProcessorChain.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_ProcessorChain_test.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_ProcessorDuplicator.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_ProcessorWrapper.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_Reverb.h" PROPERTIES HEADER_FILE_ONLY TRUE)

View file

@ -53,7 +53,7 @@ android {
}
externalNativeBuild {
cmake {
arguments "-DJUCE_BUILD_CONFIGURATION=DEBUG", "-DCMAKE_CXX_FLAGS_DEBUG=-O0 -Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers", "-DCMAKE_C_FLAGS_DEBUG=-O0"
arguments "-DJUCE_BUILD_CONFIGURATION=DEBUG", "-DCMAKE_CXX_FLAGS_DEBUG=-O0 -Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum", "-DCMAKE_C_FLAGS_DEBUG=-O0"
}
}
@ -62,7 +62,7 @@ android {
release_ {
externalNativeBuild {
cmake {
arguments "-DJUCE_BUILD_CONFIGURATION=RELEASE", "-DCMAKE_CXX_FLAGS_RELEASE=-O3 -Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers", "-DCMAKE_C_FLAGS_RELEASE=-O3"
arguments "-DJUCE_BUILD_CONFIGURATION=RELEASE", "-DCMAKE_CXX_FLAGS_RELEASE=-O3 -Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum", "-DCMAKE_C_FLAGS_RELEASE=-O3"
}
}
@ -86,7 +86,6 @@ android {
main.java.srcDirs +=
["../../../../../modules/juce_core/native/javacore/init",
"../../../../../modules/juce_core/native/javacore/app",
"../../../../../modules/juce_gui_basics/native/javacore/app",
"../../../../../modules/juce_gui_basics/native/javaopt/app"]
main.res.srcDirs +=

View file

@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="5.4.5"
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="5.4.7"
package="com.juce.demorunner">
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true"/>
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true"
android:xlargeScreens="true"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
@ -22,6 +23,6 @@
</intent-filter>
</activity>
<provider android:name="com.roli.juce.JuceSharingContentProvider" android:authorities="com.juce.demorunner.sharingcontentprovider"
android:grantUriPermissions="true" android:exported="false"/>
android:grantUriPermissions="true" android:exported="true"/>
</application>
</manifest>

View file

@ -166,6 +166,9 @@ public:
m_body->ApplyTorque(-50.0f);
}
break;
default:
break;
}
}

View file

@ -19,7 +19,7 @@
#pragma once
#include "../JuceLibraryCode/JuceHeader.h"
#include <JuceHeader.h>
#ifndef PIP_DEMO_UTILITIES_INCLUDED
#define PIP_DEMO_UTILITIES_INCLUDED 1
@ -74,11 +74,11 @@ inline File getExamplesDirectory() noexcept
#endif
}
inline InputStream* createAssetInputStream (const char* resourcePath)
inline std::unique_ptr<InputStream> createAssetInputStream (const char* resourcePath)
{
#if JUCE_ANDROID
ZipFile apkZip (File::getSpecialLocation (File::invokedExecutableFile));
return apkZip.createStreamForEntry (apkZip.getIndexOfFileName ("assets/" + String (resourcePath)));
return std::unique_ptr<InputStream> (apkZip.createStreamForEntry (apkZip.getIndexOfFileName ("assets/" + String (resourcePath))));
#else
#if JUCE_IOS
auto assetsDir = File::getSpecialLocation (File::currentExecutableFile)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before After
Before After

View file

@ -32,16 +32,16 @@ ifeq ($(CONFIG),Debug)
JUCE_OUTDIR := build
ifeq ($(TARGET_ARCH),)
TARGET_ARCH := -march=native
TARGET_ARCH :=
endif
JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCE_DEMO_RUNNER=1 -DJUCE_UNIT_TESTS=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.5 -DJUCE_APP_VERSION_HEX=0x50405 $(shell pkg-config --cflags alsa x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0 libcurl) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCE_DEMO_RUNNER=1 -DJUCE_UNIT_TESTS=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.7 -DJUCE_APP_VERSION_HEX=0x50407 $(shell pkg-config --cflags alsa x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0 libcurl) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
JUCE_CPPFLAGS_APP := -DJucePlugin_Build_VST=0 -DJucePlugin_Build_VST3=0 -DJucePlugin_Build_AU=0 -DJucePlugin_Build_AUv3=0 -DJucePlugin_Build_RTAS=0 -DJucePlugin_Build_AAX=0 -DJucePlugin_Build_Standalone=0 -DJucePlugin_Build_Unity=0
JUCE_TARGET_APP := DemoRunner
JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS)
JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS)
JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0 libcurl) -lrt -ldl -lpthread -lGL $(LDFLAGS)
JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0 libcurl) -fvisibility=hidden -lrt -ldl -lpthread -lGL $(LDFLAGS)
CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR)
endif
@ -53,10 +53,10 @@ ifeq ($(CONFIG),Release)
JUCE_OUTDIR := build
ifeq ($(TARGET_ARCH),)
TARGET_ARCH := -march=native
TARGET_ARCH :=
endif
JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCE_DEMO_RUNNER=1 -DJUCE_UNIT_TESTS=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.5 -DJUCE_APP_VERSION_HEX=0x50405 $(shell pkg-config --cflags alsa x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0 libcurl) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCE_DEMO_RUNNER=1 -DJUCE_UNIT_TESTS=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.7 -DJUCE_APP_VERSION_HEX=0x50407 $(shell pkg-config --cflags alsa x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0 libcurl) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
JUCE_CPPFLAGS_APP := -DJucePlugin_Build_VST=0 -DJucePlugin_Build_VST3=0 -DJucePlugin_Build_AU=0 -DJucePlugin_Build_AUv3=0 -DJucePlugin_Build_RTAS=0 -DJucePlugin_Build_AAX=0 -DJucePlugin_Build_Standalone=0 -DJucePlugin_Build_Unity=0
JUCE_TARGET_APP := DemoRunner

View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>

View file

@ -303,13 +303,6 @@
path = ../../Source/Main.cpp;
sourceTree = "SOURCE_ROOT";
};
2CDA0CB288452DA016E874BC = {
isa = PBXFileReference;
lastKnownFileType = text.plist.xml;
name = App.entitlements;
path = App.entitlements;
sourceTree = "SOURCE_ROOT";
};
346450C70C964FD9640B6086 = {
isa = PBXFileReference;
lastKnownFileType = file;
@ -941,8 +934,8 @@
"JUCE_DEMO_RUNNER=1",
"JUCE_UNIT_TESTS=1",
"JUCER_XCODE_MAC_F6D2F4CF=1",
"JUCE_APP_VERSION=5.4.5",
"JUCE_APP_VERSION_HEX=0x50405",
"JUCE_APP_VERSION=5.4.7",
"JUCE_APP_VERSION_HEX=0x50407",
"JucePlugin_Build_VST=0",
"JucePlugin_Build_VST3=0",
"JucePlugin_Build_AU=0",
@ -962,7 +955,7 @@
INFOPLIST_PREPROCESS = NO;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET = 10.11;
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers";
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum";
PRODUCT_BUNDLE_IDENTIFIER = com.juce.demorunner;
PRODUCT_NAME = "DemoRunner";
USE_HEADERMAP = NO;
@ -987,8 +980,8 @@
"JUCE_DEMO_RUNNER=1",
"JUCE_UNIT_TESTS=1",
"JUCER_XCODE_MAC_F6D2F4CF=1",
"JUCE_APP_VERSION=5.4.5",
"JUCE_APP_VERSION_HEX=0x50405",
"JUCE_APP_VERSION=5.4.7",
"JUCE_APP_VERSION_HEX=0x50407",
"JucePlugin_Build_VST=0",
"JucePlugin_Build_VST3=0",
"JucePlugin_Build_AU=0",
@ -998,7 +991,6 @@
"JucePlugin_Build_Standalone=0",
"JucePlugin_Build_Unity=0",
);
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = (
"../../JuceLibraryCode",
@ -1010,7 +1002,7 @@
INSTALL_PATH = "$(HOME)/Applications";
LLVM_LTO = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers";
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum";
PRODUCT_BUNDLE_IDENTIFIER = com.juce.demorunner;
PRODUCT_NAME = "DemoRunner";
USE_HEADERMAP = NO;
@ -1042,11 +1034,12 @@
CODE_SIGN_IDENTITY = "";
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_TESTABILITY = NO;
GCC_C_LANGUAGE_STANDARD = c11;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
GCC_NO_COMMON_BLOCKS = YES;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
@ -1090,10 +1083,12 @@
CODE_SIGN_IDENTITY = "";
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = NO;
GCC_C_LANGUAGE_STANDARD = c11;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
GCC_NO_COMMON_BLOCKS = YES;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;

View file

@ -22,9 +22,9 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>5.4.5</string>
<string>5.4.7</string>
<key>CFBundleVersion</key>
<string>5.4.5</string>
<string>5.4.7</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) 2018 - ROLI Ltd.</string>
<key>NSHighResolutionCapable</key>

View file

@ -64,7 +64,7 @@
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=5.4.5;JUCE_APP_VERSION_HEX=0x50405;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=5.4.7;JUCE_APP_VERSION_HEX=0x50407;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/>
@ -106,7 +106,7 @@
<ClCompile>
<Optimization>Full</Optimization>
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=5.4.5;JUCE_APP_VERSION_HEX=0x50405;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=5.4.7;JUCE_APP_VERSION_HEX=0x50407;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/>
@ -965,9 +965,6 @@
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -1292,6 +1289,9 @@
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -2307,6 +2307,7 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\audio_io\juce_SystemAudioVolume.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\midi_io\juce_MidiDevices.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\midi_io\juce_MidiMessageCollector.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_android_HighPerformanceAudioHelpers.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_ios_Audio.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_MidiDataConcatenator.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\sources\juce_AudioSourcePlayer.h"/>
@ -2644,7 +2645,6 @@
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_ConsoleApplication.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_Result.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_WindowsRegistry.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\native\juce_android_JNIHelpers.h"/>

View file

@ -1396,9 +1396,6 @@
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.cpp">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.cpp">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.cpp">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClCompile>
@ -1747,6 +1744,9 @@
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
<Filter>JUCE Modules\juce_dsp\processors</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
<Filter>JUCE Modules\juce_dsp\processors</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
<Filter>JUCE Modules\juce_dsp</Filter>
</ClCompile>
@ -2988,6 +2988,9 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\midi_io\juce_MidiMessageCollector.h">
<Filter>JUCE Modules\juce_audio_devices\midi_io</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_android_HighPerformanceAudioHelpers.h">
<Filter>JUCE Modules\juce_audio_devices\native</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_ios_Audio.h">
<Filter>JUCE Modules\juce_audio_devices\native</Filter>
</ClInclude>
@ -3999,9 +4002,6 @@
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.h">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.h">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.h">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClInclude>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before After
Before After

View file

@ -1,3 +1,5 @@
#pragma code_page(65001)
#ifdef JUCE_USER_DEFINED_RC_FILE
#include JUCE_USER_DEFINED_RC_FILE
#else
@ -7,7 +9,7 @@
#include <windows.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 5,4,5,0
FILEVERSION 5,4,7,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
@ -16,9 +18,9 @@ BEGIN
VALUE "CompanyName", "ROLI Ltd.\0"
VALUE "LegalCopyright", "Copyright (c) 2018 - ROLI Ltd.\0"
VALUE "FileDescription", "DemoRunner\0"
VALUE "FileVersion", "5.4.5\0"
VALUE "FileVersion", "5.4.7\0"
VALUE "ProductName", "DemoRunner\0"
VALUE "ProductVersion", "5.4.5\0"
VALUE "ProductVersion", "5.4.7\0"
END
END

View file

@ -64,7 +64,7 @@
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=5.4.5;JUCE_APP_VERSION_HEX=0x50405;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=5.4.7;JUCE_APP_VERSION_HEX=0x50407;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/>
@ -106,7 +106,7 @@
<ClCompile>
<Optimization>Full</Optimization>
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=5.4.5;JUCE_APP_VERSION_HEX=0x50405;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=5.4.7;JUCE_APP_VERSION_HEX=0x50407;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/>
@ -965,9 +965,6 @@
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -1292,6 +1289,9 @@
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -2307,6 +2307,7 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\audio_io\juce_SystemAudioVolume.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\midi_io\juce_MidiDevices.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\midi_io\juce_MidiMessageCollector.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_android_HighPerformanceAudioHelpers.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_ios_Audio.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_MidiDataConcatenator.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\sources\juce_AudioSourcePlayer.h"/>
@ -2644,7 +2645,6 @@
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_ConsoleApplication.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_Result.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_WindowsRegistry.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\native\juce_android_JNIHelpers.h"/>

View file

@ -1396,9 +1396,6 @@
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.cpp">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.cpp">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.cpp">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClCompile>
@ -1747,6 +1744,9 @@
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
<Filter>JUCE Modules\juce_dsp\processors</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
<Filter>JUCE Modules\juce_dsp\processors</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
<Filter>JUCE Modules\juce_dsp</Filter>
</ClCompile>
@ -2988,6 +2988,9 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\midi_io\juce_MidiMessageCollector.h">
<Filter>JUCE Modules\juce_audio_devices\midi_io</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_android_HighPerformanceAudioHelpers.h">
<Filter>JUCE Modules\juce_audio_devices\native</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_ios_Audio.h">
<Filter>JUCE Modules\juce_audio_devices\native</Filter>
</ClInclude>
@ -3999,9 +4002,6 @@
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.h">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.h">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.h">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClInclude>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before After
Before After

View file

@ -1,3 +1,5 @@
#pragma code_page(65001)
#ifdef JUCE_USER_DEFINED_RC_FILE
#include JUCE_USER_DEFINED_RC_FILE
#else
@ -7,7 +9,7 @@
#include <windows.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 5,4,5,0
FILEVERSION 5,4,7,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
@ -16,9 +18,9 @@ BEGIN
VALUE "CompanyName", "ROLI Ltd.\0"
VALUE "LegalCopyright", "Copyright (c) 2018 - ROLI Ltd.\0"
VALUE "FileDescription", "DemoRunner\0"
VALUE "FileVersion", "5.4.5\0"
VALUE "FileVersion", "5.4.7\0"
VALUE "ProductName", "DemoRunner\0"
VALUE "ProductVersion", "5.4.5\0"
VALUE "ProductVersion", "5.4.7\0"
END
END

View file

@ -64,7 +64,7 @@
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=5.4.5;JUCE_APP_VERSION_HEX=0x50405;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=5.4.7;JUCE_APP_VERSION_HEX=0x50407;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/>
@ -106,7 +106,7 @@
<ClCompile>
<Optimization>Full</Optimization>
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=5.4.5;JUCE_APP_VERSION_HEX=0x50405;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=5.4.7;JUCE_APP_VERSION_HEX=0x50407;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/>
@ -965,9 +965,6 @@
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -1292,6 +1289,9 @@
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -2307,6 +2307,7 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\audio_io\juce_SystemAudioVolume.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\midi_io\juce_MidiDevices.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\midi_io\juce_MidiMessageCollector.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_android_HighPerformanceAudioHelpers.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_ios_Audio.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_MidiDataConcatenator.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\sources\juce_AudioSourcePlayer.h"/>
@ -2644,7 +2645,6 @@
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_ConsoleApplication.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_Result.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_WindowsRegistry.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\native\juce_android_JNIHelpers.h"/>

View file

@ -1396,9 +1396,6 @@
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.cpp">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.cpp">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.cpp">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClCompile>
@ -1747,6 +1744,9 @@
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
<Filter>JUCE Modules\juce_dsp\processors</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
<Filter>JUCE Modules\juce_dsp\processors</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
<Filter>JUCE Modules\juce_dsp</Filter>
</ClCompile>
@ -2988,6 +2988,9 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\midi_io\juce_MidiMessageCollector.h">
<Filter>JUCE Modules\juce_audio_devices\midi_io</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_android_HighPerformanceAudioHelpers.h">
<Filter>JUCE Modules\juce_audio_devices\native</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_devices\native\juce_ios_Audio.h">
<Filter>JUCE Modules\juce_audio_devices\native</Filter>
</ClInclude>
@ -3999,9 +4002,6 @@
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_RuntimePermissions.h">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_StdFunctionCompat.h">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\misc\juce_Uuid.h">
<Filter>JUCE Modules\juce_core\misc</Filter>
</ClInclude>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before After
Before After

View file

@ -1,3 +1,5 @@
#pragma code_page(65001)
#ifdef JUCE_USER_DEFINED_RC_FILE
#include JUCE_USER_DEFINED_RC_FILE
#else
@ -7,7 +9,7 @@
#include <windows.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 5,4,5,0
FILEVERSION 5,4,7,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
@ -16,9 +18,9 @@ BEGIN
VALUE "CompanyName", "ROLI Ltd.\0"
VALUE "LegalCopyright", "Copyright (c) 2018 - ROLI Ltd.\0"
VALUE "FileDescription", "DemoRunner\0"
VALUE "FileVersion", "5.4.5\0"
VALUE "FileVersion", "5.4.7\0"
VALUE "ProductName", "DemoRunner\0"
VALUE "ProductVersion", "5.4.5\0"
VALUE "ProductVersion", "5.4.7\0"
END
END

View file

@ -919,8 +919,8 @@
"JUCE_DEMO_RUNNER=1",
"JUCE_UNIT_TESTS=1",
"JUCER_XCODE_IPHONE_5BC26AE3=1",
"JUCE_APP_VERSION=5.4.5",
"JUCE_APP_VERSION_HEX=0x50405",
"JUCE_APP_VERSION=5.4.7",
"JUCE_APP_VERSION_HEX=0x50407",
"JucePlugin_Build_VST=0",
"JucePlugin_Build_VST3=0",
"JucePlugin_Build_AU=0",
@ -939,7 +939,7 @@
INFOPLIST_FILE = Info-App.plist;
INFOPLIST_PREPROCESS = NO;
INSTALL_PATH = "$(HOME)/Applications";
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers";
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum";
PRODUCT_BUNDLE_IDENTIFIER = com.juce.demorunner;
PRODUCT_NAME = "DemoRunner";
USE_HEADERMAP = NO;
@ -966,8 +966,8 @@
"JUCE_DEMO_RUNNER=1",
"JUCE_UNIT_TESTS=1",
"JUCER_XCODE_IPHONE_5BC26AE3=1",
"JUCE_APP_VERSION=5.4.5",
"JUCE_APP_VERSION_HEX=0x50405",
"JUCE_APP_VERSION=5.4.7",
"JUCE_APP_VERSION_HEX=0x50407",
"JucePlugin_Build_VST=0",
"JucePlugin_Build_VST3=0",
"JucePlugin_Build_AU=0",
@ -977,7 +977,6 @@
"JucePlugin_Build_Standalone=0",
"JucePlugin_Build_Unity=0",
);
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = (
"../../JuceLibraryCode",
@ -988,7 +987,7 @@
INFOPLIST_PREPROCESS = NO;
INSTALL_PATH = "$(HOME)/Applications";
LLVM_LTO = YES;
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers";
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum";
PRODUCT_BUNDLE_IDENTIFIER = com.juce.demorunner;
PRODUCT_NAME = "DemoRunner";
USE_HEADERMAP = NO;
@ -1020,11 +1019,12 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_TESTABILITY = NO;
GCC_C_LANGUAGE_STANDARD = c11;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
GCC_NO_COMMON_BLOCKS = YES;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
@ -1070,10 +1070,12 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = NO;
GCC_C_LANGUAGE_STANDARD = c11;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
GCC_NO_COMMON_BLOCKS = YES;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 912 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

@ -30,9 +30,9 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>5.4.5</string>
<string>5.4.7</string>
<key>CFBundleVersion</key>
<string>5.4.5</string>
<string>5.4.7</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) 2018 - ROLI Ltd.</string>
<key>NSHighResolutionCapable</key>

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT name="DemoRunner" projectType="guiapp" jucerVersion="5.4.5" defines="JUCE_DEMO_RUNNER=1&#10;JUCE_UNIT_TESTS=1"
bundleIdentifier="com.juce.demorunner" version="5.4.5" companyName="ROLI Ltd."
<JUCERPROJECT name="DemoRunner" projectType="guiapp" jucerVersion="5.4.7" defines="JUCE_DEMO_RUNNER=1&#10;JUCE_UNIT_TESTS=1"
bundleIdentifier="com.juce.demorunner" version="5.4.7" companyName="ROLI Ltd."
companyCopyright="Copyright (c) 2018 - ROLI Ltd." companyWebsite="https://www.juce.com/"
companyEmail="info@juce.com" id="yj7xMM" reportAppUsage="1">
companyEmail="info@juce.com" id="yj7xMM" reportAppUsage="0">
<MAINGROUP id="G8kbr7" name="DemoRunner">
<GROUP id="{20E3F84A-29E9-D5FF-4559-1A9E4A70CD60}" name="Source">
<GROUP id="{272A692A-6AFE-68BD-C8E8-63B3D62245B1}" name="Demos">

View file

@ -40,14 +40,14 @@
#endif
#ifndef JUCE_REPORT_APP_USAGE
#define JUCE_REPORT_APP_USAGE 1
#define JUCE_REPORT_APP_USAGE 0
#endif
// END SECTION A
#define JUCE_USE_DARK_SPLASH_SCREEN 1
#define JUCE_PROJUCER_VERSION 0x50405
#define JUCE_PROJUCER_VERSION 0x50407
//==============================================================================
#define JUCE_MODULE_AVAILABLE_juce_analytics 1

View file

@ -56,7 +56,7 @@ namespace ProjectInfo
{
const char* const projectName = "DemoRunner";
const char* const companyName = "ROLI Ltd.";
const char* const versionString = "5.4.5";
const int versionNumber = 0x50405;
const char* const versionString = "5.4.7";
const int versionNumber = 0x50407;
}
#endif

View file

@ -24,7 +24,7 @@
==============================================================================
*/
#include "../JuceLibraryCode/JuceHeader.h"
#include <JuceHeader.h>
#include "../../../Assets/DemoUtilities.h"
#include "JUCEDemos.h"
@ -41,26 +41,23 @@
#include "../../../Audio/MidiDemo.h"
#include "../../../Audio/MPEDemo.h"
#include "../../../Audio/PluckedStringsDemo.h"
#include "../../../Audio/SimpleFFTDemo.h"
#if JUCE_HAS_CONSTEXPR
#include "../../../Audio/SimpleFFTDemo.h"
#include "../../../BLOCKS/BlocksDrawingDemo.h"
#include "../../../BLOCKS/BlocksMonitorDemo.h"
#include "../../../BLOCKS/BlocksSynthDemo.h"
#include "../../../BLOCKS/BlocksDrawingDemo.h"
#include "../../../BLOCKS/BlocksMonitorDemo.h"
#include "../../../BLOCKS/BlocksSynthDemo.h"
#include "../../../DSP/ConvolutionDemo.h"
#include "../../../DSP/FIRFilterDemo.h"
#include "../../../DSP/GainDemo.h"
#include "../../../DSP/IIRFilterDemo.h"
#include "../../../DSP/OscillatorDemo.h"
#include "../../../DSP/OverdriveDemo.h"
#if JUCE_USE_SIMD
#include "../../../DSP/SIMDRegisterDemo.h"
#endif
#include "../../../DSP/StateVariableFilterDemo.h"
#include "../../../DSP/WaveShaperTanhDemo.h"
#include "../../../DSP/ConvolutionDemo.h"
#include "../../../DSP/FIRFilterDemo.h"
#include "../../../DSP/GainDemo.h"
#include "../../../DSP/IIRFilterDemo.h"
#include "../../../DSP/OscillatorDemo.h"
#include "../../../DSP/OverdriveDemo.h"
#if JUCE_USE_SIMD
#include "../../../DSP/SIMDRegisterDemo.h"
#endif
#include "../../../DSP/StateVariableFilterDemo.h"
#include "../../../DSP/WaveShaperTanhDemo.h"
#include "../../../Utilities/Box2DDemo.h"
#if JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX
@ -90,7 +87,6 @@ void registerDemos_One() noexcept
REGISTER_DEMO (MPEDemo, Audio, false)
REGISTER_DEMO (PluckedStringsDemo, Audio, false)
#if JUCE_HAS_CONSTEXPR
REGISTER_DEMO (SimpleFFTDemo, Audio, false)
REGISTER_DEMO (BlocksDrawingDemo, BLOCKS, false)
REGISTER_DEMO (BlocksMonitorDemo, BLOCKS, false)
@ -107,7 +103,6 @@ void registerDemos_One() noexcept
#endif
REGISTER_DEMO (StateVariableFilterDemo, DSP, false)
REGISTER_DEMO (WaveShaperTanhDemo, DSP, false)
#endif
REGISTER_DEMO (Box2DDemo, Utilities, false)
#if JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX

View file

@ -24,7 +24,7 @@
==============================================================================
*/
#include "../JuceLibraryCode/JuceHeader.h"
#include <JuceHeader.h>
#include "../../../Assets/DemoUtilities.h"
#include "JUCEDemos.h"
@ -46,9 +46,7 @@
#include "../../../GUI/FlexBoxDemo.h"
#include "../../../GUI/FontsDemo.h"
#include "../../../GUI/GraphicsDemo.h"
#if JUCE_HAS_CONSTEXPR
#include "../../../GUI/GridDemo.h"
#endif
#include "../../../GUI/GridDemo.h"
#include "../../../GUI/ImagesDemo.h"
#include "../../../GUI/KeyMappingsDemo.h"
#include "../../../GUI/LookAndFeelDemo.h"
@ -85,9 +83,7 @@ void registerDemos_Two() noexcept
REGISTER_DEMO (FlexBoxDemo, GUI, false)
REGISTER_DEMO (FontsDemo, GUI, false)
REGISTER_DEMO (GraphicsDemo, GUI, false)
#if JUCE_HAS_CONSTEXPR
REGISTER_DEMO (GridDemo, GUI, false)
#endif
REGISTER_DEMO (ImagesDemo, GUI, false)
REGISTER_DEMO (KeyMappingsDemo, GUI, false)
REGISTER_DEMO (LookAndFeelDemo, GUI, false)

View file

@ -24,7 +24,7 @@
==============================================================================
*/
#include "../JuceLibraryCode/JuceHeader.h"
#include <JuceHeader.h>
#include "../../../Assets/DemoUtilities.h"
#include "JUCEDemos.h"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before After
Before After

View file

@ -24,7 +24,7 @@
==============================================================================
*/
#include "../JuceLibraryCode/JuceHeader.h"
#include <JuceHeader.h>
#include "../../Assets/DemoUtilities.h"
#include "UI/MainComponent.h"

View file

@ -103,7 +103,7 @@ struct CodeContent : public Component
//==============================================================================
DemoContentComponent::DemoContentComponent (Component& mainComponent, std::function<void(bool)> callback)
: TabbedComponent (TabbedButtonBar::Orientation::TabsAtTop),
demoChangedCallback (callback)
demoChangedCallback (std::move (callback))
{
demoContent.reset (new DemoContent());
addTab ("Demo", Colours::transparentBlack, demoContent.get(), false);

View file

@ -26,7 +26,7 @@
#pragma once
#include "../JuceLibraryCode/JuceHeader.h"
#include <JuceHeader.h>
#include "../Demos/JUCEDemos.h"
struct DemoContent;

View file

@ -26,7 +26,7 @@
#pragma once
#include "../JuceLibraryCode/JuceHeader.h"
#include <JuceHeader.h>
#include "DemoContentComponent.h"
//==============================================================================

View file

@ -303,7 +303,7 @@ private:
snapshotButton.setEnabled (true);
#endif
#if JUCE_ANDROID || JUCE_IOS
#if JUCE_CONTENT_SHARING
URL url (recordingFile);
snapshotButton .setEnabled (false);
@ -337,7 +337,7 @@ private:
lastSnapshot.setImage (image);
#if JUCE_ANDROID || JUCE_IOS
#if JUCE_CONTENT_SHARING
auto imageFile = File::getSpecialLocation (File::tempDirectory).getNonexistentChildFile ("JuceCameraPhotoDemo", ".jpg");
FileOutputStream stream (imageFile);

View file

@ -144,7 +144,7 @@ public:
StringArray windowNames { "Plain Alert Window", "Alert Window With Warning Icon", "Alert Window With Info Icon", "Alert Window With Question Icon",
"OK Cancel Alert Window", "Alert Window With Extra Components", "CalloutBox", "Thread With Progress Window",
"'Load' File Browser", "'Load' File Browser With Image Preview", "'Choose Directory' File Browser", "'Save' File Browser",
"Share Text", "Share Files", "Share Images" };
"Share Text", "Share Files", "Share Images" };
// warn in case we add any windows
jassert (windowNames.size() == numDialogs);
@ -219,13 +219,9 @@ private:
{
AlertWindow::AlertIconType icon = AlertWindow::NoIcon;
switch (type)
{
case warningAlertWindow: icon = AlertWindow::WarningIcon; break;
case infoAlertWindow: icon = AlertWindow::InfoIcon; break;
case questionAlertWindow: icon = AlertWindow::QuestionIcon; break;
default: break;
}
if (type == warningAlertWindow) icon = AlertWindow::WarningIcon;
if (type == infoAlertWindow) icon = AlertWindow::InfoIcon;
if (type == questionAlertWindow) icon = AlertWindow::QuestionIcon;
AlertWindow::showMessageBoxAsync (icon, "This is an AlertWindow",
"And this is the AlertWindow's message. Blah blah blah blah blah blah blah blah blah blah blah blah blah.",
@ -339,7 +335,7 @@ private:
FileOutputStream outStream (fileToSave);
if (outStream.openedOk())
if (auto inStream = std::unique_ptr<InputStream> (createAssetInputStream ("juce_icon.png")))
if (auto inStream = createAssetInputStream ("juce_icon.png"))
outStream.writeFromInputStream (*inStream, -1);
}
@ -419,7 +415,7 @@ private:
fileToSave.replaceWithText ("Make it fast!");
Array<URL> urls;
urls.add ({ fileToSave.getFullPathName() });
urls.add (URL (fileToSave));
ContentSharer::getInstance()->shareFiles (urls,
[] (bool success, const String& error)

View file

@ -118,6 +118,7 @@ struct DemoFlexPanel : public juce::Component
case 3: flexItem.alignSelf = FlexItem::AlignSelf::flexEnd; break;
case 4: flexItem.alignSelf = FlexItem::AlignSelf::center; break;
case 5: flexItem.alignSelf = FlexItem::AlignSelf::stretch; break;
default: break;
}
refreshLayout();

View file

@ -489,7 +489,7 @@ public:
{
lastSVGLoadTime = Time::getCurrentTime();
ZipFile icons (createAssetInputStream ("icons.zip"), true);
ZipFile icons (createAssetInputStream ("icons.zip").release(), true);
// Load a random SVG file from our embedded icons.zip file.
const std::unique_ptr<InputStream> svgFileStream (icons.createStreamForEntry (Random::getSystemRandom().nextInt (icons.getNumEntries())));

View file

@ -667,7 +667,7 @@ private:
if (iconsFromZipFile.size() == 0)
{
// If we've not already done so, load all the images from the zip file..
ZipFile icons (createAssetInputStream ("icons.zip"), true);
ZipFile icons (createAssetInputStream ("icons.zip").release(), true);
for (int i = 0; i < icons.getNumEntries(); ++i)
{

View file

@ -180,9 +180,9 @@ class AUv3SynthEditor : public AudioProcessorEditor,
{
public:
//==============================================================================
AUv3SynthEditor (AudioProcessor& processor)
: AudioProcessorEditor (processor),
roomSizeSlider (Slider::LinearHorizontal, Slider::NoTextBox)
AUv3SynthEditor (AudioProcessor& processorIn)
: AudioProcessorEditor (processorIn),
roomSizeSlider (Slider::LinearHorizontal, Slider::NoTextBox)
{
LookAndFeel::setDefaultLookAndFeel (&materialLookAndFeel);
@ -195,10 +195,8 @@ public:
roomSizeSlider.setRange (0.0, 1.0);
addAndMakeVisible (roomSizeSlider);
if (auto* assetStream = createAssetInputStream ("proaudio.path"))
if (auto fileStream = createAssetInputStream ("proaudio.path"))
{
std::unique_ptr<InputStream> fileStream (assetStream);
Path proAudioPath;
proAudioPath.loadPathFromStream (*fileStream);
proAudioIcon.setPath (proAudioPath);
@ -411,13 +409,13 @@ private:
//==============================================================================
void loadNewSampleBinary (const void* data, int dataSize, const char* format)
{
auto* soundBuffer = new MemoryInputStream (data, static_cast<std::size_t> (dataSize), false);
loadNewSample (soundBuffer, format);
auto soundBuffer = std::make_unique<MemoryInputStream> (data, static_cast<std::size_t> (dataSize), false);
loadNewSample (std::move (soundBuffer), format);
}
void loadNewSample (InputStream* soundBuffer, const char* format)
void loadNewSample (std::unique_ptr<InputStream> soundBuffer, const char* format)
{
std::unique_ptr<AudioFormatReader> formatReader (formatManager.findFormatForFileExtension (format)->createReaderFor (soundBuffer, true));
std::unique_ptr<AudioFormatReader> formatReader (formatManager.findFormatForFileExtension (format)->createReaderFor (soundBuffer.release(), true));
BigInteger midiNotes;
midiNotes.setRange (0, 126, true);

View file

@ -61,8 +61,6 @@ public:
addParameter (speed = new AudioParameterFloat ("speed", "Arpeggiator Speed", 0.0, 1.0, 0.5));
}
~Arpeggiator() {}
//==============================================================================
void prepareToPlay (double sampleRate, int samplesPerBlock) override
{

View file

@ -177,9 +177,9 @@ public:
//==============================================================================
JuceDemoPluginAudioProcessor()
: AudioProcessor (getBusesProperties()),
state (*this, nullptr, "state",
{ std::make_unique<AudioParameterFloat> ("gain", "Gain", NormalisableRange<float> (0.0f, 1.0f), 0.9f),
std::make_unique<AudioParameterFloat> ("delay", "Delay Feedback", NormalisableRange<float> (0.0f, 1.0f), 0.5f) })
state (*this, nullptr, "state",
{ std::make_unique<AudioParameterFloat> ("gain", "Gain", NormalisableRange<float> (0.0f, 1.0f), 0.9f),
std::make_unique<AudioParameterFloat> ("delay", "Delay Feedback", NormalisableRange<float> (0.0f, 1.0f), 0.5f) })
{
lastPosInfo.resetToDefault();
@ -302,10 +302,22 @@ public:
//==============================================================================
void updateTrackProperties (const TrackProperties& properties) override
{
trackProperties = properties;
{
const ScopedLock sl (trackPropertiesLock);
trackProperties = properties;
}
if (auto* editor = dynamic_cast<JuceDemoPluginAudioProcessorEditor*> (getActiveEditor()))
editor->updateTrackProperties ();
MessageManager::callAsync ([this]
{
if (auto* editor = dynamic_cast<JuceDemoPluginAudioProcessorEditor*> (getActiveEditor()))
editor->updateTrackProperties();
});
}
TrackProperties getTrackProperties() const
{
const ScopedLock sl (trackPropertiesLock);
return trackProperties;
}
//==============================================================================
@ -324,9 +336,6 @@ public:
// Our plug-in's current state
AudioProcessorValueTreeState state;
// Current track colour and name
TrackProperties trackProperties;
private:
//==============================================================================
/** This is the editor component that our filter will display. */
@ -430,7 +439,7 @@ private:
void updateTrackProperties()
{
auto trackColour = getProcessor().trackProperties.colour;
auto trackColour = getProcessor().getTrackProperties().colour;
auto& lf = getLookAndFeel();
backgroundColour = (trackColour == Colour() ? lf.findColour (ResizableWindow::backgroundColourId)
@ -592,6 +601,9 @@ private:
Synthesiser synth;
CriticalSection trackPropertiesLock;
TrackProperties trackProperties;
void initialiseSynth()
{
auto numVoices = 8;

View file

@ -33,7 +33,7 @@
juce_audio_plugin_client, juce_audio_processors,
juce_audio_utils, juce_core, juce_data_structures, juce_dsp,
juce_events, juce_graphics, juce_gui_basics, juce_gui_extra
exporters: xcode_mac, vs2019
exporters: xcode_mac, vs2019, linux_make
moduleFlags: JUCE_STRICT_REFCOUNTEDPOINTER=1
@ -127,8 +127,6 @@ public:
cabinetType.set (0);
}
~DspModulePluginDemoAudioProcessor() {}
//==============================================================================
bool isBusesLayoutSupported (const BusesLayout& layouts) const override
{
@ -274,9 +272,7 @@ public:
auto maxSize = static_cast<size_t> (roundToInt (getSampleRate() * (8192.0 / 44100.0)));
auto assetName = (type == 0 ? "Impulse1.wav" : "Impulse2.wav");
std::unique_ptr<InputStream> assetInputStream (createAssetInputStream (assetName));
if (assetInputStream != nullptr)
if (auto assetInputStream = createAssetInputStream (assetName))
{
currentCabinetData.reset();
assetInputStream->readIntoMemoryBlock (currentCabinetData);
@ -317,21 +313,21 @@ private:
//==============================================================================
DspModulePluginDemoAudioProcessorEditor (DspModulePluginDemoAudioProcessor& p)
: AudioProcessorEditor (&p),
processor (p),
inputVolumeLabel ({}, processor.inputVolumeParam->name),
outputVolumeLabel ({}, processor.outputVolumeParam->name),
lowPassFilterFreqLabel ({}, processor.lowPassFilterFreqParam->name),
highPassFilterFreqLabel ({}, processor.highPassFilterFreqParam->name),
stereoLabel ({}, processor.stereoParam->name),
slopeLabel ({}, processor.slopeParam->name),
waveshaperLabel ({}, processor.waveshaperParam->name),
cabinetTypeLabel ({}, processor.cabinetTypeParam->name)
dspProcessor (p),
inputVolumeLabel ({}, dspProcessor.inputVolumeParam->name),
outputVolumeLabel ({}, dspProcessor.outputVolumeParam->name),
lowPassFilterFreqLabel ({}, dspProcessor.lowPassFilterFreqParam->name),
highPassFilterFreqLabel ({}, dspProcessor.highPassFilterFreqParam->name),
stereoLabel ({}, dspProcessor.stereoParam->name),
slopeLabel ({}, dspProcessor.slopeParam->name),
waveshaperLabel ({}, dspProcessor.waveshaperParam->name),
cabinetTypeLabel ({}, dspProcessor.cabinetTypeParam->name)
{
//==============================================================================
inputVolumeSlider .reset (new ParameterSlider (*processor.inputVolumeParam));
outputVolumeSlider .reset (new ParameterSlider (*processor.outputVolumeParam));
lowPassFilterFreqSlider .reset (new ParameterSlider (*processor.lowPassFilterFreqParam));
highPassFilterFreqSlider.reset (new ParameterSlider (*processor.highPassFilterFreqParam));
inputVolumeSlider .reset (new ParameterSlider (*dspProcessor.inputVolumeParam));
outputVolumeSlider .reset (new ParameterSlider (*dspProcessor.outputVolumeParam));
lowPassFilterFreqSlider .reset (new ParameterSlider (*dspProcessor.lowPassFilterFreqParam));
highPassFilterFreqSlider.reset (new ParameterSlider (*dspProcessor.highPassFilterFreqParam));
addAndMakeVisible (inputVolumeSlider .get());
addAndMakeVisible (outputVolumeSlider .get());
@ -358,11 +354,11 @@ private:
addAndMakeVisible (stereoBox);
auto i = 1;
for (auto choice : processor.stereoParam->choices)
for (auto choice : dspProcessor.stereoParam->choices)
stereoBox.addItem (choice, i++);
stereoBox.onChange = [this] { processor.stereoParam->operator= (stereoBox.getSelectedItemIndex()); };
stereoBox.setSelectedId (processor.stereoParam->getIndex() + 1);
stereoBox.onChange = [this] { dspProcessor.stereoParam->operator= (stereoBox.getSelectedItemIndex()); };
stereoBox.setSelectedId (dspProcessor.stereoParam->getIndex() + 1);
addAndMakeVisible (stereoLabel);
stereoLabel.setJustificationType (Justification::centredLeft);
@ -372,11 +368,11 @@ private:
addAndMakeVisible(slopeBox);
i = 1;
for (auto choice : processor.slopeParam->choices)
for (auto choice : dspProcessor.slopeParam->choices)
slopeBox.addItem(choice, i++);
slopeBox.onChange = [this] { processor.slopeParam->operator= (slopeBox.getSelectedItemIndex()); };
slopeBox.setSelectedId(processor.slopeParam->getIndex() + 1);
slopeBox.onChange = [this] { dspProcessor.slopeParam->operator= (slopeBox.getSelectedItemIndex()); };
slopeBox.setSelectedId(dspProcessor.slopeParam->getIndex() + 1);
addAndMakeVisible(slopeLabel);
slopeLabel.setJustificationType(Justification::centredLeft);
@ -386,11 +382,11 @@ private:
addAndMakeVisible (waveshaperBox);
i = 1;
for (auto choice : processor.waveshaperParam->choices)
for (auto choice : dspProcessor.waveshaperParam->choices)
waveshaperBox.addItem (choice, i++);
waveshaperBox.onChange = [this] { processor.waveshaperParam->operator= (waveshaperBox.getSelectedItemIndex()); };
waveshaperBox.setSelectedId (processor.waveshaperParam->getIndex() + 1);
waveshaperBox.onChange = [this] { dspProcessor.waveshaperParam->operator= (waveshaperBox.getSelectedItemIndex()); };
waveshaperBox.setSelectedId (dspProcessor.waveshaperParam->getIndex() + 1);
addAndMakeVisible (waveshaperLabel);
waveshaperLabel.setJustificationType (Justification::centredLeft);
@ -400,11 +396,11 @@ private:
addAndMakeVisible (cabinetTypeBox);
i = 1;
for (auto choice : processor.cabinetTypeParam->choices)
for (auto choice : dspProcessor.cabinetTypeParam->choices)
cabinetTypeBox.addItem (choice, i++);
cabinetTypeBox.onChange = [this] { processor.cabinetTypeParam->operator= (cabinetTypeBox.getSelectedItemIndex()); };
cabinetTypeBox.setSelectedId (processor.cabinetTypeParam->getIndex() + 1);
cabinetTypeBox.onChange = [this] { dspProcessor.cabinetTypeParam->operator= (cabinetTypeBox.getSelectedItemIndex()); };
cabinetTypeBox.setSelectedId (dspProcessor.cabinetTypeParam->getIndex() + 1);
addAndMakeVisible (cabinetTypeLabel);
cabinetTypeLabel.setJustificationType (Justification::centredLeft);
@ -412,21 +408,19 @@ private:
//==============================================================================
addAndMakeVisible (cabinetSimButton);
cabinetSimButton.onClick = [this] { processor.cabinetSimParam->operator= (cabinetSimButton.getToggleState()); };
cabinetSimButton.setButtonText (processor.cabinetSimParam->name);
cabinetSimButton.setToggleState (processor.cabinetSimParam->get(), NotificationType::dontSendNotification);
cabinetSimButton.onClick = [this] { dspProcessor.cabinetSimParam->operator= (cabinetSimButton.getToggleState()); };
cabinetSimButton.setButtonText (dspProcessor.cabinetSimParam->name);
cabinetSimButton.setToggleState (dspProcessor.cabinetSimParam->get(), NotificationType::dontSendNotification);
addAndMakeVisible (oversamplingButton);
oversamplingButton.onClick = [this] { processor.oversamplingParam->operator= (oversamplingButton.getToggleState()); };
oversamplingButton.setButtonText (processor.oversamplingParam->name);
oversamplingButton.setToggleState (processor.oversamplingParam->get(), NotificationType::dontSendNotification);
oversamplingButton.onClick = [this] { dspProcessor.oversamplingParam->operator= (oversamplingButton.getToggleState()); };
oversamplingButton.setButtonText (dspProcessor.oversamplingParam->name);
oversamplingButton.setToggleState (dspProcessor.oversamplingParam->get(), NotificationType::dontSendNotification);
//==============================================================================
setSize (600, 400);
}
~DspModulePluginDemoAudioProcessorEditor() {}
//==============================================================================
void paint (Graphics& g) override
{
@ -479,7 +473,7 @@ private:
private:
//==============================================================================
DspModulePluginDemoAudioProcessor& processor;
DspModulePluginDemoAudioProcessor& dspProcessor;
std::unique_ptr<ParameterSlider> inputVolumeSlider, outputVolumeSlider,
lowPassFilterFreqSlider, highPassFilterFreqSlider;

View file

@ -62,8 +62,6 @@ public:
addParameter (gain = new AudioParameterFloat ("gain", "Gain", 0.0f, 1.0f, 0.5f));
}
~GainProcessor() {}
//==============================================================================
void prepareToPlay (double, int) override {}
void releaseResources() override {}

View file

@ -157,8 +157,6 @@ public:
{
}
~IAAEffectProcessor() {}
//==============================================================================
void prepareToPlay (double, int) override
{
@ -284,11 +282,11 @@ private:
IAAEffectEditor (IAAEffectProcessor& p,
AudioProcessorValueTreeState& vts)
: AudioProcessorEditor (p),
processor (p),
iaaEffectProcessor (p),
parameters (vts)
{
// Register for meter value updates.
processor.addMeterListener (*this);
iaaEffectProcessor.addMeterListener (*this);
gainSlider.setSliderStyle (Slider::SliderStyle::LinearVertical);
gainSlider.setTextBoxStyle (Slider::TextEntryBoxPosition::TextBoxAbove, false, 60, 20);
@ -310,7 +308,7 @@ private:
rewindButton.onClick = [this]
{
if (transportControllable())
processor.getPlayHead()->transportRewind();
iaaEffectProcessor.getPlayHead()->transportRewind();
};
addChildComponent (rewindButton);
@ -320,7 +318,7 @@ private:
playButton.onClick = [this]
{
if (transportControllable())
processor.getPlayHead()->transportPlay (! lastPosInfo.isPlaying);
iaaEffectProcessor.getPlayHead()->transportPlay (! lastPosInfo.isPlaying);
};
addChildComponent (playButton);
@ -330,7 +328,7 @@ private:
recordButton.onClick = [this]
{
if (transportControllable())
processor.getPlayHead()->transportRecord (! lastPosInfo.isRecording);
iaaEffectProcessor.getPlayHead()->transportRecord (! lastPosInfo.isRecording);
};
addChildComponent (recordButton);
@ -359,9 +357,9 @@ private:
startTimerHz (60);
}
~IAAEffectEditor()
~IAAEffectEditor() override
{
processor.removeMeterListener (*this);
iaaEffectProcessor.removeMeterListener (*this);
}
//==============================================================================
@ -411,7 +409,7 @@ private:
//==============================================================================
void timerCallback () override
{
auto timeInfoSuccess = processor.updateCurrentTimeInfoFromHost (lastPosInfo);
auto timeInfoSuccess = iaaEffectProcessor.updateCurrentTimeInfoFromHost (lastPosInfo);
transportText.setVisible (timeInfoSuccess);
if (timeInfoSuccess)
@ -425,7 +423,7 @@ private:
//==============================================================================
bool transportControllable()
{
auto playHead = processor.getPlayHead();
auto playHead = iaaEffectProcessor.getPlayHead();
return playHead != nullptr && playHead->canControlTransport();
}
@ -481,8 +479,8 @@ private:
void updateTransportButtonsDisplay()
{
auto visible = processor.getPlayHead() != nullptr
&& processor.getPlayHead()->canControlTransport();
auto visible = iaaEffectProcessor.getPlayHead() != nullptr
&& iaaEffectProcessor.getPlayHead()->canControlTransport();
if (rewindButton.isVisible() != visible)
{
@ -524,7 +522,7 @@ private:
}
}
IAAEffectProcessor& processor;
IAAEffectProcessor& iaaEffectProcessor;
AudioProcessorValueTreeState& parameters;
const int buttonSize = 30;
@ -549,7 +547,6 @@ private:
//==============================================================================
AudioProcessorValueTreeState parameters;
float previousGain = 0.0f;
std::array<float, 2> meterValues = { { 0, 0 } };
// This keeps a copy of the last set of timing info that was acquired during an
// audio callback - the UI component will display this.

View file

@ -94,8 +94,6 @@ public:
loadNewSample (createAssetInputStream ("singing.ogg"), "ogg");
}
~MultiOutSynth() {}
//==============================================================================
bool canAddBus (bool isInput) const override { return (! isInput && getBusCount (false) < maxMidiChannel); }
bool canRemoveBus (bool isInput) const override { return (! isInput && getBusCount (false) > 1); }
@ -157,9 +155,9 @@ private:
return output;
}
void loadNewSample (InputStream* soundBuffer, const char* format)
void loadNewSample (std::unique_ptr<InputStream> soundBuffer, const char* format)
{
std::unique_ptr<AudioFormatReader> formatReader (formatManager.findFormatForFileExtension (format)->createReaderFor (soundBuffer, true));
std::unique_ptr<AudioFormatReader> formatReader (formatManager.findFormatForFileExtension (format)->createReaderFor (soundBuffer.release(), true));
BigInteger midiNotes;
midiNotes.setRange (0, 126, true);

View file

@ -63,8 +63,6 @@ public:
addParameter (alpha = new AudioParameterFloat ("alpha", "Alpha", 0.0f, 1.0f, 0.8f));
}
~NoiseGate() {}
//==============================================================================
bool isBusesLayoutSupported (const BusesLayout& layouts) const override
{

View file

@ -492,9 +492,9 @@ inline std::unique_ptr<AudioFormatReader> makeAudioFormatReader (AudioFormatMana
const void* sampleData,
size_t dataSize)
{
return std::unique_ptr<AudioFormatReader> (manager.createReaderFor (new MemoryInputStream (sampleData,
dataSize,
false)));
return std::unique_ptr<AudioFormatReader> (manager.createReaderFor (std::make_unique<MemoryInputStream> (sampleData,
dataSize,
false)));
}
inline std::unique_ptr<AudioFormatReader> makeAudioFormatReader (AudioFormatManager& manager,
@ -516,9 +516,9 @@ public:
class MemoryAudioFormatReaderFactory : public AudioFormatReaderFactory
{
public:
MemoryAudioFormatReaderFactory (const void* sampleData, size_t dataSize)
: sampleData (sampleData),
dataSize (dataSize)
MemoryAudioFormatReaderFactory (const void* sampleDataIn, size_t dataSizeIn)
: sampleData (sampleDataIn),
dataSize (dataSizeIn)
{}
std::unique_ptr<AudioFormatReader> make (AudioFormatManager&manager ) const override
@ -540,8 +540,8 @@ private:
class FileAudioFormatReaderFactory : public AudioFormatReaderFactory
{
public:
explicit FileAudioFormatReaderFactory (File file)
: file (std::move (file))
explicit FileAudioFormatReaderFactory (File fileIn)
: file (std::move (fileIn))
{}
std::unique_ptr<AudioFormatReader> make (AudioFormatManager& manager) const override
@ -925,12 +925,12 @@ public:
virtual void loopPointsSecondsChanged (Range<double>) {}
};
explicit DataModel (AudioFormatManager& audioFormatManager)
: DataModel (audioFormatManager, ValueTree (IDs::DATA_MODEL))
explicit DataModel (AudioFormatManager& audioFormatManagerIn)
: DataModel (audioFormatManagerIn, ValueTree (IDs::DATA_MODEL))
{}
DataModel (AudioFormatManager& audioFormatManager, const ValueTree& vt)
: audioFormatManager (&audioFormatManager),
DataModel (AudioFormatManager& audioFormatManagerIn, const ValueTree& vt)
: audioFormatManager (&audioFormatManagerIn),
valueTree (vt),
sampleReader (valueTree, IDs::sampleReader, nullptr),
centreFrequencyHz (valueTree, IDs::centreFrequencyHz, nullptr),
@ -1415,13 +1415,13 @@ public:
using MouseCallback = std::function<void (LoopPointMarker&, const MouseEvent&)>;
LoopPointMarker (String marker,
MouseCallback onMouseDown,
MouseCallback onMouseDrag,
MouseCallback onMouseUp)
MouseCallback onMouseDownIn,
MouseCallback onMouseDragIn,
MouseCallback onMouseUpIn)
: text (std::move (marker)),
onMouseDown (move (onMouseDown)),
onMouseDrag (move (onMouseDrag)),
onMouseUp (move (onMouseUp))
onMouseDown (std::move (onMouseDownIn)),
onMouseDrag (std::move (onMouseDragIn)),
onMouseUp (std::move (onMouseUpIn))
{
setMouseCursor (MouseCursor::LeftRightResizeCursor);
}
@ -1585,7 +1585,7 @@ class LoopPointsOverlay : public Component,
public:
LoopPointsOverlay (const DataModel& dModel,
const VisibleRangeDataModel& vModel,
UndoManager& undoManager)
UndoManager& undoManagerIn)
: dataModel (dModel),
visibleRange (vModel),
beginMarker ("B",
@ -1596,7 +1596,7 @@ public:
[this] (LoopPointMarker& m, const MouseEvent& e) { this->loopPointMouseDown (m, e); },
[this] (LoopPointMarker& m, const MouseEvent& e) { this->loopPointDragged (m, e); },
[this] (LoopPointMarker& m, const MouseEvent& e) { this->loopPointMouseUp (m, e); }),
undoManager (&undoManager)
undoManager (&undoManagerIn)
{
dataModel .addListener (*this);
visibleRange.addListener (*this);
@ -1686,9 +1686,9 @@ class PlaybackPositionOverlay : public Component,
public:
using Provider = std::function<std::vector<float>()>;
PlaybackPositionOverlay (const VisibleRangeDataModel& model,
Provider provider)
Provider providerIn)
: visibleRange (model),
provider (move (provider))
provider (std::move (providerIn))
{
visibleRange.addListener (*this);
startTimer (16);
@ -1853,7 +1853,7 @@ private:
loopPoints.setVisible (value != LoopMode::none);
}
void sampleReaderChanged (std::shared_ptr<AudioFormatReaderFactory> value) override
void sampleReaderChanged (std::shared_ptr<AudioFormatReaderFactory>) override
{
auto lengthInSeconds = dataModel.getSampleLengthSeconds();
visibleRange.setTotalRange (Range<double> (0, lengthInSeconds), nullptr);
@ -2027,34 +2027,6 @@ struct ProcessorState
LoopMode loopMode;
};
//==============================================================================
// We store the current sampler sound in a shared_ptr. Although we never
// call mutating member functions on this shared_ptr, we do read from it on
// both the audio and gui threads. Such concurrent reads should be safe
// without using atomic methods, but we use a tiny wrapper to enforce atomic
// accesses anyway - if nothing else, this wrapper enforces and documents that
// we never mutate the shared_ptr in a way which could cause a data race.
template <typename Contents>
class AtomicSharedPtr final
{
public:
AtomicSharedPtr() = default;
explicit AtomicSharedPtr (std::shared_ptr<Contents> contents)
: contents (move (contents))
{}
AtomicSharedPtr (const AtomicSharedPtr& other) = delete;
AtomicSharedPtr& operator= (const AtomicSharedPtr& other) = delete;
std::shared_ptr<Contents> load() const
{
return atomic_load (&contents);
}
private:
std::shared_ptr<Contents> contents;
};
//==============================================================================
class SamplerAudioProcessor : public AudioProcessor
{
@ -2062,11 +2034,9 @@ public:
SamplerAudioProcessor()
: AudioProcessor (BusesProperties().withOutput ("Output", AudioChannelSet::stereo(), true))
{
if (auto* asset = createAssetInputStream ("cello.wav"))
if (auto inputStream = createAssetInputStream ("cello.wav"))
{
std::unique_ptr<InputStream> inputStream (asset);
inputStream->readIntoMemoryBlock (mb);
readerFactory.reset (new MemoryAudioFormatReaderFactory (mb.getData(), mb.getSize()));
}
@ -2074,7 +2044,7 @@ public:
AudioFormatManager manager;
manager.registerBasicFormats();
auto reader = readerFactory->make (manager);
auto sound = samplerSound.load();
auto sound = samplerSound;
auto sample = std::unique_ptr<Sample> (new Sample (*reader, 10.0));
auto lengthInSeconds = sample->getLength() / sample->getSampleRate();
sound->setLoopPointsInSeconds ({lengthInSeconds * 0.1, lengthInSeconds * 0.9 });
@ -2115,7 +2085,7 @@ public:
state.mpeZoneLayout = synthesiser.getZoneLayout();
state.readerFactory = readerFactory == nullptr ? nullptr : readerFactory->clone();
auto sound = samplerSound.load();
auto sound = samplerSound;
state.loopPointsSeconds = sound->getLoopPointsInSeconds();
state.centreFrequencyHz = sound->getCentreFrequencyInHz();
state.loopMode = sound->getLoopMode();
@ -2170,7 +2140,7 @@ public:
synthesiser.renderNextBlock (buffer, midiMessages, 0, buffer.getNumSamples());
auto loadedSamplerSound = samplerSound.load();
auto loadedSamplerSound = samplerSound;
if (loadedSamplerSound->getSample() == nullptr)
return;
@ -2197,18 +2167,18 @@ public:
{
public:
SetSampleCommand (std::unique_ptr<AudioFormatReaderFactory> r,
std::unique_ptr<Sample> sample,
std::vector<std::unique_ptr<MPESamplerVoice>> newVoices)
: readerFactory (move (r)),
sample (move (sample)),
newVoices (move (newVoices))
std::unique_ptr<Sample> sampleIn,
std::vector<std::unique_ptr<MPESamplerVoice>> newVoicesIn)
: readerFactory (std::move (r)),
sample (std::move (sampleIn)),
newVoices (std::move (newVoicesIn))
{}
void operator() (SamplerAudioProcessor& proc)
{
proc.readerFactory = move (readerFactory);
auto sound = proc.samplerSound.load();
sound->setSample (move (sample));
auto sound = proc.samplerSound;
sound->setSample (std::move (sample));
auto numberOfVoices = proc.synthesiser.getNumVoices();
proc.synthesiser.clearVoices();
@ -2226,7 +2196,7 @@ public:
// Note that all allocation happens here, on the main message thread. Then,
// we transfer ownership across to the audio thread.
auto loadedSamplerSound = samplerSound.load();
auto loadedSamplerSound = samplerSound;
std::vector<std::unique_ptr<MPESamplerVoice>> newSamplerVoices;
newSamplerVoices.reserve (maxVoices);
@ -2252,7 +2222,7 @@ public:
{
pushCommand ([centreFrequency] (SamplerAudioProcessor& proc)
{
auto loaded = proc.samplerSound.load();
auto loaded = proc.samplerSound;
if (loaded != nullptr)
loaded->setCentreFrequencyInHz (centreFrequency);
});
@ -2262,7 +2232,7 @@ public:
{
pushCommand ([loopMode] (SamplerAudioProcessor& proc)
{
auto loaded = proc.samplerSound.load();
auto loaded = proc.samplerSound;
if (loaded != nullptr)
loaded->setLoopMode (loopMode);
});
@ -2272,7 +2242,7 @@ public:
{
pushCommand ([loopPoints] (SamplerAudioProcessor& proc)
{
auto loaded = proc.samplerSound.load();
auto loaded = proc.samplerSound;
if (loaded != nullptr)
loaded->setLoopPointsInSeconds (loopPoints);
});
@ -2316,8 +2286,8 @@ public:
class SetNumVoicesCommand
{
public:
SetNumVoicesCommand (std::vector<std::unique_ptr<MPESamplerVoice>> newVoices)
: newVoices (move (newVoices))
SetNumVoicesCommand (std::vector<std::unique_ptr<MPESamplerVoice>> newVoicesIn)
: newVoices (move (newVoicesIn))
{}
void operator() (SamplerAudioProcessor& proc)
@ -2334,7 +2304,7 @@ public:
};
numberOfVoices = std::min (maxVoices, numberOfVoices);
auto loadedSamplerSound = samplerSound.load();
auto loadedSamplerSound = samplerSound;
std::vector<std::unique_ptr<MPESamplerVoice>> newSamplerVoices;
newSamplerVoices.reserve ((size_t) numberOfVoices);
@ -2363,7 +2333,7 @@ private:
public:
SamplerAudioProcessorEditor (SamplerAudioProcessor& p, ProcessorState state)
: AudioProcessorEditor (&p),
processor (p),
samplerAudioProcessor (p),
mainSamplerView (dataModel,
[&p]
{
@ -2453,33 +2423,33 @@ private:
void sampleReaderChanged (std::shared_ptr<AudioFormatReaderFactory> value) override
{
processor.setSample (value == nullptr ? nullptr : value->clone(),
dataModel.getAudioFormatManager());
samplerAudioProcessor.setSample (value == nullptr ? nullptr : value->clone(),
dataModel.getAudioFormatManager());
}
void centreFrequencyHzChanged (double value) override
{
processor.setCentreFrequency (value);
samplerAudioProcessor.setCentreFrequency (value);
}
void loopPointsSecondsChanged (Range<double> value) override
{
processor.setLoopPoints (value);
samplerAudioProcessor.setLoopPoints (value);
}
void loopModeChanged (LoopMode value) override
{
processor.setLoopMode (value);
samplerAudioProcessor.setLoopMode (value);
}
void synthVoicesChanged (int value) override
{
processor.setNumberOfVoices (value);
samplerAudioProcessor.setNumberOfVoices (value);
}
void voiceStealingEnabledChanged (bool value) override
{
processor.setVoiceStealingEnabled (value);
samplerAudioProcessor.setVoiceStealingEnabled (value);
}
void legacyModeEnabledChanged (bool value) override
@ -2512,17 +2482,17 @@ private:
void setProcessorLegacyMode()
{
processor.setLegacyModeEnabled (mpeSettings.getLegacyPitchbendRange(),
Range<int> (mpeSettings.getLegacyFirstChannel(),
mpeSettings.getLegacyLastChannel()));
samplerAudioProcessor.setLegacyModeEnabled (mpeSettings.getLegacyPitchbendRange(),
Range<int> (mpeSettings.getLegacyFirstChannel(),
mpeSettings.getLegacyLastChannel()));
}
void setProcessorMPEMode()
{
processor.setMPEZoneLayout (mpeSettings.getMPEZoneLayout());
samplerAudioProcessor.setMPEZoneLayout (mpeSettings.getMPEZoneLayout());
}
SamplerAudioProcessor& processor;
SamplerAudioProcessor& samplerAudioProcessor;
AudioFormatManager formatManager;
DataModel dataModel { formatManager };
UndoManager undoManager;
@ -2611,7 +2581,7 @@ private:
MemoryBlock mb;
std::unique_ptr<AudioFormatReaderFactory> readerFactory;
AtomicSharedPtr<MPESamplerSound> samplerSound { std::make_shared<MPESamplerSound>() };
std::shared_ptr<MPESamplerSound> samplerSound = std::make_shared<MPESamplerSound>();
MPESynthesiser synthesiser;
// This mutex is used to ensure we don't modify the processor state during

View file

@ -91,7 +91,7 @@ public:
VoiceProduct {"jb", "JB", false, false, false, "Retrieving price..." } });
}
~VoicePurchases()
~VoicePurchases() override
{
InAppPurchases::getInstance()->removeListener (this);
}
@ -395,11 +395,8 @@ public:
setInterceptsMouseClicks (! hasBeenPurchased, ! hasBeenPurchased);
if (auto* assetStream = createAssetInputStream (String ("Purchases/" + String (imageResourceName)).toRawUTF8()))
{
std::unique_ptr<InputStream> fileStream (assetStream);
if (auto fileStream = createAssetInputStream (String ("Purchases/" + String (imageResourceName)).toRawUTF8()))
avatar = PNGImageFormat().decodeImage (*fileStream);
}
}
}
private:
@ -519,7 +516,7 @@ public:
#endif
}
~InAppPurchasesDemo()
~InAppPurchasesDemo() override
{
dm.closeAudioDevice();
dm.removeAudioCallback (&player);
@ -569,10 +566,8 @@ private:
{
auto assetName = "Purchases/" + soundNames[idx] + String (phraseListBox.getSelectedRow()) + ".ogg";
if (auto* assetStream = createAssetInputStream (assetName.toRawUTF8()))
if (auto fileStream = createAssetInputStream (assetName.toRawUTF8()))
{
std::unique_ptr<InputStream> fileStream (assetStream);
currentPhraseData.reset();
fileStream->readIntoMemoryBlock (currentPhraseData);

View file

@ -238,7 +238,7 @@ public:
#endif
}
~PushNotificationsDemo()
~PushNotificationsDemo() override
{
PushNotifications::getInstance()->removeListener (this);

View file

@ -89,6 +89,7 @@ static const char* getDisplayOrientation()
case Desktop::upsideDown: return "Upside-down";
case Desktop::rotatedClockwise: return "Rotated Clockwise";
case Desktop::rotatedAntiClockwise: return "Rotated Anti-clockwise";
case Desktop::allOrientations: return "All";
default: jassertfalse; break;
}

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="AKfc5m" name="AudioPerformanceTest" projectType="guiapp"
bundleIdentifier="com.juce.AudioPerformanceTest" jucerVersion="5.4.5"
bundleIdentifier="com.juce.AudioPerformanceTest" jucerVersion="5.4.7"
displaySplashScreen="0" reportAppUsage="0" companyName="ROLI Ltd."
companyCopyright="ROLI Ltd.">
<MAINGROUP id="b1eVTe" name="AudioPerformanceTest">
@ -70,8 +70,8 @@
</VS2019>
<LINUX_MAKE targetFolder="Builds/LinuxMakefile">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" libraryPath="/usr/X11R6/lib/" isDebug="1" targetName="AudioPerformanceTest"/>
<CONFIGURATION name="Release" libraryPath="/usr/X11R6/lib/" isDebug="0" targetName="AudioPerformanceTest"/>
<CONFIGURATION name="Debug" isDebug="1" targetName="AudioPerformanceTest"/>
<CONFIGURATION name="Release" isDebug="0" targetName="AudioPerformanceTest"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_core" path="../../modules"/>

View file

@ -119,6 +119,7 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h"
"../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"
"../../../../../modules/juce_audio_devices/native/juce_android_HighPerformanceAudioHelpers.h"
"../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"
"../../../../../modules/juce_audio_devices/native/juce_android_Oboe.cpp"
"../../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp"
@ -568,8 +569,6 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_core/misc/juce_Result.h"
"../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp"
"../../../../../modules/juce_core/misc/juce_RuntimePermissions.h"
"../../../../../modules/juce_core/misc/juce_StdFunctionCompat.cpp"
"../../../../../modules/juce_core/misc/juce_StdFunctionCompat.h"
"../../../../../modules/juce_core/misc/juce_Uuid.cpp"
"../../../../../modules/juce_core/misc/juce_Uuid.h"
"../../../../../modules/juce_core/misc/juce_WindowsRegistry.h"
@ -1410,6 +1409,7 @@ set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/j
set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_HighPerformanceAudioHelpers.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_Oboe.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
@ -1859,8 +1859,6 @@ set_source_files_properties("../../../../../modules/juce_core/misc/juce_Result.c
set_source_files_properties("../../../../../modules/juce_core/misc/juce_Result.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_RuntimePermissions.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_StdFunctionCompat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_StdFunctionCompat.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_Uuid.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_Uuid.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_core/misc/juce_WindowsRegistry.h" PROPERTIES HEADER_FILE_ONLY TRUE)

View file

@ -89,7 +89,6 @@ android {
main.java.srcDirs +=
["../../../../../modules/juce_core/native/javacore/init",
"../../../../../modules/juce_core/native/javacore/app",
"../../../../../modules/juce_gui_basics/native/javacore/app",
"../../../../../modules/juce_gui_basics/native/javaopt/app"]
main.res.srcDirs +=

View file

@ -2,7 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0.0"
package="com.juce.AudioPerformanceTest">
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true"/>
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true"
android:xlargeScreens="true"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

View file

@ -1,25 +1,3 @@
/*
==============================================================================
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.
The code included in this file is provided under the terms of the ISC license
http://www.isc.org/downloads/software-support-policy/isc-license. Permission
To use, copy, modify, and/or distribute this software for any purpose with or
without fee is hereby granted provided that the above copyright notice and
this permission notice appear in all copies.
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
DISCLAIMED.
==============================================================================
*/
package com.android.vending.billing;
/**
* InAppBillingService is the service that provides in-app billing version 3 and beyond.

View file

@ -7,11 +7,15 @@
JUCE is an open source library subject to commercial or open-source
licensing.
The code included in this file is provided under the terms of the ISC license
http://www.isc.org/downloads/software-support-policy/isc-license. Permission
To use, copy, modify, and/or distribute this software for any purpose with or
without fee is hereby granted provided that the above copyright notice and
this permission notice appear in all copies.
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

Some files were not shown because too many files have changed in this diff Show more