From: IOhannes m zmölnig Date: Wed, 11 Apr 2018 18:40:38 +0000 (+0200) Subject: New upstream version 5.3.1~repack X-Git-Tag: archive/raspbian/5.4.5_ds0-1+rpi1^2~17^2~7 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5f3287764b55cf48ece8e44c9dbedad7a27c2fab;p=juce.git New upstream version 5.3.1~repack --- diff --git a/ChangeList.txt b/ChangeList.txt index 9d1f7f39..38978ff2 100644 --- a/ChangeList.txt +++ b/ChangeList.txt @@ -3,12 +3,31 @@ 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.3.1 + - Add Android and iOS support to AudioPluginHost + - Added support for Bela in the form of an AudioIODeviceType + - Add bypass support to both hosting and plug-in client code + - Added an isBoolean flag to APVTS parameters + - Re-worked plug-in wrappers to all use new parameter system via LegacyAudioParameter wrapper class + - Fixed an issue where opening the same midi device twice would cause a crash on Windows + - Deprecated MouseInputSource::hasMouseMovedSignificantlySincePressed() and replaced with more descriptive methods + - Added support for relative or special path symbolic links when compressing/uncompressing zip archives and creating/reading files + - Ensured that File::replaceInternal does not fail with ACL errors on Windows + - Merged-in some Ogg-Vorbis security fixes + - Fixed a bug which would prevent a SystemTrayIconComponent from creating a native popup window on macOS + - Various Android and iOS fixes + - Added a "PIP Creator" utility tool to the Projucer + - Added options for setting plugin categories and characteristics with MultiChoicePropertyComponent in the Projucer + - Fixed a Projucer bug where the OSX base SDK version was not being set + - Added a command-line option to use LF as linefeeds rather than CRLF in the Projucer cleanup tools + - Multiple documentation updates Version 5.3.0 - Added support for Android OBOE (developer preview) - Updated JUCE's MPE classes to comply with the new MMA-adopted specification - Multiple documentation updates - - Restructed the examples and extras directories and updated all JUCE examples + - Restructured the examples and extras directories and updated all JUCE examples - Multiple hosted parameter improvements - Overhauled the GenericAudioProcessorEditor - Added support for a subset of the Cockos VST extensions diff --git a/examples/Assets/DemoUtilities.h b/examples/Assets/DemoUtilities.h index fa995e37..92108d84 100644 --- a/examples/Assets/DemoUtilities.h +++ b/examples/Assets/DemoUtilities.h @@ -58,7 +58,11 @@ inline File getExamplesDirectory() noexcept return mo.toString(); #else - auto currentFile = File::getSpecialLocation (File::SpecialLocationType::currentExecutableFile); + auto currentFile = File::getSpecialLocation (File::SpecialLocationType::currentApplicationFile); + auto exampleDir = currentFile.getParentDirectory().getChildFile ("examples"); + + if (exampleDir.exists()) + return exampleDir; int numTries = 0; // keep track of the number of parent directories so we don't go on endlessly diff --git a/examples/Audio/AudioAppDemo.h b/examples/Audio/AudioAppDemo.h index 8ed8d0d1..d1db7ab1 100644 --- a/examples/Audio/AudioAppDemo.h +++ b/examples/Audio/AudioAppDemo.h @@ -25,7 +25,7 @@ name: AudioAppDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Simple audio application. diff --git a/examples/Audio/AudioLatencyDemo.h b/examples/Audio/AudioLatencyDemo.h index 458f4b9e..7920d453 100644 --- a/examples/Audio/AudioLatencyDemo.h +++ b/examples/Audio/AudioLatencyDemo.h @@ -25,7 +25,7 @@ name: AudioLatencyDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Tests the audio latency of a device. diff --git a/examples/Audio/AudioPlaybackDemo.h b/examples/Audio/AudioPlaybackDemo.h index b87be3b6..b0f942f9 100644 --- a/examples/Audio/AudioPlaybackDemo.h +++ b/examples/Audio/AudioPlaybackDemo.h @@ -25,7 +25,7 @@ name: AudioPlaybackDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Plays an audio file. diff --git a/examples/Audio/AudioRecordingDemo.h b/examples/Audio/AudioRecordingDemo.h index da0ec12a..93283256 100644 --- a/examples/Audio/AudioRecordingDemo.h +++ b/examples/Audio/AudioRecordingDemo.h @@ -25,7 +25,7 @@ name: AudioRecordingDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Records audio to a file. diff --git a/examples/Audio/AudioSettingsDemo.h b/examples/Audio/AudioSettingsDemo.h index 9ac09ec3..08ff2b9d 100644 --- a/examples/Audio/AudioSettingsDemo.h +++ b/examples/Audio/AudioSettingsDemo.h @@ -25,7 +25,7 @@ name: AudioSettingsDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Displays information about audio devices. diff --git a/examples/Audio/AudioSynthesiserDemo.h b/examples/Audio/AudioSynthesiserDemo.h index 1c5e83cb..cfed6dfe 100644 --- a/examples/Audio/AudioSynthesiserDemo.h +++ b/examples/Audio/AudioSynthesiserDemo.h @@ -25,7 +25,7 @@ name: AudioSynthesiserDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Simple synthesiser application. diff --git a/examples/Audio/MPEDemo.h b/examples/Audio/MPEDemo.h index 12f74188..e1e2c5c4 100644 --- a/examples/Audio/MPEDemo.h +++ b/examples/Audio/MPEDemo.h @@ -25,7 +25,7 @@ name: MPEDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Simple MPE synthesiser application. diff --git a/examples/Audio/MidiDemo.h b/examples/Audio/MidiDemo.h index f0e77b06..6b6e33f2 100644 --- a/examples/Audio/MidiDemo.h +++ b/examples/Audio/MidiDemo.h @@ -25,7 +25,7 @@ name: MidiDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Handles incoming and outcoming midi messages. @@ -101,7 +101,7 @@ public: pairButton.setEnabled (false); addAndMakeVisible (pairButton); - pairButton.onClick = [this] + pairButton.onClick = [] { RuntimePermissions::request (RuntimePermissions::bluetoothMidi, [] (bool wasGranted) @@ -285,7 +285,7 @@ private: } //============================================================================== - void paintListBoxItem (int rowNumber, Graphics &g, + void paintListBoxItem (int rowNumber, Graphics& g, int width, int height, bool rowIsSelected) override { auto textColour = getLookAndFeel().findColour (ListBox::textColourId); @@ -356,7 +356,7 @@ private: }; //============================================================================== - void handleIncomingMidiMessage (MidiInput* /*source*/, const MidiMessage &message) override + void handleIncomingMidiMessage (MidiInput* /*source*/, const MidiMessage& message) override { // This is called on the MIDI thread diff --git a/examples/Audio/PluckedStringsDemo.h b/examples/Audio/PluckedStringsDemo.h index cbdc63cd..cf3b02b9 100644 --- a/examples/Audio/PluckedStringsDemo.h +++ b/examples/Audio/PluckedStringsDemo.h @@ -25,7 +25,7 @@ name: PluckedStringsDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Simulation of a plucked string sound. @@ -109,7 +109,7 @@ public: // cycle through the delay line and apply a simple averaging filter for (auto i = 0; i < numSamples; ++i) { - auto nextPos = (int) ((pos + 1) % delayLine.size()); + auto nextPos = (pos + 1) % delayLine.size(); delayLine[nextPos] = (float) (decay * 0.5 * (delayLine[nextPos] + delayLine[pos])); outBuffer[i] += delayLine[pos]; @@ -151,7 +151,7 @@ private: excitationSample.end(), delayLine.begin(), [this] (double sample) { return static_cast (amplitude * sample); } ); - }; + } //============================================================================== const double decay = 0.998; @@ -160,7 +160,7 @@ private: Atomic doPluckForNextBuffer; std::vector excitationSample, delayLine; - int pos = 0; + size_t pos = 0; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (StringSynthesiser) }; @@ -294,7 +294,7 @@ public: { memcpy (channelData, bufferToFill.buffer->getReadPointer (0), - bufferToFill.numSamples * sizeof (float)); + ((size_t) bufferToFill.numSamples) * sizeof (float)); } } } diff --git a/examples/Audio/SimpleFFTDemo.h b/examples/Audio/SimpleFFTDemo.h index 6710efba..2f99a29c 100644 --- a/examples/Audio/SimpleFFTDemo.h +++ b/examples/Audio/SimpleFFTDemo.h @@ -25,7 +25,7 @@ name: SimpleFFTDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Simple FFT application. @@ -52,10 +52,10 @@ class SimpleFFTDemo : public AudioAppComponent, private Timer { public: - SimpleFFTDemo() - #ifdef JUCE_DEMO_RUNNER - : AudioAppComponent (getSharedAudioDeviceManager (1, 0)), - #endif + SimpleFFTDemo() : + #ifdef JUCE_DEMO_RUNNER + AudioAppComponent (getSharedAudioDeviceManager (1, 0)), + #endif forwardFFT (fftOrder), spectrogramImage (Image::RGB, 512, 512, true) { diff --git a/examples/BLOCKS/BlocksDrawingDemo.h b/examples/BLOCKS/BlocksDrawingDemo.h index aed22ce5..a2b24178 100644 --- a/examples/BLOCKS/BlocksDrawingDemo.h +++ b/examples/BLOCKS/BlocksDrawingDemo.h @@ -25,7 +25,7 @@ name: BlocksDrawingDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Blocks application to draw shapes. @@ -531,7 +531,7 @@ private: for (uint32 y = 0; y < 15; ++ y) { canvasProgram->setLED (x, y, Colours::black); - lightpadComponent.setLEDColour (x, y, Colours::black); + lightpadComponent.setLEDColour ((int) x, (int) y, Colours::black); } } @@ -554,7 +554,7 @@ private: if (index >= 0) { canvasProgram->setLED (x0, y0, Colours::black); - lightpadComponent.setLEDColour (x0, y0, Colours::black); + lightpadComponent.setLEDColour ((int) x0, (int) y0, Colours::black); activeLeds.remove (index); } @@ -574,7 +574,7 @@ private: activeLeds.add (led); canvasProgram->setLED (led.x, led.y, led.colour.withBrightness (led.brightness)); - lightpadComponent.setLEDColour (led.x, led.y, led.colour.withBrightness (led.brightness)); + lightpadComponent.setLEDColour ((int) led.x, (int) led.y, led.colour.withBrightness (led.brightness)); return; } @@ -594,7 +594,7 @@ private: if (canvasProgram != nullptr) canvasProgram->setLED (currentLed.x, currentLed.y, currentLed.colour.withBrightness (currentLed.brightness)); - lightpadComponent.setLEDColour (currentLed.x, currentLed.y, currentLed.colour.withBrightness (currentLed.brightness)); + lightpadComponent.setLEDColour ((int) currentLed.x, (int) currentLed.y, currentLed.colour.withBrightness (currentLed.brightness)); activeLeds.set (index, currentLed); } @@ -609,7 +609,7 @@ private: for (auto led : activeLeds) { canvasProgram->setLED (led.x, led.y, led.colour.withBrightness (led.brightness)); - lightpadComponent.setLEDColour (led.x, led.y, led.colour.withBrightness (led.brightness)); + lightpadComponent.setLEDColour ((int) led.x, (int) led.y, led.colour.withBrightness (led.brightness)); } } } @@ -648,6 +648,7 @@ private: return xPos == x && yPos == y; } }; + Array activeLeds; int getLEDAt (uint32 x, uint32 y) const @@ -665,6 +666,7 @@ private: colourPalette = 0, canvas }; + DisplayMode currentMode = colourPalette; //============================================================================== diff --git a/examples/BLOCKS/BlocksMonitorDemo.h b/examples/BLOCKS/BlocksMonitorDemo.h index e5bd9ffa..9c064ffa 100644 --- a/examples/BLOCKS/BlocksMonitorDemo.h +++ b/examples/BLOCKS/BlocksMonitorDemo.h @@ -25,7 +25,7 @@ name: BlocksMonitorDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Application to monitor Blocks devices. @@ -136,15 +136,15 @@ public: static Array map[] = { - { CB::mode, CB::button0 }, - { CB::volume, CB::button1 }, - { CB::scale, CB::button2, CB::click }, - { CB::chord, CB::button3, CB::snap }, - { CB::arp, CB::button4, CB::back }, - { CB::sustain, CB::button5, CB::playOrPause }, - { CB::octave, CB::button6, CB::record }, - { CB::love, CB::button7, CB::learn }, - { CB::up }, + { CB::mode, CB::button0, CB::velocitySensitivity }, + { CB::volume, CB::button1, CB::glideSensitivity }, + { CB::scale, CB::button2, CB::slideSensitivity, CB::click }, + { CB::chord, CB::button3, CB::pressSensitivity, CB::snap }, + { CB::arp, CB::button4, CB::liftSensitivity, CB::back }, + { CB::sustain, CB::button5, CB::fixedVelocity, CB::playOrPause }, + { CB::octave, CB::button6, CB::glideLock, CB::record }, + { CB::love, CB::button7, CB::pianoMode, CB::learn }, + { CB::up }, { CB::down } }; @@ -748,7 +748,8 @@ private: if (type == Block::lightPadBlock) return new LightpadComponent (newBlock); - if (type == Block::loopBlock || type == Block::liveBlock) + if (type == Block::loopBlock || type == Block::liveBlock + || type == Block::touchBlock || type == Block::developerControlBlock) return new ControlBlockComponent (newBlock); // Should only be connecting a Lightpad or Control Block! diff --git a/examples/BLOCKS/BlocksSynthDemo.h b/examples/BLOCKS/BlocksSynthDemo.h index 3782f4c3..b2ab1e1c 100644 --- a/examples/BLOCKS/BlocksSynthDemo.h +++ b/examples/BLOCKS/BlocksSynthDemo.h @@ -25,7 +25,7 @@ name: BlocksSynthDemo version: 1.0.0 - vendor: juce + vendor: JUCE website: http://juce.com description: Blocks synthesiser application. @@ -160,7 +160,7 @@ struct SineSound : public SynthesiserSound */ struct SineVoice : public OscillatorBase { - SineVoice() {}; + SineVoice() {} bool canPlaySound (SynthesiserSound* sound) override { return dynamic_cast (sound) != nullptr; } @@ -191,7 +191,7 @@ struct SquareSound : public SynthesiserSound */ struct SquareVoice : public OscillatorBase { - SquareVoice() {}; + SquareVoice() {} bool canPlaySound (SynthesiserSound* sound) override { return dynamic_cast (sound) != nullptr; } @@ -601,7 +601,7 @@ public: #endif setSize (600, 400); - }; + } ~BlocksSynthDemo() { @@ -751,7 +751,7 @@ private: void clearOldTouchTimes (const Time now) { for (auto i = touchMessageTimesInLastSecond.size(); --i >= 0;) - if (touchMessageTimesInLastSecond.getReference(i) < now - juce::RelativeTime::seconds (0.33)) + if (touchMessageTimesInLastSecond.getReference(i) < now - RelativeTime::seconds (0.33)) touchMessageTimesInLastSecond.remove (i); } @@ -835,7 +835,7 @@ private: PhysicalTopologySource topologySource; Block::Ptr activeBlock; - Array touchMessageTimesInLastSecond; + Array