Browse Source

Update juce patches

tags/2018-04-16
falkTX 6 years ago
parent
commit
09a3eb0202
20 changed files with 254 additions and 577 deletions
  1. +2
    -2
      libs/juce/patches/audiodevicemanager_prefer-jack-over-alsa.patch
  2. +3
    -3
      libs/juce/patches/audioprocessors_lv2-string-state.patch
  3. +12
    -0
      libs/juce/patches/audioprocessors_lv2type.patch
  4. +62
    -35
      libs/juce/patches/audioprocessors_nogui.patch
  5. +8
    -8
      libs/juce/patches/childprocess_getpid.patch
  6. +8
    -8
      libs/juce/patches/dialogwindow_allow-native-titlebar.patch
  7. +8
    -17
      libs/juce/patches/fix-for-temporary-windows.patch
  8. +0
    -25
      libs/juce/patches/fix-old-mingw-build.patch.bak
  9. +9
    -9
      libs/juce/patches/juce_IIRFilterOld.patch
  10. +0
    -264
      libs/juce/patches/linux-embed.patch
  11. +0
    -20
      libs/juce/patches/linux-message-fix.patch
  12. +2
    -2
      libs/juce/patches/local-ladspa.patch
  13. +44
    -0
      libs/juce/patches/mingw-fixes.patch
  14. +0
    -35
      libs/juce/patches/mingw-fixes.patch.bak
  15. +0
    -46
      libs/juce/patches/mingw-fixes_2.patch.bak
  16. +42
    -49
      libs/juce/patches/osx-ui-processors-utils-separate.patch
  17. +7
    -6
      libs/juce/patches/proper-posix-getExecutableFile.patch
  18. +14
    -14
      libs/juce/patches/use-vfork+consistency.patch
  19. +3
    -3
      libs/juce/patches/vst3-less-strict.patch
  20. +30
    -31
      libs/juce/patches/vstwrapper-fixes.patch

+ 2
- 2
libs/juce/patches/audiodevicemanager_prefer-jack-over-alsa.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp
index 4a18ca5..f129775 100644
index 32108d4..89eb7cf 100644
--- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp
+++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp
@@ -159,8 +159,8 @@ void AudioDeviceManager::createAudioDeviceTypes (OwnedArray<AudioIODeviceType>&
@@ -154,8 +154,8 @@ void AudioDeviceManager::createAudioDeviceTypes (OwnedArray<AudioIODeviceType>&
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_ASIO());
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_CoreAudio());
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_iOSAudio());


+ 3
- 3
libs/juce/patches/audioprocessors_lv2-string-state.patch View File

@@ -1,9 +1,9 @@
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
index 6cfad5d..be9aa3b 100644
index 3aea53a..abde506 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
@@ -652,6 +652,11 @@ public:
virtual void numChannelsChanged();
@@ -1247,6 +1247,11 @@ public:
virtual void processorLayoutsChanged();
//==============================================================================
+ /** LV2 specific calls, saving/restore as string. */


+ 12
- 0
libs/juce/patches/audioprocessors_lv2type.patch View File

@@ -0,0 +1,12 @@
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
index abde506..8c4a141 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
@@ -1307,6 +1307,7 @@ public:
wrapperType_AudioUnitv3,
wrapperType_RTAS,
wrapperType_AAX,
+ wrapperType_LV2,
wrapperType_Standalone
};

+ 62
- 35
libs/juce/patches/audioprocessors_nogui.patch View File

@@ -1,12 +1,39 @@
diff --git a/modules/juce_audio_processors/juce_audio_processors.cpp b/modules/juce_audio_processors/juce_audio_processors.cpp
index ca6dd27..5d1376f 100644
--- a/modules/juce_audio_processors/juce_audio_processors.cpp
+++ b/modules/juce_audio_processors/juce_audio_processors.cpp
@@ -47,7 +47,7 @@
#endif
#endif
-#if JUCE_PLUGINHOST_VST && JUCE_LINUX
+#if JUCE_PLUGINHOST_VST && JUCE_LINUX && ! JUCE_AUDIOPROCESSOR_NO_GUI
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#undef KeyPress
@@ -160,9 +160,11 @@ void AutoResizingNSViewComponentWithParent::timerCallback() override
#include "format/juce_AudioPluginFormat.cpp"
#include "format/juce_AudioPluginFormatManager.cpp"
#include "processors/juce_AudioProcessor.cpp"
-#include "processors/juce_AudioProcessorEditor.cpp"
#include "processors/juce_AudioProcessorGraph.cpp"
-#include "processors/juce_GenericAudioProcessorEditor.cpp"
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
+ #include "processors/juce_AudioProcessorEditor.cpp"
+ #include "processors/juce_GenericAudioProcessorEditor.cpp"
+#endif
#include "processors/juce_PluginDescription.cpp"
#include "format_types/juce_LADSPAPluginFormat.cpp"
#include "format_types/juce_VSTPluginFormat.cpp"
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp
index 0dda683..2df1163 100644
index 321060b..21733c5 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp
@@ -44,9 +44,11 @@ AudioProcessor::AudioProcessor()
@@ -76,9 +76,11 @@ void AudioProcessor::initialise (const BusesProperties& ioConfig)
AudioProcessor::~AudioProcessor()
{
+ #if ! JUCE_AUDIO_PROCESSOR_NO_GUI
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
// ooh, nasty - the editor should have been deleted before the filter
// that it refers to is deleted..
jassert (activeEditor == nullptr);
@@ -14,15 +41,15 @@ index 0dda683..2df1163 100644
#if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
// This will fail if you've called beginParameterChangeGesture() for one
@@ -321,6 +323,7 @@ void AudioProcessor::suspendProcessing (const bool shouldBeSuspended)
void AudioProcessor::reset() {}
void AudioProcessor::processBlockBypassed (AudioSampleBuffer&, MidiBuffer&) {}
@@ -983,6 +985,7 @@ void AudioProcessor::audioIOChanged (bool busNumberChanged, bool channelNumChang
processorLayoutsChanged();
}
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
//==============================================================================
void AudioProcessor::editorBeingDeleted (AudioProcessorEditor* const editor) noexcept
{
@@ -351,6 +354,7 @@ AudioProcessorEditor* AudioProcessor::createEditorIfNeeded()
@@ -1013,6 +1016,7 @@ AudioProcessorEditor* AudioProcessor::createEditorIfNeeded()
return ed;
}
@@ -31,56 +58,56 @@ index 0dda683..2df1163 100644
//==============================================================================
void AudioProcessor::getCurrentProgramStateInformation (juce::MemoryBlock& destData)
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
index be9aa3b..4b6ea85 100644
index 8c4a141..1b81776 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
@@ -333,6 +333,7 @@ public:
@@ -903,6 +903,7 @@ public:
*/
virtual void setNonRealtime (bool isNonRealtime) noexcept;
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
//==============================================================================
/** Creates the filter's UI.
@@ -378,6 +379,7 @@ public:
@@ -948,6 +949,7 @@ public:
This may call createEditor() internally to create the component.
*/
AudioProcessorEditor* createEditorIfNeeded();
+#endif
+ #endif
//==============================================================================
/** This must return the correct value immediately after the object has been
@@ -674,9 +676,11 @@ public:
/** This is called by the processor to specify its details before being played. */
void setPlayConfigDetails (int numIns, int numOuts, double sampleRate, int blockSize) noexcept;
@@ -1293,9 +1295,11 @@ public:
const AudioChannelSet& mainOutputLayout,
bool idForAudioSuite) const;
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
//==============================================================================
/** Not for public use - this is called before deleting an editor component. */
void editorBeingDeleted (AudioProcessorEditor*) noexcept;
+#endif
+ #endif
/** Not for public use - this is called to initialise the processor before playing. */
void setSpeakerArrangement (const String& inputs, const String& outputs);
@@ -729,7 +733,9 @@ protected:
/** Flags to indicate the type of plugin context in which a processor is being used. */
enum WrapperType
@@ -1540,7 +1544,9 @@ private:
private:
//==============================================================================
Array<AudioProcessorListener*> listeners;
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
Component::SafePointer<AudioProcessorEditor> activeEditor;
+#endif
double sampleRate;
int blockSize, numInputChannels, numOutputChannels, latencySamples;
bool suspended, nonRealtime;
+ #endif
double currentSampleRate;
int blockSize, latencySamples;
#if JUCE_DEBUG
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp
index 84dd0e2..e71b884 100644
index c3d7ac7..663d1b8 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp
@@ -1482,8 +1482,10 @@ bool AudioProcessorGraph::AudioGraphIOProcessor::isOutputChannelStereoPair (int
@@ -1646,8 +1646,10 @@ bool AudioProcessorGraph::AudioGraphIOProcessor::producesMidi() const
bool AudioProcessorGraph::AudioGraphIOProcessor::isInput() const noexcept { return type == audioInputNode || type == midiInputNode; }
bool AudioProcessorGraph::AudioGraphIOProcessor::isOutput() const noexcept { return type == audioOutputNode || type == midiOutputNode; }
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
bool AudioProcessorGraph::AudioGraphIOProcessor::hasEditor() const { return false; }
AudioProcessorEditor* AudioProcessorGraph::AudioGraphIOProcessor::createEditor() { return nullptr; }
+#endif
@@ -88,17 +115,17 @@ index 84dd0e2..e71b884 100644
int AudioProcessorGraph::AudioGraphIOProcessor::getNumPrograms() { return 0; }
int AudioProcessorGraph::AudioGraphIOProcessor::getCurrentProgram() { return 0; }
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h
index 2079a53..f6d1a63 100644
index 85c9c54..51df131 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h
@@ -319,8 +319,10 @@ public:
bool acceptsMidi() const override;
bool producesMidi() const override;
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
bool hasEditor() const override;
AudioProcessorEditor* createEditor() override;
+#endif
+ #endif
int getNumPrograms() override;
int getCurrentProgram() override;
@@ -106,10 +133,10 @@ index 2079a53..f6d1a63 100644
bool acceptsMidi() const override;
bool producesMidi() const override;
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
bool hasEditor() const override { return false; }
AudioProcessorEditor* createEditor() override { return nullptr; }
+#endif
+ #endif
int getNumPrograms() override { return 0; }
int getCurrentProgram() override { return 0; }
void setCurrentProgram (int) override { }

+ 8
- 8
libs/juce/patches/childprocess_getpid.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h
index e682eae..17a5307 100644
index ea007b1..f6faa5b 100644
--- a/modules/juce_core/native/juce_posix_SharedCode.h
+++ b/modules/juce_core/native/juce_posix_SharedCode.h
@@ -1121,6 +1121,11 @@ public:
@@ -1234,6 +1234,11 @@ public:
return 0;
}
@@ -15,10 +15,10 @@ index e682eae..17a5307 100644
private:
diff --git a/modules/juce_core/native/juce_win32_Threads.cpp b/modules/juce_core/native/juce_win32_Threads.cpp
index 1421c10..ca22ea0 100644
index 68d891f..d38b733 100644
--- a/modules/juce_core/native/juce_win32_Threads.cpp
+++ b/modules/juce_core/native/juce_win32_Threads.cpp
@@ -534,6 +534,11 @@ public:
@@ -488,6 +488,11 @@ public:
return (uint32) exitCode;
}
@@ -31,10 +31,10 @@ index 1421c10..ca22ea0 100644
private:
diff --git a/modules/juce_core/threads/juce_ChildProcess.cpp b/modules/juce_core/threads/juce_ChildProcess.cpp
index 4566b13..e984837 100644
index 5648c5d..262882b 100644
--- a/modules/juce_core/threads/juce_ChildProcess.cpp
+++ b/modules/juce_core/threads/juce_ChildProcess.cpp
@@ -81,6 +81,11 @@ String ChildProcess::readAllProcessOutput()
@@ -75,6 +75,11 @@ String ChildProcess::readAllProcessOutput()
return result.toString();
}
@@ -47,10 +47,10 @@ index 4566b13..e984837 100644
#if JUCE_UNIT_TESTS
diff --git a/modules/juce_core/threads/juce_ChildProcess.h b/modules/juce_core/threads/juce_ChildProcess.h
index 0adcb57..7a1c88c 100644
index b2bd0e1..cbc380d 100644
--- a/modules/juce_core/threads/juce_ChildProcess.h
+++ b/modules/juce_core/threads/juce_ChildProcess.h
@@ -106,6 +106,8 @@ public:
@@ -99,6 +99,8 @@ public:
*/
bool kill();


+ 8
- 8
libs/juce/patches/dialogwindow_allow-native-titlebar.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_gui_basics/windows/juce_DialogWindow.cpp b/modules/juce_gui_basics/windows/juce_DialogWindow.cpp
index bcb3723..a834b03 100644
index b03824d..be3d9e5 100644
--- a/modules/juce_gui_basics/windows/juce_DialogWindow.cpp
+++ b/modules/juce_gui_basics/windows/juce_DialogWindow.cpp
@@ -127,7 +127,8 @@ void DialogWindow::showDialog (const String& dialogTitle,
@@ -137,7 +137,8 @@ void DialogWindow::showDialog (const String& dialogTitle,
Colour backgroundColour,
const bool escapeKeyTriggersCloseButton,
const bool resizable,
@@ -12,7 +12,7 @@ index bcb3723..a834b03 100644
{
LaunchOptions o;
o.dialogTitle = dialogTitle;
@@ -135,9 +136,9 @@ void DialogWindow::showDialog (const String& dialogTitle,
@@ -145,9 +146,9 @@ void DialogWindow::showDialog (const String& dialogTitle,
o.componentToCentreAround = componentToCentreAround;
o.dialogBackgroundColour = backgroundColour;
o.escapeKeyTriggersCloseButton = escapeKeyTriggersCloseButton;
@@ -23,7 +23,7 @@ index bcb3723..a834b03 100644
o.launchAsync();
}
@@ -149,7 +150,8 @@ int DialogWindow::showModalDialog (const String& dialogTitle,
@@ -159,7 +160,8 @@ int DialogWindow::showModalDialog (const String& dialogTitle,
Colour backgroundColour,
const bool escapeKeyTriggersCloseButton,
const bool resizable,
@@ -33,7 +33,7 @@ index bcb3723..a834b03 100644
{
LaunchOptions o;
o.dialogTitle = dialogTitle;
@@ -157,9 +159,9 @@ int DialogWindow::showModalDialog (const String& dialogTitle,
@@ -167,9 +169,9 @@ int DialogWindow::showModalDialog (const String& dialogTitle,
o.componentToCentreAround = componentToCentreAround;
o.dialogBackgroundColour = backgroundColour;
o.escapeKeyTriggersCloseButton = escapeKeyTriggersCloseButton;
@@ -45,10 +45,10 @@ index bcb3723..a834b03 100644
return o.runModal();
}
diff --git a/modules/juce_gui_basics/windows/juce_DialogWindow.h b/modules/juce_gui_basics/windows/juce_DialogWindow.h
index b7c18df..aac4f43 100644
index 0ee09df..44b662b 100644
--- a/modules/juce_gui_basics/windows/juce_DialogWindow.h
+++ b/modules/juce_gui_basics/windows/juce_DialogWindow.h
@@ -189,7 +189,8 @@ public:
@@ -190,7 +190,8 @@ public:
Colour backgroundColour,
bool escapeKeyTriggersCloseButton,
bool shouldBeResizable = false,
@@ -58,7 +58,7 @@ index b7c18df..aac4f43 100644
#if JUCE_MODAL_LOOPS_PERMITTED || DOXYGEN
/** Easy way of quickly showing a dialog box containing a given component.
@@ -235,7 +236,8 @@ public:
@@ -236,7 +237,8 @@ public:
Colour backgroundColour,
bool escapeKeyTriggersCloseButton,
bool shouldBeResizable = false,


+ 8
- 17
libs/juce/patches/fix-for-temporary-windows.patch View File

@@ -1,25 +1,16 @@
diff --git a/modules/juce_gui_basics/native/juce_linux_Windowing.cpp b/modules/juce_gui_basics/native/juce_linux_Windowing.cpp
index 7573f8a..ff1993c 100644
--- a/modules/juce_gui_basics/native/juce_linux_Windowing.cpp
+++ b/modules/juce_gui_basics/native/juce_linux_Windowing.cpp
@@ -2879,8 +2879,9 @@ private:
diff --git a/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp b/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp
index 1ed776f..670c1de 100644
--- a/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp
+++ b/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp
@@ -2970,8 +2970,9 @@ private:
{
Atom netHints [2];
- if ((styleFlags & windowIsTemporary) != 0
- || ((styleFlags & windowHasDropShadow) == 0 && Desktop::canUseSemiTransparentWindows()))
+ if (styleFlags & windowIsTemporary)
+ netHints [0] = Atoms::getIfExists ("_NET_WM_WINDOW_TYPE_TOOLTIP");
+ netHints [0] = Atoms::getIfExists (display, "_NET_WM_WINDOW_TYPE_TOOLTIP");
+ else if ((styleFlags & windowHasDropShadow) == 0 && Desktop::canUseSemiTransparentWindows())
netHints [0] = Atoms::getIfExists ("_NET_WM_WINDOW_TYPE_COMBO");
netHints [0] = Atoms::getIfExists (display, "_NET_WM_WINDOW_TYPE_COMBO");
else
netHints [0] = Atoms::getIfExists ("_NET_WM_WINDOW_TYPE_NORMAL");
@@ -2930,7 +2931,7 @@ private:
swa.border_pixel = 0;
swa.background_pixmap = None;
swa.colormap = colormap;
- swa.override_redirect = (component.isAlwaysOnTop() && (styleFlags & windowIsTemporary) != 0) ? True : False;
+ swa.override_redirect = (styleFlags & windowIsTemporary) ? True : False;
swa.event_mask = getAllEventsMask();
windowH = XCreateWindow (display, parentToAddTo != 0 ? parentToAddTo : root,
netHints [0] = Atoms::getIfExists (display, "_NET_WM_WINDOW_TYPE_NORMAL");

+ 0
- 25
libs/juce/patches/fix-old-mingw-build.patch.bak View File

@@ -1,25 +0,0 @@
diff --git a/modules/juce_audio_devices/native/juce_win32_ASIO.cpp b/modules/juce_audio_devices/native/juce_win32_ASIO.cpp
index 99e3cfb..44bab42 100644
--- a/modules/juce_audio_devices/native/juce_win32_ASIO.cpp
+++ b/modules/juce_audio_devices/native/juce_win32_ASIO.cpp
@@ -1416,15 +1416,13 @@ private:
}
};
- template <>
- struct ASIOCallbackFunctions <sizeof(currentASIODev) / sizeof(currentASIODev[0])>
- {
- static void setCallbacksForDevice (ASIOCallbacks&, ASIOAudioIODevice*) noexcept {}
- };
-
void setCallbackFunctions() noexcept
{
- ASIOCallbackFunctions<0>::setCallbacksForDevice (callbacks, this);
+ /**/ if (currentASIODev[0] == this) ASIOCallbackFunctions<0>::setCallbacks (callbacks);
+ else if (currentASIODev[1] == this) ASIOCallbackFunctions<1>::setCallbacks (callbacks);
+ else if (currentASIODev[2] == this) ASIOCallbackFunctions<2>::setCallbacks (callbacks);
+ else if (currentASIODev[3] == this) ASIOCallbackFunctions<3>::setCallbacks (callbacks);
+ else jassertfalse;
}
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ASIOAudioIODevice)

+ 9
- 9
libs/juce/patches/juce_IIRFilterOld.patch View File

@@ -1,24 +1,24 @@
diff --git a/modules/juce_audio_basics/juce_audio_basics.cpp b/modules/juce_audio_basics/juce_audio_basics.cpp
index 814e102..7676305 100644
index 258de8f..c5a6bfa 100644
--- a/modules/juce_audio_basics/juce_audio_basics.cpp
+++ b/modules/juce_audio_basics/juce_audio_basics.cpp
@@ -79,6 +79,7 @@ namespace juce
#include "buffers/juce_AudioSampleBuffer.cpp"
@@ -83,6 +83,7 @@ namespace juce
#include "buffers/juce_FloatVectorOperations.cpp"
#include "buffers/juce_AudioChannelSet.cpp"
#include "effects/juce_IIRFilter.cpp"
+#include "effects/juce_IIRFilterOld.cpp"
#include "effects/juce_LagrangeInterpolator.cpp"
#include "effects/juce_FFT.cpp"
#include "effects/juce_CatmullRomInterpolator.cpp"
#include "midi/juce_MidiBuffer.cpp"
diff --git a/modules/juce_audio_basics/juce_audio_basics.h b/modules/juce_audio_basics/juce_audio_basics.h
index 106df2b..6554126 100644
index feb2a6e..ce6c8f4 100644
--- a/modules/juce_audio_basics/juce_audio_basics.h
+++ b/modules/juce_audio_basics/juce_audio_basics.h
@@ -39,6 +39,7 @@ namespace juce
#include "buffers/juce_FloatVectorOperations.h"
@@ -63,6 +63,7 @@ namespace juce
#include "buffers/juce_AudioChannelSet.h"
#include "effects/juce_Decibels.h"
#include "effects/juce_IIRFilter.h"
+#include "effects/juce_IIRFilterOld.h"
#include "effects/juce_LagrangeInterpolator.h"
#include "effects/juce_FFT.h"
#include "effects/juce_Reverb.h"
#include "effects/juce_CatmullRomInterpolator.h"
#include "effects/juce_LinearSmoothedValue.h"

+ 0
- 264
libs/juce/patches/linux-embed.patch View File

@@ -1,264 +0,0 @@
diff --git a/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp b/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp
index 2f4b727..97e8a96 100644
--- a/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp
+++ b/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp
@@ -52,7 +52,7 @@
#define JucePlugin_WantsLV2State 1
#endif
-#if JUCE_LINUX
+#if JUCE_LINUX && ! JUCE_LINUX_EMBED
#include <X11/Xlib.h>
#undef KeyPress
#endif
@@ -79,12 +79,12 @@
#include "../utility/juce_IncludeModuleHeaders.h"
+#if JUCE_LINUX && ! JUCE_LINUX_EMBED
namespace juce
{
- #if JUCE_LINUX
extern Display* display;
- #endif
}
+#endif
#define JUCE_LV2_STATE_STRING_URI "urn:juce:stateString"
#define JUCE_LV2_STATE_BINARY_URI "urn:juce:stateBinary"
@@ -200,6 +200,7 @@ const String makeManifestFile (AudioProcessor* const filter, const String& binar
text += " rdfs:seeAlso <" + binary + ".ttl> .\n";
text += "\n";
+#if ! JUCE_LINUX_EMBED
// UIs
if (filter->hasEditor())
{
@@ -211,19 +212,20 @@ const String makeManifestFile (AudioProcessor* const filter, const String& binar
text += "\n";
text += "<" + pluginURI + "#ParentUI>\n";
-#if JUCE_MAC
+ #if JUCE_MAC
text += " a ui:CocoaUI ;\n";
-#elif JUCE_LINUX
+ #elif JUCE_LINUX
text += " a ui:X11UI ;\n";
-#elif JUCE_WINDOWS
+ #elif JUCE_WINDOWS
text += " a ui:WindowsUI ;\n";
-#endif
+ #endif
text += " ui:binary <" + binary + PLUGIN_EXT "> ;\n";
text += " lv2:requiredFeature <" LV2_INSTANCE_ACCESS_URI "> ;\n";
text += " lv2:optionalFeature ui:noUserResize ;\n";
text += " lv2:extensionData <" LV2_PROGRAMS__UIInterface "> .\n";
text += "\n";
}
+#endif
#if JucePlugin_WantsLV2Presets
const String presetSeparator(pluginURI.contains("#") ? ":" : "#");
@@ -273,6 +275,7 @@ const String makePluginFile (AudioProcessor* const filter, const int maxNumInput
text += " <" LV2_PROGRAMS__Interface "> ;\n";
text += "\n";
+#if ! JUCE_LINUX_EMBED
// UIs
if (filter->hasEditor())
{
@@ -280,6 +283,7 @@ const String makePluginFile (AudioProcessor* const filter, const int maxNumInput
text += " <" + pluginURI + "#ParentUI> ;\n";
text += "\n";
}
+#endif
uint32 portIndex = 0;
@@ -570,6 +574,7 @@ private:
};
#endif
+#if ! JUCE_LINUX_EMBED
//==============================================================================
/**
Lightweight DocumentWindow subclass for external ui
@@ -1105,6 +1110,8 @@ private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (JuceLv2UIWrapper)
};
+#endif /* JUCE_LINUX_EMBED */
+
//==============================================================================
/**
Juce LV2 handle
@@ -1249,7 +1256,9 @@ public:
{
const MessageManagerLock mmLock;
+#if ! JUCE_LINUX_EMBED
ui = nullptr;
+#endif
filter = nullptr;
if (progDesc.name != nullptr)
@@ -1818,8 +1827,10 @@ public:
String stateData (CharPointer_UTF8(static_cast<const char*>(data)));
filter->setStateInformationString (stateData);
+ #if ! JUCE_LINUX_EMBED
if (ui != nullptr)
ui->repaint();
+ #endif
return LV2_STATE_SUCCESS;
}
@@ -1828,8 +1839,10 @@ public:
{
filter->setCurrentProgramStateInformation (data, size);
+ #if ! JUCE_LINUX_EMBED
if (ui != nullptr)
ui->repaint();
+ #endif
return LV2_STATE_SUCCESS;
}
@@ -1852,6 +1865,7 @@ public:
#endif
}
+#if ! JUCE_LINUX_EMBED
//==============================================================================
JuceLv2UIWrapper* getUI (LV2UI_Write_Function writeFunction, LV2UI_Controller controller, LV2UI_Widget* widget,
const LV2_Feature* const* features, bool isExternal)
@@ -1865,6 +1879,7 @@ public:
return ui;
}
+#endif
private:
#if JUCE_LINUX
@@ -1874,7 +1889,9 @@ private:
#endif
ScopedPointer<AudioProcessor> filter;
+#if ! JUCE_LINUX_EMBED
ScopedPointer<JuceLv2UIWrapper> ui;
+#endif
HeapBlock<float*> channels;
MidiBuffer midiEvents;
int numInChans, numOutChans;
@@ -2033,6 +2050,7 @@ static const void* juceLV2_ExtensionData (const char* uri)
return nullptr;
}
+#if ! JUCE_LINUX_EMBED
//==============================================================================
// LV2 UI descriptor functions
@@ -2068,6 +2086,7 @@ static void juceLV2UI_Cleanup (LV2UI_Handle handle)
{
((JuceLv2UIWrapper*)handle)->lv2Cleanup();
}
+#endif
//==============================================================================
// static LV2 Descriptor objects
@@ -2083,6 +2102,7 @@ static const LV2_Descriptor JuceLv2Plugin = {
juceLV2_ExtensionData
};
+#if ! JUCE_LINUX_EMBED
static const LV2UI_Descriptor JuceLv2UI_External = {
strdup(String(getPluginURI() + "#ExternalUI").toRawUTF8()),
juceLV2UI_InstantiateExternal,
@@ -2098,14 +2118,17 @@ static const LV2UI_Descriptor JuceLv2UI_Parent = {
nullptr,
nullptr
};
+#endif
static const struct DescriptorCleanup {
DescriptorCleanup() {}
~DescriptorCleanup()
{
free((void*)JuceLv2Plugin.URI);
+#if ! JUCE_LINUX_EMBED
free((void*)JuceLv2UI_External.URI);
free((void*)JuceLv2UI_Parent.URI);
+#endif
}
} _descCleanup;
@@ -2130,6 +2153,7 @@ JUCE_EXPORTED_FUNCTION const LV2_Descriptor* lv2_descriptor (uint32 index)
return (index == 0) ? &JuceLv2Plugin : nullptr;
}
+#if ! JUCE_LINUX_EMBED
JUCE_EXPORTED_FUNCTION const LV2UI_Descriptor* lv2ui_descriptor (uint32 index);
JUCE_EXPORTED_FUNCTION const LV2UI_Descriptor* lv2ui_descriptor (uint32 index)
{
@@ -2143,5 +2167,6 @@ JUCE_EXPORTED_FUNCTION const LV2UI_Descriptor* lv2ui_descriptor (uint32 index)
return nullptr;
}
}
+#endif
#endif
diff --git a/modules/juce_audio_processors/juce_audio_processors.cpp b/modules/juce_audio_processors/juce_audio_processors.cpp
index 8df41ca..4c0a6a1 100644
--- a/modules/juce_audio_processors/juce_audio_processors.cpp
+++ b/modules/juce_audio_processors/juce_audio_processors.cpp
@@ -47,7 +47,7 @@
#endif
#endif
-#if JUCE_PLUGINHOST_VST && JUCE_LINUX
+#if JUCE_PLUGINHOST_VST && JUCE_LINUX && ! JUCE_LINUX_EMBED
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#undef KeyPress
@@ -161,7 +161,9 @@ void AutoResizingNSViewComponentWithParent::timerCallback()
#include "format/juce_AudioPluginFormat.cpp"
#include "format/juce_AudioPluginFormatManager.cpp"
#include "processors/juce_AudioProcessor.cpp"
-#include "processors/juce_AudioProcessorEditor.cpp"
+#if ! JUCE_LINUX_EMBED
+ #include "processors/juce_AudioProcessorEditor.cpp"
+#endif
#include "processors/juce_AudioProcessorGraph.cpp"
#include "processors/juce_GenericAudioProcessorEditor.cpp"
#include "processors/juce_PluginDescription.cpp"
diff --git a/modules/juce_events/juce_events.cpp b/modules/juce_events/juce_events.cpp
index 729a78f..6d69c40 100644
--- a/modules/juce_events/juce_events.cpp
+++ b/modules/juce_events/juce_events.cpp
@@ -55,10 +55,12 @@
#import <IOKit/pwr_mgt/IOPMLib.h>
#elif JUCE_LINUX
- #include <X11/Xlib.h>
- #include <X11/Xresource.h>
- #include <X11/Xutil.h>
- #undef KeyPress
+ #if ! JUCE_LINUX_EMBED
+ #include <X11/Xlib.h>
+ #include <X11/Xresource.h>
+ #include <X11/Xutil.h>
+ #undef KeyPress
+ #endif
#include <unistd.h>
#endif
@@ -91,6 +93,9 @@ namespace juce
#elif JUCE_WINDOWS
#include "native/juce_win32_Messaging.cpp"
+#elif JUCE_LINUX_EMBED
+ #include "native/juce_linux-embed_Messaging.cpp"
+
#elif JUCE_LINUX
#include "native/juce_ScopedXLock.h"
#include "native/juce_linux_Messaging.cpp"

+ 0
- 20
libs/juce/patches/linux-message-fix.patch View File

@@ -1,20 +0,0 @@
diff --git a/modules/juce_events/native/juce_linux_Messaging.cpp b/modules/juce_events/native/juce_linux_Messaging.cpp
index b2eaece..6e17abb 100644
--- a/modules/juce_events/native/juce_linux_Messaging.cpp
+++ b/modules/juce_events/native/juce_linux_Messaging.cpp
@@ -360,8 +360,13 @@ bool MessageManager::postMessageToSystemQueue (MessageManager::MessageBase* cons
if (LinuxErrorHandling::errorOccurred)
return false;
- InternalMessageQueue::getInstanceWithoutCreating()->postMessage (message);
- return true;
+ if (InternalMessageQueue* const queue = InternalMessageQueue::getInstanceWithoutCreating())
+ {
+ queue->postMessage (message);
+ return true;
+ }
+
+ return false;
}
void MessageManager::broadcastMessage (const String& /* value */)

+ 2
- 2
libs/juce/patches/local-ladspa.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp
index 1bb2413..8479bc3 100644
index 7ec05c1..945f272 100644
--- a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp
+++ b/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp
@@ -26,7 +26,7 @@
@@ -28,7 +28,7 @@
} // (juce namespace)


+ 44
- 0
libs/juce/patches/mingw-fixes.patch View File

@@ -0,0 +1,44 @@
diff --git a/modules/juce_audio_devices/native/juce_win32_ASIO.cpp b/modules/juce_audio_devices/native/juce_win32_ASIO.cpp
index c919767..e6d88aa 100644
--- a/modules/juce_audio_devices/native/juce_win32_ASIO.cpp
+++ b/modules/juce_audio_devices/native/juce_win32_ASIO.cpp
@@ -1413,7 +1413,11 @@ private:
void setCallbackFunctions() noexcept
{
- ASIOCallbackFunctions<0>::setCallbacksForDevice (callbacks, this);
+ /**/ if (currentASIODev[0] == this) ASIOCallbackFunctions<0>::setCallbacks (callbacks);
+ else if (currentASIODev[1] == this) ASIOCallbackFunctions<1>::setCallbacks (callbacks);
+ else if (currentASIODev[2] == this) ASIOCallbackFunctions<2>::setCallbacks (callbacks);
+ else if (currentASIODev[3] == this) ASIOCallbackFunctions<3>::setCallbacks (callbacks);
+ else jassertfalse;
}
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ASIOAudioIODevice)
diff --git a/modules/juce_audio_processors/format_types/juce_VST3Headers.h b/modules/juce_audio_processors/format_types/juce_VST3Headers.h
index 1eec325..de33170 100644
--- a/modules/juce_audio_processors/format_types/juce_VST3Headers.h
+++ b/modules/juce_audio_processors/format_types/juce_VST3Headers.h
@@ -86,6 +86,9 @@
#include <public.sdk/source/common/memorystream.h>
#include <public.sdk/source/vst/vsteditcontroller.h>
#else
+ #if JUCE_MINGW
+ #define _set_abort_behavior(...)
+ #endif
#include <base/source/baseiids.cpp>
#include <base/source/fbuffer.cpp>
#include <base/source/fdebug.cpp>
diff --git a/modules/juce_core/native/juce_BasicNativeHeaders.h b/modules/juce_core/native/juce_BasicNativeHeaders.h
index 088832b..9ce110c 100644
--- a/modules/juce_core/native/juce_BasicNativeHeaders.h
+++ b/modules/juce_core/native/juce_BasicNativeHeaders.h
@@ -117,7 +117,7 @@
#define STRICT 1
#define WIN32_LEAN_AND_MEAN 1
#if JUCE_MINGW
- #define _WIN32_WINNT 0x0501
+ #define _WIN32_WINNT 0x0502
#else
#define _WIN32_WINNT 0x0602
#endif

+ 0
- 35
libs/juce/patches/mingw-fixes.patch.bak View File

@@ -1,35 +0,0 @@
diff --git a/modules/juce_core/maths/juce_MathsFunctions.h b/modules/juce_core/maths/juce_MathsFunctions.h
index 30fdd10..7a71ad8 100644
--- a/modules/juce_core/maths/juce_MathsFunctions.h
+++ b/modules/juce_core/maths/juce_MathsFunctions.h
@@ -367,7 +367,7 @@ inline bool juce_isfinite (NumericType) noexcept
template <>
inline bool juce_isfinite (float value) noexcept
{
- #if JUCE_WINDOWS
+ #if JUCE_MSVC
return _finite (value) != 0;
#else
return std::isfinite (value);
@@ -377,7 +377,7 @@ inline bool juce_isfinite (float value) noexcept
template <>
inline bool juce_isfinite (double value) noexcept
{
- #if JUCE_WINDOWS
+ #if JUCE_MSVC
return _finite (value) != 0;
#else
return std::isfinite (value);
diff --git a/modules/juce_core/native/juce_BasicNativeHeaders.h b/modules/juce_core/native/juce_BasicNativeHeaders.h
index cdaa0ef..55c0c8c 100644
--- a/modules/juce_core/native/juce_BasicNativeHeaders.h
+++ b/modules/juce_core/native/juce_BasicNativeHeaders.h
@@ -87,7 +87,7 @@
#define STRICT 1
#define WIN32_LEAN_AND_MEAN 1
#if JUCE_MINGW
- #define _WIN32_WINNT 0x0501
+ #define _WIN32_WINNT 0x0502
#else
#define _WIN32_WINNT 0x0600
#endif

+ 0
- 46
libs/juce/patches/mingw-fixes_2.patch.bak View File

@@ -1,46 +0,0 @@
diff --git a/modules/juce_core/files/juce_File.cpp b/modules/juce_core/files/juce_File.cpp
index de6790e..a8c2c69 100644
--- a/modules/juce_core/files/juce_File.cpp
+++ b/modules/juce_core/files/juce_File.cpp
@@ -911,7 +911,7 @@ bool File::createSymbolicLink (const File& linkFileToCreate, bool overwriteExist
}
return true;
- #elif JUCE_WINDOWS
+ #elif JUCE_MSVC
return CreateSymbolicLink (linkFileToCreate.getFullPathName().toWideCharPointer(),
fullPath.toWideCharPointer(),
isDirectory() ? SYMBOLIC_LINK_FLAG_DIRECTORY : 0) != FALSE;
diff --git a/modules/juce_core/native/juce_BasicNativeHeaders.h b/modules/juce_core/native/juce_BasicNativeHeaders.h
index 933285a..c926ecf 100644
--- a/modules/juce_core/native/juce_BasicNativeHeaders.h
+++ b/modules/juce_core/native/juce_BasicNativeHeaders.h
@@ -114,7 +114,7 @@
#if JUCE_MINGW
#include <basetyps.h>
#include <sys/time.h>
- #define alloca __builtin_alloca
+ #define alloca(x) __builtin_alloca((x))
#else
#include <crtdbg.h>
#include <comutil.h>
diff --git a/modules/juce_core/native/juce_win32_Files.cpp b/modules/juce_core/native/juce_win32_Files.cpp
index 715be33..81a0bca 100644
--- a/modules/juce_core/native/juce_win32_Files.cpp
+++ b/modules/juce_core/native/juce_win32_Files.cpp
@@ -643,6 +643,7 @@ bool File::isShortcut() const
File File::getLinkedTarget() const
{
+#if JUCE_MSVC
{
HANDLE h = CreateFile (getFullPathName().toWideCharPointer(),
GENERIC_READ, FILE_SHARE_READ, nullptr,
@@ -676,6 +677,7 @@ File File::getLinkedTarget() const
CloseHandle (h);
}
}
+#endif
File result (*this);
String p (getFullPathName());

+ 42
- 49
libs/juce/patches/osx-ui-processors-utils-separate.patch View File

@@ -1,14 +1,11 @@
diff --git a/modules/juce_audio_processors/juce_audio_processors.cpp b/modules/juce_audio_processors/juce_audio_processors.cpp
index d1f1679..2957e0d 100644
index 20dee10..ca6dd27 100644
--- a/modules/juce_audio_processors/juce_audio_processors.cpp
+++ b/modules/juce_audio_processors/juce_audio_processors.cpp
@@ -79,61 +79,73 @@ static inline bool arrayContainsPlugin (const OwnedArray<PluginDescription>& lis
#if JUCE_MAC
//==============================================================================
-struct AutoResizingNSViewComponent : public NSViewComponent,
- private AsyncUpdater
-{
@@ -86,24 +86,9 @@ static inline bool arrayContainsPlugin (const OwnedArray<PluginDescription>& lis
struct AutoResizingNSViewComponent : public ViewComponentBaseClass,
private AsyncUpdater
{
- AutoResizingNSViewComponent() : recursive (false) {}
-
- void childBoundsChanged (Component*) override
@@ -27,95 +24,91 @@ index d1f1679..2957e0d 100644
-
- void handleAsyncUpdate() override { resizeToFitView(); }
-
+
+struct AutoResizingNSViewComponent : public NSViewComponent,
+ private AsyncUpdater {
+ AutoResizingNSViewComponent();
+ void childBoundsChanged(Component*) override;
+ void childBoundsChanged (Component*) override;
+ void handleAsyncUpdate() override;
bool recursive;
};
+struct AutoResizingNSViewComponentWithParent : public AutoResizingNSViewComponent,
+ private Timer {
@@ -111,33 +96,61 @@ struct AutoResizingNSViewComponent : public ViewComponentBaseClass,
struct AutoResizingNSViewComponentWithParent : public AutoResizingNSViewComponent,
private Timer
{
- AutoResizingNSViewComponentWithParent()
- {
- JUCE_IOS_MAC_VIEW* v = [[JUCE_IOS_MAC_VIEW alloc] init];
- setView (v);
- [v release];
+ AutoResizingNSViewComponentWithParent();
+ NSView* getChildView() const;
+ JUCE_IOS_MAC_VIEW* getChildView() const;
+ void timerCallback() override;
+};
+
//==============================================================================
-struct AutoResizingNSViewComponentWithParent : public AutoResizingNSViewComponent,
- private Timer
+
- startTimer (30);
- }
+//==============================================================================
+AutoResizingNSViewComponent::AutoResizingNSViewComponent()
+ : recursive (false) {}
+
+void AutoResizingNSViewComponent::childBoundsChanged(Component*)
{
- AutoResizingNSViewComponentWithParent()
- JUCE_IOS_MAC_VIEW* getChildView() const
+void AutoResizingNSViewComponent::childBoundsChanged (Component*) override
+{
+ if (recursive)
{
- NSView* v = [[NSView alloc] init];
- setView (v);
- [v release];
-
- startTimer (30);
+ triggerAsyncUpdate();
}
-
- NSView* getChildView() const
+ else
{
- if (NSView* parent = (NSView*) getView())
- if (JUCE_IOS_MAC_VIEW* parent = (JUCE_IOS_MAC_VIEW*) getView())
- if ([[parent subviews] count] > 0)
- return [[parent subviews] objectAtIndex: 0];
-
- return nil;
+ triggerAsyncUpdate();
}
+ else
+ {
+ recursive = true;
+ resizeToFitView();
+ recursive = true;
}
+ }
+}
- void timerCallback() override
+void AutoResizingNSViewComponent::handleAsyncUpdate()
+void AutoResizingNSViewComponent::handleAsyncUpdate() override
+{
+ resizeToFitView();
+}
+
+//==============================================================================
+AutoResizingNSViewComponentWithParent::AutoResizingNSViewComponentWithParent()
+{
+ NSView* v = [[NSView alloc] init];
+ JUCE_IOS_MAC_VIEW* v = [[JUCE_IOS_MAC_VIEW alloc] init];
+ setView (v);
+ [v release];
+
+ startTimer(500);
+
+ startTimer (30);
+}
+
+NSView* AutoResizingNSViewComponentWithParent::getChildView() const
+JUCE_IOS_MAC_VIEW* AutoResizingNSViewComponentWithParent::getChildView() const
+{
+ if (NSView* parent = (NSView*)getView())
+ if (JUCE_IOS_MAC_VIEW* parent = (JUCE_IOS_MAC_VIEW*) getView())
+ if ([[parent subviews] count] > 0)
+ return [[parent subviews] objectAtIndex: 0];
+
+
+ return nil;
+}
+
+void AutoResizingNSViewComponentWithParent::timerCallback()
+void AutoResizingNSViewComponentWithParent::timerCallback() override
+{
+ if (NSView* child = getChildView())
+ if (JUCE_IOS_MAC_VIEW* child = getChildView())
{
- if (NSView* child = getChildView())
- if (JUCE_IOS_MAC_VIEW* child = getChildView())
- {
- stopTimer();
- setView (child);
- }
+ stopTimer();
+ setView(child);
+ setView (child);
}
-};
+}
+
#endif
#if JUCE_CLANG

+ 7
- 6
libs/juce/patches/proper-posix-getExecutableFile.patch View File

@@ -1,12 +1,13 @@
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h
index 17a5307..abcf358 100644
index f6faa5b..0a5d97e 100644
--- a/modules/juce_core/native/juce_posix_SharedCode.h
+++ b/modules/juce_core/native/juce_posix_SharedCode.h
@@ -596,12 +596,38 @@ File juce_getExecutableFile()
{
Dl_info exeInfo;
dladdr ((void*) juce_getExecutableFile, &exeInfo);
@@ -647,12 +647,39 @@ File juce_getExecutableFile()
void* localSymbol = (void*) juce_getExecutableFile;
dladdr (localSymbol, &exeInfo);
- return CharPointer_UTF8 (exeInfo.dli_fname);
+
+ const CharPointer_UTF8 filename (exeInfo.dli_fname);
+
+ // if the filename is absolute simply return it
@@ -37,7 +38,7 @@ index 17a5307..abcf358 100644
}
};
static String filename (DLAddrReader::getFilename());
static String filename = DLAddrReader::getFilename();
- return File::getCurrentWorkingDirectory().getChildFile (filename);
+ return filename;
#endif


+ 14
- 14
libs/juce/patches/use-vfork+consistency.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_core/native/juce_linux_Files.cpp b/modules/juce_core/native/juce_linux_Files.cpp
index 3c38624..a0941ab 100644
index 1867cb7..3b239df 100644
--- a/modules/juce_core/native/juce_linux_Files.cpp
+++ b/modules/juce_core/native/juce_linux_Files.cpp
@@ -219,17 +219,22 @@ bool Process::openDocument (const String& fileName, const String& parameters)
@@ -206,17 +206,22 @@ bool Process::openDocument (const String& fileName, const String& parameters)
cmdString = cmdLines.joinIntoString (" || ");
}
@@ -30,11 +30,11 @@ index 3c38624..a0941ab 100644
return cpid >= 0;
diff --git a/modules/juce_core/native/juce_mac_Files.mm b/modules/juce_core/native/juce_mac_Files.mm
index 0a00e92..fdebd69 100644
index 36df598..1892af7 100644
--- a/modules/juce_core/native/juce_mac_Files.mm
+++ b/modules/juce_core/native/juce_mac_Files.mm
@@ -110,23 +110,22 @@ namespace FileHelpers
@@ -102,23 +102,22 @@ namespace MacFileHelpers
#else
static bool launchExecutable (const String& pathAndArguments)
{
- const char* const argv[4] = { "/bin/sh", "-c", pathAndArguments.toUTF8(), 0 };
@@ -63,20 +63,20 @@ index 0a00e92..fdebd69 100644
- return true;
+ return cpid >= 0;
}
#endif
}
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h
index abcf358..17def66 100644
index 0a5d97e..00eecfc 100644
--- a/modules/juce_core/native/juce_posix_SharedCode.h
+++ b/modules/juce_core/native/juce_posix_SharedCode.h
@@ -1046,7 +1046,18 @@ public:
@@ -1160,7 +1160,18 @@ public:
if (pipe (pipeHandles) == 0)
{
+ Array<char*> argv;
+ for (int i = 0; i < arguments.size(); ++i)
+ if (arguments[i].isNotEmpty())
+ argv.add (const_cast<char*> (arguments[i].toUTF8().getAddress()));
+ argv.add (const_cast<char*> (arguments[i].toRawUTF8()));
+
+ argv.add (nullptr);
+
@@ -88,7 +88,7 @@ index abcf358..17def66 100644
if (result < 0)
{
@@ -1055,6 +1066,7 @@ public:
@@ -1169,6 +1180,7 @@ public:
}
else if (result == 0)
{
@@ -96,8 +96,8 @@ index abcf358..17def66 100644
// we're the child process..
close (pipeHandles[0]); // close the read handle
@@ -1069,16 +1081,10 @@ public:
close (STDERR_FILENO);
@@ -1183,16 +1195,10 @@ public:
dup2 (open ("/dev/null", O_WRONLY), STDERR_FILENO);
close (pipeHandles[1]);
+#endif
@@ -105,11 +105,11 @@ index abcf358..17def66 100644
- Array<char*> argv;
- for (int i = 0; i < arguments.size(); ++i)
- if (arguments[i].isNotEmpty())
- argv.add (const_cast<char*> (arguments[i].toUTF8().getAddress()));
- argv.add (const_cast<char*> (arguments[i].toRawUTF8()));
-
- argv.add (nullptr);
-
- execvp (argv[0], argv.getRawDataPointer());
- execvp (exe.toRawUTF8(), argv.getRawDataPointer());
- exit (-1);
+ if (execvp (argv[0], argv.getRawDataPointer()) < 0)
+ _exit (-1);


+ 3
- 3
libs/juce/patches/vst3-less-strict.patch View File

@@ -1,10 +1,10 @@
diff --git a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp
index 1bef497..cb4d884 100644
index 88d8f49..7a5d661 100644
--- a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp
+++ b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp
@@ -1355,7 +1355,8 @@ private:
@@ -1356,7 +1356,8 @@ private:
const Result result (finder.findDescriptionsAndPerform (f));
auto result = finder.findDescriptionsAndPerform (f);
- if (result.getErrorMessage() == MatchingDescriptionFinder::getSuccessString())
+ if (result.getErrorMessage() == MatchingDescriptionFinder::getSuccessString() ||


+ 30
- 31
libs/juce/patches/vstwrapper-fixes.patch View File

@@ -1,16 +1,16 @@
diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
index 0086d80..7e0564f 100644
index ecab10a..e9d8f4a 100644
--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
@@ -108,6 +108,7 @@
#include "../utility/juce_IncludeModuleHeaders.h"
#include "../utility/juce_FakeMouseMoveGenerator.h"
#include "../utility/juce_WindowsHooks.h"
+#include "modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"
@@ -60,6 +60,7 @@
#endif
#include "../../juce_audio_processors/format_types/juce_VSTInterface.h"
+#include "../../juce_audio_processors/format_types/juce_VSTMidiEventList.h"
#ifdef _MSC_VER
#pragma pack (pop)
@@ -213,9 +214,9 @@ public:
#pragma warning (pop)
@@ -179,9 +180,9 @@ struct SharedMessageThread : public Thread
void run() override
{
initialiseJuce_GUI();
@@ -19,37 +19,36 @@ index 0086d80..7e0564f 100644
MessageManager::getInstance()->setCurrentThreadAsMessageThread();
+ initialised = true;
while ((! threadShouldExit()) && MessageManager::getInstance()->runDispatchLoopUntil (250))
{}
@@ -285,10 +286,6 @@ public:
setInitialDelay (filter->getLatencySamples());
programsAreChunks (true);
ScopedXDisplay xDisplay;
@@ -268,9 +269,6 @@ public:
// You must at least have some channels
jassert (processor->isMidiEffect() || (maxNumInChannels > 0 || maxNumOutChannels > 0));
- // NB: For reasons best known to themselves, some hosts fail to load/save plugin
- // state correctly if the plugin doesn't report that it has at least 1 program.
- jassert (af->getNumPrograms() > 0);
- if (processor->isMidiEffect())
- maxNumInChannels = maxNumOutChannels = 2;
-
activePlugins.add (this);
}
#ifdef JucePlugin_PreferredChannelConfigurations
processor->setPlayConfigDetails (maxNumInChannels, maxNumOutChannels, 44100.0, 1024);
#endif
@@ -1887,7 +1885,7 @@ private:
@@ -352,7 +349,7 @@ public:
//==============================================================================
bool getEffectName (char* name) override
pointer_sized_int handleGetPlugInName (VstOpCodeArguments args)
{
- String (JucePlugin_Name).copyToUTF8 (name, 64);
+ String (filter->getName()).copyToUTF8 (name, 64);
return true;
- String (JucePlugin_Name).copyToUTF8 ((char*) args.ptr, 64 + 1);
+ String (processor->getName()).copyToUTF8 ((char*) args.ptr, 64 + 1);
return 1;
}
diff --git a/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp b/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp
index 1e87c49..5fdb8c2 100644
index 4380839..757feae 100644
--- a/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp
+++ b/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp
@@ -31,7 +31,6 @@
#include "AppConfig.h"
#include "../utility/juce_CheckSettingMacros.h"
-#include "juce_IncludeModuleHeaders.h"
@@ -29,7 +29,6 @@
#endif
#if _MSC_VER || JUCE_MINGW
#include "../../juce_core/system/juce_TargetPlatform.h"
-#include "../utility/juce_CheckSettingMacros.h"
#include "juce_IncludeModuleHeaders.h"
namespace juce

Loading…
Cancel
Save