@@ -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 | 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 | --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp | ||||
+++ b/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_ASIO()); | ||||
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_CoreAudio()); | addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_CoreAudio()); | ||||
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_iOSAudio()); | addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_iOSAudio()); | ||||
@@ -1,9 +1,9 @@ | |||||
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h | 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 | --- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h | ||||
+++ b/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. */ | + /** LV2 specific calls, saving/restore as string. */ | ||||
@@ -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 | |||||
}; | |||||
@@ -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 | 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 | --- a/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp | ||||
+++ b/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() | AudioProcessor::~AudioProcessor() | ||||
{ | { | ||||
+ #if ! JUCE_AUDIO_PROCESSOR_NO_GUI | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
// ooh, nasty - the editor should have been deleted before the filter | // ooh, nasty - the editor should have been deleted before the filter | ||||
// that it refers to is deleted.. | // that it refers to is deleted.. | ||||
jassert (activeEditor == nullptr); | jassert (activeEditor == nullptr); | ||||
@@ -14,15 +41,15 @@ index 0dda683..2df1163 100644 | |||||
#if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING | #if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING | ||||
// This will fail if you've called beginParameterChangeGesture() for one | // 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 | void AudioProcessor::editorBeingDeleted (AudioProcessorEditor* const editor) noexcept | ||||
{ | { | ||||
@@ -351,6 +354,7 @@ AudioProcessorEditor* AudioProcessor::createEditorIfNeeded() | |||||
@@ -1013,6 +1016,7 @@ AudioProcessorEditor* AudioProcessor::createEditorIfNeeded() | |||||
return ed; | return ed; | ||||
} | } | ||||
@@ -31,56 +58,56 @@ index 0dda683..2df1163 100644 | |||||
//============================================================================== | //============================================================================== | ||||
void AudioProcessor::getCurrentProgramStateInformation (juce::MemoryBlock& destData) | 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 | 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 | --- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h | ||||
+++ b/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; | virtual void setNonRealtime (bool isNonRealtime) noexcept; | ||||
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
//============================================================================== | //============================================================================== | ||||
/** Creates the filter's UI. | /** Creates the filter's UI. | ||||
@@ -378,6 +379,7 @@ public: | |||||
@@ -948,6 +949,7 @@ public: | |||||
This may call createEditor() internally to create the component. | This may call createEditor() internally to create the component. | ||||
*/ | */ | ||||
AudioProcessorEditor* createEditorIfNeeded(); | AudioProcessorEditor* createEditorIfNeeded(); | ||||
+#endif | |||||
+ #endif | |||||
//============================================================================== | //============================================================================== | ||||
/** This must return the correct value immediately after the object has been | /** 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. */ | /** Not for public use - this is called before deleting an editor component. */ | ||||
void editorBeingDeleted (AudioProcessorEditor*) noexcept; | 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; | Array<AudioProcessorListener*> listeners; | ||||
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
Component::SafePointer<AudioProcessorEditor> activeEditor; | 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 | 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 | --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp | ||||
+++ b/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::isInput() const noexcept { return type == audioInputNode || type == midiInputNode; } | ||||
bool AudioProcessorGraph::AudioGraphIOProcessor::isOutput() const noexcept { return type == audioOutputNode || type == midiOutputNode; } | 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; } | bool AudioProcessorGraph::AudioGraphIOProcessor::hasEditor() const { return false; } | ||||
AudioProcessorEditor* AudioProcessorGraph::AudioGraphIOProcessor::createEditor() { return nullptr; } | AudioProcessorEditor* AudioProcessorGraph::AudioGraphIOProcessor::createEditor() { return nullptr; } | ||||
+#endif | +#endif | ||||
@@ -88,17 +115,17 @@ index 84dd0e2..e71b884 100644 | |||||
int AudioProcessorGraph::AudioGraphIOProcessor::getNumPrograms() { return 0; } | int AudioProcessorGraph::AudioGraphIOProcessor::getNumPrograms() { return 0; } | ||||
int AudioProcessorGraph::AudioGraphIOProcessor::getCurrentProgram() { 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 | 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 | --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h | ||||
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h | +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h | ||||
@@ -319,8 +319,10 @@ public: | @@ -319,8 +319,10 @@ public: | ||||
bool acceptsMidi() const override; | bool acceptsMidi() const override; | ||||
bool producesMidi() const override; | bool producesMidi() const override; | ||||
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
bool hasEditor() const override; | bool hasEditor() const override; | ||||
AudioProcessorEditor* createEditor() override; | AudioProcessorEditor* createEditor() override; | ||||
+#endif | |||||
+ #endif | |||||
int getNumPrograms() override; | int getNumPrograms() override; | ||||
int getCurrentProgram() override; | int getCurrentProgram() override; | ||||
@@ -106,10 +133,10 @@ index 2079a53..f6d1a63 100644 | |||||
bool acceptsMidi() const override; | bool acceptsMidi() const override; | ||||
bool producesMidi() const override; | bool producesMidi() const override; | ||||
+#if ! JUCE_AUDIO_PROCESSOR_NO_GUI | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
bool hasEditor() const override { return false; } | bool hasEditor() const override { return false; } | ||||
AudioProcessorEditor* createEditor() override { return nullptr; } | AudioProcessorEditor* createEditor() override { return nullptr; } | ||||
+#endif | |||||
+ #endif | |||||
int getNumPrograms() override { return 0; } | int getNumPrograms() override { return 0; } | ||||
int getCurrentProgram() override { return 0; } | int getCurrentProgram() override { return 0; } | ||||
void setCurrentProgram (int) override { } | void setCurrentProgram (int) override { } |
@@ -1,8 +1,8 @@ | |||||
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h | 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 | --- a/modules/juce_core/native/juce_posix_SharedCode.h | ||||
+++ b/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; | return 0; | ||||
} | } | ||||
@@ -15,10 +15,10 @@ index e682eae..17a5307 100644 | |||||
private: | private: | ||||
diff --git a/modules/juce_core/native/juce_win32_Threads.cpp b/modules/juce_core/native/juce_win32_Threads.cpp | 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 | --- a/modules/juce_core/native/juce_win32_Threads.cpp | ||||
+++ b/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; | return (uint32) exitCode; | ||||
} | } | ||||
@@ -31,10 +31,10 @@ index 1421c10..ca22ea0 100644 | |||||
private: | private: | ||||
diff --git a/modules/juce_core/threads/juce_ChildProcess.cpp b/modules/juce_core/threads/juce_ChildProcess.cpp | 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 | --- a/modules/juce_core/threads/juce_ChildProcess.cpp | ||||
+++ b/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(); | return result.toString(); | ||||
} | } | ||||
@@ -47,10 +47,10 @@ index 4566b13..e984837 100644 | |||||
#if JUCE_UNIT_TESTS | #if JUCE_UNIT_TESTS | ||||
diff --git a/modules/juce_core/threads/juce_ChildProcess.h b/modules/juce_core/threads/juce_ChildProcess.h | 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 | --- a/modules/juce_core/threads/juce_ChildProcess.h | ||||
+++ b/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(); | bool kill(); | ||||
@@ -1,8 +1,8 @@ | |||||
diff --git a/modules/juce_gui_basics/windows/juce_DialogWindow.cpp b/modules/juce_gui_basics/windows/juce_DialogWindow.cpp | 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 | --- a/modules/juce_gui_basics/windows/juce_DialogWindow.cpp | ||||
+++ b/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, | Colour backgroundColour, | ||||
const bool escapeKeyTriggersCloseButton, | const bool escapeKeyTriggersCloseButton, | ||||
const bool resizable, | const bool resizable, | ||||
@@ -12,7 +12,7 @@ index bcb3723..a834b03 100644 | |||||
{ | { | ||||
LaunchOptions o; | LaunchOptions o; | ||||
o.dialogTitle = dialogTitle; | 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.componentToCentreAround = componentToCentreAround; | ||||
o.dialogBackgroundColour = backgroundColour; | o.dialogBackgroundColour = backgroundColour; | ||||
o.escapeKeyTriggersCloseButton = escapeKeyTriggersCloseButton; | o.escapeKeyTriggersCloseButton = escapeKeyTriggersCloseButton; | ||||
@@ -23,7 +23,7 @@ index bcb3723..a834b03 100644 | |||||
o.launchAsync(); | o.launchAsync(); | ||||
} | } | ||||
@@ -149,7 +150,8 @@ int DialogWindow::showModalDialog (const String& dialogTitle, | |||||
@@ -159,7 +160,8 @@ int DialogWindow::showModalDialog (const String& dialogTitle, | |||||
Colour backgroundColour, | Colour backgroundColour, | ||||
const bool escapeKeyTriggersCloseButton, | const bool escapeKeyTriggersCloseButton, | ||||
const bool resizable, | const bool resizable, | ||||
@@ -33,7 +33,7 @@ index bcb3723..a834b03 100644 | |||||
{ | { | ||||
LaunchOptions o; | LaunchOptions o; | ||||
o.dialogTitle = dialogTitle; | 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.componentToCentreAround = componentToCentreAround; | ||||
o.dialogBackgroundColour = backgroundColour; | o.dialogBackgroundColour = backgroundColour; | ||||
o.escapeKeyTriggersCloseButton = escapeKeyTriggersCloseButton; | o.escapeKeyTriggersCloseButton = escapeKeyTriggersCloseButton; | ||||
@@ -45,10 +45,10 @@ index bcb3723..a834b03 100644 | |||||
return o.runModal(); | return o.runModal(); | ||||
} | } | ||||
diff --git a/modules/juce_gui_basics/windows/juce_DialogWindow.h b/modules/juce_gui_basics/windows/juce_DialogWindow.h | 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 | --- a/modules/juce_gui_basics/windows/juce_DialogWindow.h | ||||
+++ b/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, | Colour backgroundColour, | ||||
bool escapeKeyTriggersCloseButton, | bool escapeKeyTriggersCloseButton, | ||||
bool shouldBeResizable = false, | bool shouldBeResizable = false, | ||||
@@ -58,7 +58,7 @@ index b7c18df..aac4f43 100644 | |||||
#if JUCE_MODAL_LOOPS_PERMITTED || DOXYGEN | #if JUCE_MODAL_LOOPS_PERMITTED || DOXYGEN | ||||
/** Easy way of quickly showing a dialog box containing a given component. | /** Easy way of quickly showing a dialog box containing a given component. | ||||
@@ -235,7 +236,8 @@ public: | |||||
@@ -236,7 +237,8 @@ public: | |||||
Colour backgroundColour, | Colour backgroundColour, | ||||
bool escapeKeyTriggersCloseButton, | bool escapeKeyTriggersCloseButton, | ||||
bool shouldBeResizable = false, | bool shouldBeResizable = false, | ||||
@@ -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]; | Atom netHints [2]; | ||||
- if ((styleFlags & windowIsTemporary) != 0 | - if ((styleFlags & windowIsTemporary) != 0 | ||||
- || ((styleFlags & windowHasDropShadow) == 0 && Desktop::canUseSemiTransparentWindows())) | - || ((styleFlags & windowHasDropShadow) == 0 && Desktop::canUseSemiTransparentWindows())) | ||||
+ if (styleFlags & windowIsTemporary) | + 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()) | + 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 | 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"); |
@@ -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) |
@@ -1,24 +1,24 @@ | |||||
diff --git a/modules/juce_audio_basics/juce_audio_basics.cpp b/modules/juce_audio_basics/juce_audio_basics.cpp | 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 | --- a/modules/juce_audio_basics/juce_audio_basics.cpp | ||||
+++ b/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_FloatVectorOperations.cpp" | ||||
#include "buffers/juce_AudioChannelSet.cpp" | |||||
#include "effects/juce_IIRFilter.cpp" | #include "effects/juce_IIRFilter.cpp" | ||||
+#include "effects/juce_IIRFilterOld.cpp" | +#include "effects/juce_IIRFilterOld.cpp" | ||||
#include "effects/juce_LagrangeInterpolator.cpp" | #include "effects/juce_LagrangeInterpolator.cpp" | ||||
#include "effects/juce_FFT.cpp" | |||||
#include "effects/juce_CatmullRomInterpolator.cpp" | |||||
#include "midi/juce_MidiBuffer.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 | 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 | --- a/modules/juce_audio_basics/juce_audio_basics.h | ||||
+++ b/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_Decibels.h" | ||||
#include "effects/juce_IIRFilter.h" | #include "effects/juce_IIRFilter.h" | ||||
+#include "effects/juce_IIRFilterOld.h" | +#include "effects/juce_IIRFilterOld.h" | ||||
#include "effects/juce_LagrangeInterpolator.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" |
@@ -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" |
@@ -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 */) |
@@ -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 | 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 | --- a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp | ||||
+++ b/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) | } // (juce namespace) | ||||
@@ -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 |
@@ -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 |
@@ -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()); |
@@ -1,14 +1,11 @@ | |||||
diff --git a/modules/juce_audio_processors/juce_audio_processors.cpp b/modules/juce_audio_processors/juce_audio_processors.cpp | 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 | --- a/modules/juce_audio_processors/juce_audio_processors.cpp | ||||
+++ b/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) {} | - AutoResizingNSViewComponent() : recursive (false) {} | ||||
- | - | ||||
- void childBoundsChanged (Component*) override | - void childBoundsChanged (Component*) override | ||||
@@ -27,95 +24,91 @@ index d1f1679..2957e0d 100644 | |||||
- | - | ||||
- void handleAsyncUpdate() override { resizeToFitView(); } | - void handleAsyncUpdate() override { resizeToFitView(); } | ||||
- | - | ||||
+ | |||||
+struct AutoResizingNSViewComponent : public NSViewComponent, | |||||
+ private AsyncUpdater { | |||||
+ AutoResizingNSViewComponent(); | + AutoResizingNSViewComponent(); | ||||
+ void childBoundsChanged(Component*) override; | |||||
+ void childBoundsChanged (Component*) override; | |||||
+ void handleAsyncUpdate() override; | + void handleAsyncUpdate() override; | ||||
bool recursive; | 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(); | + AutoResizingNSViewComponentWithParent(); | ||||
+ NSView* getChildView() const; | |||||
+ JUCE_IOS_MAC_VIEW* getChildView() const; | |||||
+ void timerCallback() override; | + void timerCallback() override; | ||||
+}; | +}; | ||||
+ | |||||
//============================================================================== | |||||
-struct AutoResizingNSViewComponentWithParent : public AutoResizingNSViewComponent, | |||||
- private Timer | |||||
+ | |||||
- startTimer (30); | |||||
- } | |||||
+//============================================================================== | |||||
+AutoResizingNSViewComponent::AutoResizingNSViewComponent() | +AutoResizingNSViewComponent::AutoResizingNSViewComponent() | ||||
+ : recursive (false) {} | + : recursive (false) {} | ||||
+ | |||||
+void AutoResizingNSViewComponent::childBoundsChanged(Component*) | |||||
{ | |||||
- AutoResizingNSViewComponentWithParent() | |||||
- JUCE_IOS_MAC_VIEW* getChildView() const | |||||
+void AutoResizingNSViewComponent::childBoundsChanged (Component*) override | |||||
+{ | |||||
+ if (recursive) | + 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) | - if ([[parent subviews] count] > 0) | ||||
- return [[parent subviews] objectAtIndex: 0]; | - return [[parent subviews] objectAtIndex: 0]; | ||||
- | - | ||||
- return nil; | - return nil; | ||||
+ triggerAsyncUpdate(); | |||||
} | |||||
+ else | |||||
+ { | |||||
+ recursive = true; | + recursive = true; | ||||
+ resizeToFitView(); | + resizeToFitView(); | ||||
+ recursive = true; | + recursive = true; | ||||
} | |||||
+ } | |||||
+} | +} | ||||
- void timerCallback() override | - void timerCallback() override | ||||
+void AutoResizingNSViewComponent::handleAsyncUpdate() | |||||
+void AutoResizingNSViewComponent::handleAsyncUpdate() override | |||||
+{ | +{ | ||||
+ resizeToFitView(); | + resizeToFitView(); | ||||
+} | +} | ||||
+ | + | ||||
+//============================================================================== | |||||
+AutoResizingNSViewComponentWithParent::AutoResizingNSViewComponentWithParent() | +AutoResizingNSViewComponentWithParent::AutoResizingNSViewComponentWithParent() | ||||
+{ | +{ | ||||
+ NSView* v = [[NSView alloc] init]; | |||||
+ JUCE_IOS_MAC_VIEW* v = [[JUCE_IOS_MAC_VIEW alloc] init]; | |||||
+ setView (v); | + setView (v); | ||||
+ [v release]; | + [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) | + if ([[parent subviews] count] > 0) | ||||
+ return [[parent subviews] objectAtIndex: 0]; | + return [[parent subviews] objectAtIndex: 0]; | ||||
+ | |||||
+ | |||||
+ return nil; | + 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(); | - stopTimer(); | ||||
- setView (child); | - setView (child); | ||||
- } | - } | ||||
+ stopTimer(); | + stopTimer(); | ||||
+ setView(child); | |||||
+ setView (child); | |||||
} | } | ||||
-}; | -}; | ||||
+} | +} | ||||
+ | |||||
#endif | #endif | ||||
#if JUCE_CLANG | #if JUCE_CLANG |
@@ -1,12 +1,13 @@ | |||||
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h | 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 | --- a/modules/juce_core/native/juce_posix_SharedCode.h | ||||
+++ b/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); | - return CharPointer_UTF8 (exeInfo.dli_fname); | ||||
+ | |||||
+ const CharPointer_UTF8 filename (exeInfo.dli_fname); | + const CharPointer_UTF8 filename (exeInfo.dli_fname); | ||||
+ | + | ||||
+ // if the filename is absolute simply return it | + // 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 File::getCurrentWorkingDirectory().getChildFile (filename); | ||||
+ return filename; | + return filename; | ||||
#endif | #endif | ||||
@@ -1,8 +1,8 @@ | |||||
diff --git a/modules/juce_core/native/juce_linux_Files.cpp b/modules/juce_core/native/juce_linux_Files.cpp | 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 | --- a/modules/juce_core/native/juce_linux_Files.cpp | ||||
+++ b/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 (" || "); | cmdString = cmdLines.joinIntoString (" || "); | ||||
} | } | ||||
@@ -30,11 +30,11 @@ index 3c38624..a0941ab 100644 | |||||
return cpid >= 0; | return cpid >= 0; | ||||
diff --git a/modules/juce_core/native/juce_mac_Files.mm b/modules/juce_core/native/juce_mac_Files.mm | 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 | --- a/modules/juce_core/native/juce_mac_Files.mm | ||||
+++ b/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) | static bool launchExecutable (const String& pathAndArguments) | ||||
{ | { | ||||
- const char* const argv[4] = { "/bin/sh", "-c", pathAndArguments.toUTF8(), 0 }; | - const char* const argv[4] = { "/bin/sh", "-c", pathAndArguments.toUTF8(), 0 }; | ||||
@@ -63,20 +63,20 @@ index 0a00e92..fdebd69 100644 | |||||
- return true; | - return true; | ||||
+ return cpid >= 0; | + return cpid >= 0; | ||||
} | } | ||||
#endif | |||||
} | } | ||||
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h | 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 | --- a/modules/juce_core/native/juce_posix_SharedCode.h | ||||
+++ b/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) | if (pipe (pipeHandles) == 0) | ||||
{ | { | ||||
+ Array<char*> argv; | + Array<char*> argv; | ||||
+ for (int i = 0; i < arguments.size(); ++i) | + for (int i = 0; i < arguments.size(); ++i) | ||||
+ if (arguments[i].isNotEmpty()) | + if (arguments[i].isNotEmpty()) | ||||
+ argv.add (const_cast<char*> (arguments[i].toUTF8().getAddress())); | |||||
+ argv.add (const_cast<char*> (arguments[i].toRawUTF8())); | |||||
+ | + | ||||
+ argv.add (nullptr); | + argv.add (nullptr); | ||||
+ | + | ||||
@@ -88,7 +88,7 @@ index abcf358..17def66 100644 | |||||
if (result < 0) | if (result < 0) | ||||
{ | { | ||||
@@ -1055,6 +1066,7 @@ public: | |||||
@@ -1169,6 +1180,7 @@ public: | |||||
} | } | ||||
else if (result == 0) | else if (result == 0) | ||||
{ | { | ||||
@@ -96,8 +96,8 @@ index abcf358..17def66 100644 | |||||
// we're the child process.. | // we're the child process.. | ||||
close (pipeHandles[0]); // close the read handle | 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]); | close (pipeHandles[1]); | ||||
+#endif | +#endif | ||||
@@ -105,11 +105,11 @@ index abcf358..17def66 100644 | |||||
- Array<char*> argv; | - Array<char*> argv; | ||||
- for (int i = 0; i < arguments.size(); ++i) | - for (int i = 0; i < arguments.size(); ++i) | ||||
- if (arguments[i].isNotEmpty()) | - if (arguments[i].isNotEmpty()) | ||||
- argv.add (const_cast<char*> (arguments[i].toUTF8().getAddress())); | |||||
- argv.add (const_cast<char*> (arguments[i].toRawUTF8())); | |||||
- | - | ||||
- argv.add (nullptr); | - argv.add (nullptr); | ||||
- | - | ||||
- execvp (argv[0], argv.getRawDataPointer()); | |||||
- execvp (exe.toRawUTF8(), argv.getRawDataPointer()); | |||||
- exit (-1); | - exit (-1); | ||||
+ if (execvp (argv[0], argv.getRawDataPointer()) < 0) | + if (execvp (argv[0], argv.getRawDataPointer()) < 0) | ||||
+ _exit (-1); | + _exit (-1); | ||||
@@ -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 | 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 | --- a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp | ||||
+++ b/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()) | ||||
+ if (result.getErrorMessage() == MatchingDescriptionFinder::getSuccessString() || | + if (result.getErrorMessage() == MatchingDescriptionFinder::getSuccessString() || | ||||
@@ -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 | 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 | --- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp | ||||
+++ b/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 | #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 | void run() override | ||||
{ | { | ||||
initialiseJuce_GUI(); | initialiseJuce_GUI(); | ||||
@@ -19,37 +19,36 @@ index 0086d80..7e0564f 100644 | |||||
MessageManager::getInstance()->setCurrentThreadAsMessageThread(); | MessageManager::getInstance()->setCurrentThreadAsMessageThread(); | ||||
+ initialised = true; | + 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 | 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 | --- a/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp | ||||
+++ b/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 |