@@ -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 a19c7b05e..deabba6db 100644 | |||||
index d1beeb968..40c2c7ee0 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 | ||||
@@ -185,8 +185,8 @@ void AudioDeviceManager::createAudioDeviceTypes (OwnedArray<AudioIODeviceType>& | |||||
@@ -237,8 +237,8 @@ void AudioDeviceManager::createAudioDeviceTypes (OwnedArray<AudioIODeviceType>& | |||||
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_CoreAudio()); | addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_CoreAudio()); | ||||
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_iOSAudio()); | addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_iOSAudio()); | ||||
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Bela()); | addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Bela()); | ||||
@@ -1,8 +1,8 @@ | |||||
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 8683dc728..94f6bf569 100644 | |||||
index a2b0286fb..431919098 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 | ||||
@@ -61,7 +61,7 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4996 4100) | |||||
@@ -55,7 +55,7 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4996 4100) | |||||
#define PRAGMA_ALIGN_SUPPORTED 1 | #define PRAGMA_ALIGN_SUPPORTED 1 | ||||
#endif | #endif | ||||
@@ -11,27 +11,11 @@ index 8683dc728..94f6bf569 100644 | |||||
#define __cdecl | #define __cdecl | ||||
#endif | #endif | ||||
diff --git a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h | |||||
index 6bea84307..baaa59f06 100644 | |||||
--- a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h | |||||
+++ b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h | |||||
@@ -73,11 +73,6 @@ | |||||
#define JucePlugin_Build_RTAS 0 | |||||
#endif | |||||
-#if ! (defined (_MSC_VER) || defined (__APPLE_CPP__) || defined (__APPLE_CC__) || defined (LINUX) || defined (__linux__)) | |||||
- #undef JucePlugin_Build_VST3 | |||||
- #define JucePlugin_Build_VST3 0 | |||||
-#endif | |||||
- | |||||
//============================================================================== | |||||
#if JucePlugin_Build_LV2 && ! defined (JucePlugin_LV2URI) | |||||
#error "You need to define the JucePlugin_LV2URI value!" | |||||
diff --git a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp | diff --git a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp | ||||
index 620ba9874..d9359b736 100644 | |||||
index 06b5d5a95..f3506b8bd 100644 | |||||
--- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp | --- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp | ||||
+++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp | +++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp | ||||
@@ -62,9 +62,6 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4355) | |||||
@@ -50,9 +50,6 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4355) | |||||
#ifndef WM_APPCOMMAND | #ifndef WM_APPCOMMAND | ||||
#define WM_APPCOMMAND 0x0319 | #define WM_APPCOMMAND 0x0319 | ||||
#endif | #endif | ||||
@@ -41,18 +25,75 @@ index 620ba9874..d9359b736 100644 | |||||
#elif ! JUCE_WINDOWS | #elif ! JUCE_WINDOWS | ||||
static void _fpreset() {} | static void _fpreset() {} | ||||
static void _clearfp() {} | static void _clearfp() {} | ||||
diff --git a/modules/juce_core/threads/juce_WaitableEvent.h b/modules/juce_core/threads/juce_WaitableEvent.h | |||||
index 52269f706..670903653 100644 | |||||
--- a/modules/juce_core/threads/juce_WaitableEvent.h | |||||
+++ b/modules/juce_core/threads/juce_WaitableEvent.h | |||||
@@ -20,6 +20,10 @@ | |||||
============================================================================== | |||||
*/ | |||||
+#if JUCE_MINGW && !defined(_GLIBCXX_HAS_GTHREADS) | |||||
+#include "mingw-std-threads/mingw.condition_variable.h" | |||||
+#endif | |||||
diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp | |||||
index 2727a4507..bd19f7bec 100644 | |||||
--- a/modules/juce_gui_basics/juce_gui_basics.cpp | |||||
+++ b/modules/juce_gui_basics/juce_gui_basics.cpp | |||||
@@ -62,9 +62,12 @@ | |||||
#include <vfw.h> | |||||
#include <commdlg.h> | |||||
#include <commctrl.h> | |||||
- #include <UIAutomation.h> | |||||
#include <sapi.h> | |||||
+ #if JUCE_MSVC | |||||
+ #include <UIAutomation.h> | |||||
+ #endif | |||||
+ | + | ||||
namespace juce | |||||
{ | |||||
#if JUCE_WEB_BROWSER | |||||
#include <exdisp.h> | |||||
#include <exdispid.h> | |||||
@@ -279,13 +282,15 @@ namespace juce | |||||
#include "native/juce_mac_MouseCursor.mm" | |||||
#elif JUCE_WINDOWS | |||||
- #include "native/accessibility/juce_win32_ComInterfaces.h" | |||||
- #include "native/accessibility/juce_win32_WindowsUIAWrapper.h" | |||||
- #include "native/accessibility/juce_win32_AccessibilityElement.h" | |||||
- #include "native/accessibility/juce_win32_UIAHelpers.h" | |||||
- #include "native/accessibility/juce_win32_UIAProviders.h" | |||||
- #include "native/accessibility/juce_win32_AccessibilityElement.cpp" | |||||
- #include "native/accessibility/juce_win32_Accessibility.cpp" | |||||
+ #if JUCE_MSVC | |||||
+ #include "native/accessibility/juce_win32_ComInterfaces.h" | |||||
+ #include "native/accessibility/juce_win32_WindowsUIAWrapper.h" | |||||
+ #include "native/accessibility/juce_win32_AccessibilityElement.h" | |||||
+ #include "native/accessibility/juce_win32_UIAHelpers.h" | |||||
+ #include "native/accessibility/juce_win32_UIAProviders.h" | |||||
+ #include "native/accessibility/juce_win32_AccessibilityElement.cpp" | |||||
+ #include "native/accessibility/juce_win32_Accessibility.cpp" | |||||
+ #endif | |||||
#include "native/juce_win32_Windowing.cpp" | |||||
#include "native/juce_win32_DragAndDrop.cpp" | |||||
#include "native/juce_win32_FileChooser.cpp" | |||||
diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp | |||||
index 954200135..a62f8521e 100644 | |||||
--- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp | |||||
+++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp | |||||
@@ -1524,8 +1524,10 @@ public: | |||||
// do this first to avoid messages arriving for this window before it's destroyed | |||||
JuceWindowIdentifier::setAsJUCEWindow (hwnd, false); | |||||
+ #if JUCE_MSVC | |||||
if (isAccessibilityActive) | |||||
WindowsAccessibility::revokeUIAMapEntriesForWindow (hwnd); | |||||
+ #endif | |||||
shadower = nullptr; | |||||
currentTouches.deleteAllTouchesForPeer (this); | |||||
@@ -4057,6 +4059,7 @@ private: | |||||
case WM_GETDLGCODE: | |||||
return DLGC_WANTALLKEYS; | |||||
+ #if JUCE_MSVC | |||||
case WM_GETOBJECT: | |||||
{ | |||||
if (static_cast<long> (lParam) == WindowsAccessibility::getUiaRootObjectId()) | |||||
@@ -4075,6 +4078,7 @@ private: | |||||
break; | |||||
} | |||||
+ #endif | |||||
default: | |||||
break; | |||||
} |
@@ -0,0 +1,30 @@ | |||||
diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm | |||||
index 17361fc7e..1fed43c3d 100644 | |||||
--- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm | |||||
+++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm | |||||
@@ -1089,6 +1089,7 @@ public: | |||||
auto dispatchRectangles = [this] () | |||||
{ | |||||
+ #if USE_COREGRAPHICS_RENDERING | |||||
if (@available (macOS 10.14, *)) | |||||
{ | |||||
if (metalRenderer != nullptr) | |||||
@@ -1101,6 +1102,7 @@ public: | |||||
deferredRepaints); | |||||
} | |||||
} | |||||
+ #endif | |||||
for (auto& i : deferredRepaints) | |||||
[view setNeedsDisplayInRect: makeNSRect (i)]; | |||||
@@ -1900,7 +1902,9 @@ private: | |||||
CVDisplayLinkRef displayLink = nullptr; | |||||
dispatch_source_t displaySource = nullptr; | |||||
+ #if USE_COREGRAPHICS_RENDERING | |||||
std::unique_ptr<CoreGraphicsMetalLayerRenderer> metalRenderer; | |||||
+ #endif | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (NSViewComponentPeer) | |||||
}; |
@@ -1,307 +0,0 @@ | |||||
diff --git a/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h b/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h | |||||
index acd165ff0..bdc0bf58f 100644 | |||||
--- a/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h | |||||
+++ b/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h | |||||
@@ -20,6 +20,11 @@ | |||||
============================================================================== | |||||
*/ | |||||
+#ifndef __clang__ | |||||
+// GCC4 compatibility | |||||
+namespace std { using ::max_align_t; } | |||||
+#endif | |||||
+ | |||||
namespace juce | |||||
{ | |||||
diff --git a/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h b/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h | |||||
index ac5ce32da..f0cd938ae 100644 | |||||
--- a/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h | |||||
+++ b/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h | |||||
@@ -236,8 +236,10 @@ private: | |||||
{ kAudioChannelLayoutTag_AAC_6_0, { centre, left, right, leftSurround, rightSurround, centreSurround } }, | |||||
{ kAudioChannelLayoutTag_AAC_6_1, { centre, left, right, leftSurround, rightSurround, centreSurround, LFE } }, | |||||
{ kAudioChannelLayoutTag_AAC_7_0, { centre, left, right, leftSurround, rightSurround, leftSurroundRear, rightSurroundRear } }, | |||||
+#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8 | |||||
{ kAudioChannelLayoutTag_AAC_7_1_B, { centre, left, right, leftSurround, rightSurround, leftSurroundRear, rightSurroundRear, LFE } }, | |||||
{ kAudioChannelLayoutTag_AAC_7_1_C, { centre, left, right, leftSurround, rightSurround, LFE, topFrontLeft, topFrontRight } }, | |||||
+#endif | |||||
{ kAudioChannelLayoutTag_AAC_Octagonal, { centre, left, right, leftSurround, rightSurround, leftSurroundRear, rightSurroundRear, centreSurround } }, | |||||
{ kAudioChannelLayoutTag_TMH_10_2_std, { left, right, centre, topFrontCentre, leftSurroundSide, rightSurroundSide, leftSurround, rightSurround, topFrontLeft, topFrontRight, wideLeft, wideRight, topRearCentre, centreSurround, LFE, LFE2 } }, | |||||
{ kAudioChannelLayoutTag_AC3_1_0_1, { centre, LFE } }, | |||||
diff --git a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm | |||||
index 9aa4a338e..7cad3e7c1 100644 | |||||
--- a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm | |||||
+++ b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm | |||||
@@ -59,6 +59,10 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations") | |||||
namespace juce | |||||
{ | |||||
+#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_8 | |||||
+static const uint32 kAudioUnitType_MIDIProcessor = 'aumi'; | |||||
+#endif | |||||
+ | |||||
// Change this to disable logging of various activities | |||||
#ifndef AU_LOGGING | |||||
#define AU_LOGGING 1 | |||||
@@ -276,7 +280,7 @@ namespace AudioUnitFormatHelpers | |||||
NSBundle* bundle = [[NSBundle alloc] initWithPath: (NSString*) fileOrIdentifier.toCFString()]; | |||||
NSArray* audioComponents = [bundle objectForInfoDictionaryKey: @"AudioComponents"]; | |||||
- NSDictionary* dict = audioComponents[0]; | |||||
+ NSDictionary* dict = [audioComponents objectAtIndex: 0]; | |||||
desc.componentManufacturer = stringToOSType (nsStringToJuce ((NSString*) [dict valueForKey: @"manufacturer"])); | |||||
desc.componentType = stringToOSType (nsStringToJuce ((NSString*) [dict valueForKey: @"type"])); | |||||
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h | |||||
index 39eac8211..f556f12b3 100644 | |||||
--- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h | |||||
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h | |||||
@@ -1184,7 +1184,7 @@ public: | |||||
String xMeterID, yMeterID; | |||||
}; | |||||
- virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return {}; } | |||||
+ virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return CurveData(); } | |||||
//============================================================================== | |||||
/** Not for public use - this is called before deleting an editor component. */ | |||||
diff --git a/modules/juce_core/native/juce_osx_ObjCHelpers.h b/modules/juce_core/native/juce_osx_ObjCHelpers.h | |||||
index a9a7c8eb7..aa068eaa0 100644 | |||||
--- a/modules/juce_core/native/juce_osx_ObjCHelpers.h | |||||
+++ b/modules/juce_core/native/juce_osx_ObjCHelpers.h | |||||
@@ -71,7 +71,7 @@ inline NSArray* varArrayToNSArray (const var& varToParse); | |||||
inline NSDictionary* varObjectToNSDictionary (const var& varToParse) | |||||
{ | |||||
- auto dictionary = [NSMutableDictionary dictionary]; | |||||
+ NSDictionary* dictionary = [NSMutableDictionary dictionary]; | |||||
if (varToParse.isObject()) | |||||
{ | |||||
@@ -118,7 +118,7 @@ inline NSArray* varArrayToNSArray (const var& varToParse) | |||||
const auto* varArray = varToParse.getArray(); | |||||
- auto array = [NSMutableArray arrayWithCapacity: (NSUInteger) varArray->size()]; | |||||
+ NSArray* array = [NSMutableArray arrayWithCapacity: (NSUInteger) varArray->size()]; | |||||
for (const auto& aVar : *varArray) | |||||
{ | |||||
@@ -152,7 +152,8 @@ inline var nsDictionaryToVar (NSDictionary* dictionary) | |||||
DynamicObject::Ptr dynamicObject (new DynamicObject()); | |||||
for (NSString* key in dictionary) | |||||
- dynamicObject->setProperty (nsStringToJuce (key), nsObjectToVar (dictionary[key])); | |||||
+ dynamicObject->setProperty (nsStringToJuce (key), | |||||
+ nsObjectToVar ([dictionary objectForKey: key])); | |||||
return var (dynamicObject.get()); | |||||
} | |||||
diff --git a/modules/juce_core/system/juce_CompilerSupport.h b/modules/juce_core/system/juce_CompilerSupport.h | |||||
index 4d96d7cb0..d76d92d49 100644 | |||||
--- a/modules/juce_core/system/juce_CompilerSupport.h | |||||
+++ b/modules/juce_core/system/juce_CompilerSupport.h | |||||
@@ -92,7 +92,7 @@ | |||||
//============================================================================== | |||||
// C++ library | |||||
-#if (defined (__GLIBCXX__) && __GLIBCXX__ < 20130322) || (defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION < 3700)) | |||||
+#if (defined (__GLIBCXX__) && __GLIBCXX__ < 20130322) | |||||
#error "JUCE requires a C++ library containing std::atomic" | |||||
#endif | |||||
diff --git a/modules/juce_core/system/juce_PlatformDefs.h b/modules/juce_core/system/juce_PlatformDefs.h | |||||
index 43000cab6..0a1798ba2 100644 | |||||
--- a/modules/juce_core/system/juce_PlatformDefs.h | |||||
+++ b/modules/juce_core/system/juce_PlatformDefs.h | |||||
@@ -99,11 +99,7 @@ namespace juce | |||||
deliberately and want to ignore the warning. | |||||
*/ | |||||
#if JUCE_CLANG | |||||
- #if __has_cpp_attribute(clang::fallthrough) | |||||
- #define JUCE_FALLTHROUGH [[clang::fallthrough]]; | |||||
- #else | |||||
- #define JUCE_FALLTHROUGH | |||||
- #endif | |||||
+ #define JUCE_FALLTHROUGH [[clang::fallthrough]]; | |||||
#elif JUCE_GCC | |||||
#if __GNUC__ >= 7 | |||||
#define JUCE_FALLTHROUGH [[gnu::fallthrough]]; | |||||
diff --git a/modules/juce_core/system/juce_TargetPlatform.h b/modules/juce_core/system/juce_TargetPlatform.h | |||||
index 5b4d293bb..6b41688b2 100644 | |||||
--- a/modules/juce_core/system/juce_TargetPlatform.h | |||||
+++ b/modules/juce_core/system/juce_TargetPlatform.h | |||||
@@ -145,8 +145,8 @@ | |||||
#endif | |||||
#if JUCE_MAC | |||||
- #if ! defined (MAC_OS_X_VERSION_10_11) | |||||
- #error "The 10.11 SDK (Xcode 7.3.1+) is required to build JUCE apps. You can create apps that run on macOS 10.7+ by changing the deployment target." | |||||
+ #if ! defined (MAC_OS_X_VERSION_10_8) | |||||
+ #error "The 10.8 SDK is required to build JUCE apps. You can create apps that run on macOS 10.7+ by changing the deployment target." | |||||
#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7 | |||||
#error "Building for OSX 10.6 is no longer supported!" | |||||
#endif | |||||
diff --git a/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm b/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm | |||||
index de6ffecfc..2a85d25f5 100644 | |||||
--- a/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm | |||||
+++ b/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm | |||||
@@ -26,6 +26,10 @@ | |||||
namespace juce | |||||
{ | |||||
+#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_8 | |||||
+ #define __nullable | |||||
+#endif | |||||
+ | |||||
//============================================================================== | |||||
// This class has been renamed from CoreGraphicsImage to avoid a symbol | |||||
// collision in Pro Tools 2019.12 and possibly 2020 depending on the Pro Tools | |||||
diff --git a/modules/juce_graphics/native/juce_mac_Fonts.mm b/modules/juce_graphics/native/juce_mac_Fonts.mm | |||||
index ff0a23a9f..88142091d 100644 | |||||
--- a/modules/juce_graphics/native/juce_mac_Fonts.mm | |||||
+++ b/modules/juce_graphics/native/juce_mac_Fonts.mm | |||||
@@ -359,20 +359,20 @@ namespace CoreTextTypeLayout | |||||
auto verticalJustification = text.getJustification().getOnlyVerticalFlags(); | |||||
- auto ctFrameArea = [area, minCTFrameHeight, verticalJustification] | |||||
+ const Rectangle<float> ctFrameArea = [area, minCTFrameHeight, verticalJustification] | |||||
{ | |||||
if (minCTFrameHeight < area.getHeight()) | |||||
- return area; | |||||
+ return Rectangle<float> (area); | |||||
if (verticalJustification == Justification::verticallyCentred) | |||||
return area.withSizeKeepingCentre (area.getWidth(), minCTFrameHeight); | |||||
- auto frameArea = area.withHeight (minCTFrameHeight); | |||||
+ const Rectangle<float> frameArea = area.withHeight (minCTFrameHeight); | |||||
if (verticalJustification == Justification::bottom) | |||||
return frameArea.withBottomY (area.getBottom()); | |||||
- return frameArea; | |||||
+ return Rectangle<float> (frameArea); | |||||
}(); | |||||
auto frame = createCTFrame (framesetter, CGRectMake ((CGFloat) ctFrameArea.getX(), flipHeight - (CGFloat) ctFrameArea.getBottom(), | |||||
diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm | |||||
index 26ca40630..bd5e69ab0 100644 | |||||
--- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm | |||||
+++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm | |||||
@@ -1583,17 +1583,21 @@ private: | |||||
case NSEventTypeSystemDefined: | |||||
case NSEventTypeApplicationDefined: | |||||
case NSEventTypePeriodic: | |||||
+ #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8 | |||||
case NSEventTypeGesture: | |||||
+ #endif | |||||
case NSEventTypeMagnify: | |||||
case NSEventTypeSwipe: | |||||
case NSEventTypeRotate: | |||||
case NSEventTypeBeginGesture: | |||||
case NSEventTypeEndGesture: | |||||
case NSEventTypeQuickLook: | |||||
- #if JUCE_64BIT | |||||
+ #if JUCE_64BIT | |||||
case NSEventTypeSmartMagnify: | |||||
+ #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8 | |||||
case NSEventTypePressure: | |||||
#endif | |||||
+ #endif | |||||
#if defined (MAC_OS_X_VERSION_10_12) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12 | |||||
#if JUCE_64BIT | |||||
case NSEventTypeDirectTouch: | |||||
diff --git a/modules/juce_gui_basics/native/juce_mac_Windowing.mm b/modules/juce_gui_basics/native/juce_mac_Windowing.mm | |||||
index 918f0b4a6..63e15d07b 100644 | |||||
--- a/modules/juce_gui_basics/native/juce_mac_Windowing.mm | |||||
+++ b/modules/juce_gui_basics/native/juce_mac_Windowing.mm | |||||
@@ -309,7 +309,7 @@ bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& fi | |||||
for (auto& filename : files) | |||||
{ | |||||
auto* nsFilename = juceStringToNS (filename); | |||||
- auto fileURL = [NSURL fileURLWithPath: nsFilename]; | |||||
+ NSURL* fileURL = [NSURL fileURLWithPath: nsFilename]; | |||||
auto dragItem = [[NSDraggingItem alloc] initWithPasteboardWriter: fileURL]; | |||||
auto eventPos = [event locationInWindow]; | |||||
diff --git a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp | |||||
index b8e6e0c7e..6ad01c68a 100644 | |||||
--- a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp | |||||
+++ b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp | |||||
@@ -3329,7 +3329,7 @@ void XWindowSystem::handleButtonPressEvent (LinuxComponentPeer* peer, const XBut | |||||
peer->toFront (true); | |||||
peer->handleMouseEvent (MouseInputSource::InputSourceType::mouse, getLogicalMousePos (buttonPressEvent, peer->getPlatformScaleFactor()), | |||||
ModifierKeys::currentModifiers, MouseInputSource::invalidPressure, | |||||
- MouseInputSource::invalidOrientation, getEventTime (buttonPressEvent), {}); | |||||
+ MouseInputSource::invalidOrientation, getEventTime (buttonPressEvent)); | |||||
} | |||||
void XWindowSystem::handleButtonPressEvent (LinuxComponentPeer* peer, const XButtonPressedEvent& buttonPressEvent) const | |||||
diff --git a/modules/juce_gui_basics/windows/juce_ComponentPeer.h b/modules/juce_gui_basics/windows/juce_ComponentPeer.h | |||||
index 691e5679b..ed4f3c199 100644 | |||||
--- a/modules/juce_gui_basics/windows/juce_ComponentPeer.h | |||||
+++ b/modules/juce_gui_basics/windows/juce_ComponentPeer.h | |||||
@@ -321,7 +321,7 @@ public: | |||||
//============================================================================== | |||||
void handleMouseEvent (MouseInputSource::InputSourceType type, Point<float> positionWithinPeer, ModifierKeys newMods, float pressure, | |||||
- float orientation, int64 time, PenDetails pen = {}, int touchIndex = 0); | |||||
+ float orientation, int64 time, PenDetails pen = PenDetails(), int touchIndex = 0); | |||||
void handleMouseWheel (MouseInputSource::InputSourceType type, Point<float> positionWithinPeer, | |||||
int64 time, const MouseWheelDetails&, int touchIndex = 0); | |||||
diff --git a/modules/juce_gui_extra/juce_gui_extra.cpp b/modules/juce_gui_extra/juce_gui_extra.cpp | |||||
index 9cf367411..d42555e13 100644 | |||||
--- a/modules/juce_gui_extra/juce_gui_extra.cpp | |||||
+++ b/modules/juce_gui_extra/juce_gui_extra.cpp | |||||
@@ -136,7 +136,9 @@ | |||||
#include "misc/juce_PushNotifications.cpp" | |||||
#include "misc/juce_RecentlyOpenedFilesList.cpp" | |||||
#include "misc/juce_SplashScreen.cpp" | |||||
+#if !JUCE_MAC || MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8 | |||||
#include "misc/juce_SystemTrayIconComponent.cpp" | |||||
+#endif | |||||
#include "misc/juce_LiveConstantEditor.cpp" | |||||
#include "misc/juce_AnimatedAppComponent.cpp" | |||||
@@ -146,7 +148,9 @@ | |||||
#if JUCE_MAC | |||||
#include "native/juce_mac_NSViewComponent.mm" | |||||
#include "native/juce_mac_AppleRemote.mm" | |||||
- #include "native/juce_mac_SystemTrayIcon.cpp" | |||||
+ #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8 | |||||
+ #include "native/juce_mac_SystemTrayIcon.cpp" | |||||
+ #endif | |||||
#endif | |||||
#if JUCE_IOS | |||||
diff --git a/modules/juce_gui_extra/juce_gui_extra.h b/modules/juce_gui_extra/juce_gui_extra.h | |||||
index bcec491c9..062bde636 100644 | |||||
--- a/modules/juce_gui_extra/juce_gui_extra.h | |||||
+++ b/modules/juce_gui_extra/juce_gui_extra.h | |||||
@@ -115,7 +115,9 @@ | |||||
#include "misc/juce_PushNotifications.h" | |||||
#include "misc/juce_RecentlyOpenedFilesList.h" | |||||
#include "misc/juce_SplashScreen.h" | |||||
+#if !JUCE_MAC || MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8 | |||||
#include "misc/juce_SystemTrayIconComponent.h" | |||||
+#endif | |||||
#include "misc/juce_WebBrowserComponent.h" | |||||
#include "misc/juce_LiveConstantEditor.h" | |||||
#include "misc/juce_AnimatedAppComponent.h" | |||||
diff --git a/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp b/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp | |||||
index 9786c0875..34695b5e1 100644 | |||||
--- a/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp | |||||
+++ b/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp | |||||
@@ -157,7 +157,7 @@ void RecentlyOpenedFilesList::forgetRecentFileNatively (const File& file) | |||||
// from the recent list, so we clear them all and add them back excluding | |||||
// the specified file | |||||
- auto sharedDocController = [NSDocumentController sharedDocumentController]; | |||||
+ NSDocumentController* sharedDocController = [NSDocumentController sharedDocumentController]; | |||||
auto recentDocumentURLs = [sharedDocController recentDocumentURLs]; | |||||
[sharedDocController clearRecentDocuments: nil]; |
@@ -1,10 +1,10 @@ | |||||
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 19f1d7ac7..8ffe16b06 100644 | |||||
index ed6688693..ba64e8b2c 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 | ||||
@@ -25,7 +25,7 @@ | |||||
@@ -18,7 +18,7 @@ | |||||
#if JUCE_PLUGINHOST_LADSPA && JUCE_LINUX | |||||
#if JUCE_PLUGINHOST_LADSPA && (JUCE_LINUX || JUCE_BSD) | |||||
-#include <ladspa.h> | -#include <ladspa.h> | ||||
+#include "ladspa.h" | +#include "ladspa.h" | ||||
@@ -1,8 +1,8 @@ | |||||
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp | diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp | ||||
index b980441c9..670cb3969 100644 | |||||
index 099bce14e..fd71901db 100644 | |||||
--- a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp | --- a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp | ||||
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp | +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp | ||||
@@ -40,8 +40,6 @@ AudioProcessorEditor::AudioProcessorEditor (AudioProcessor* p) noexcept : proce | |||||
@@ -33,8 +33,6 @@ AudioProcessorEditor::AudioProcessorEditor (AudioProcessor* p) noexcept : proce | |||||
AudioProcessorEditor::~AudioProcessorEditor() | AudioProcessorEditor::~AudioProcessorEditor() | ||||
{ | { | ||||
@@ -11,7 +11,7 @@ index b980441c9..670cb3969 100644 | |||||
// if this fails, then the wrapper hasn't called editorBeingDeleted() on the | // if this fails, then the wrapper hasn't called editorBeingDeleted() on the | ||||
// filter for some reason.. | // filter for some reason.. | ||||
jassert (processor.getActiveEditor() != this); | jassert (processor.getActiveEditor() != this); | ||||
@@ -56,23 +54,6 @@ void AudioProcessorEditor::hostMIDIControllerIsAvailable (bool) { | |||||
@@ -49,23 +47,6 @@ void AudioProcessorEditor::hostMIDIControllerIsAvailable (bool) { | |||||
void AudioProcessorEditor::initialise() | void AudioProcessorEditor::initialise() | ||||
{ | { | ||||
@@ -32,50 +32,50 @@ index b980441c9..670cb3969 100644 | |||||
- | - | ||||
- // END SECTION A | - // END SECTION A | ||||
- | - | ||||
resizable = false; | |||||
attachConstrainer (&defaultConstrainer); | attachConstrainer (&defaultConstrainer); | ||||
resizeListener.reset (new AudioProcessorEditorListener (*this)); | |||||
addComponentListener (resizeListener.get()); | |||||
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h | diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h | ||||
index ff694b78f..07d3765f4 100644 | |||||
index 9824bf8b6..81a91d8ff 100644 | |||||
--- a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h | --- a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h | ||||
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h | +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h | ||||
@@ -206,7 +206,6 @@ private: | |||||
bool resizable; | |||||
@@ -228,7 +228,6 @@ private: | |||||
ComponentBoundsConstrainer defaultConstrainer; | ComponentBoundsConstrainer defaultConstrainer; | ||||
ComponentBoundsConstrainer* constrainer = {}; | |||||
ComponentBoundsConstrainer* constrainer = nullptr; | |||||
AudioProcessorEditorHostContext* hostContext = nullptr; | |||||
- Component::SafePointer<Component> splashScreen; | - Component::SafePointer<Component> splashScreen; | ||||
AffineTransform hostScaleTransform; | AffineTransform hostScaleTransform; | ||||
JUCE_DECLARE_NON_COPYABLE (AudioProcessorEditor) | JUCE_DECLARE_NON_COPYABLE (AudioProcessorEditor) | ||||
diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp | diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp | ||||
index 056ff591b..a4d798606 100644 | |||||
index d9697568b..2727a4507 100644 | |||||
--- a/modules/juce_gui_basics/juce_gui_basics.cpp | --- a/modules/juce_gui_basics/juce_gui_basics.cpp | ||||
+++ b/modules/juce_gui_basics/juce_gui_basics.cpp | +++ b/modules/juce_gui_basics/juce_gui_basics.cpp | ||||
@@ -218,7 +218,6 @@ namespace juce | |||||
#include "application/juce_Application.cpp" | |||||
@@ -242,7 +242,6 @@ namespace juce | |||||
#include "misc/juce_BubbleComponent.cpp" | #include "misc/juce_BubbleComponent.cpp" | ||||
#include "misc/juce_DropShadower.cpp" | #include "misc/juce_DropShadower.cpp" | ||||
#include "misc/juce_FocusOutline.cpp" | |||||
-#include "misc/juce_JUCESplashScreen.cpp" | -#include "misc/juce_JUCESplashScreen.cpp" | ||||
#include "layout/juce_FlexBox.cpp" | #include "layout/juce_FlexBox.cpp" | ||||
#include "layout/juce_GridItem.cpp" | #include "layout/juce_GridItem.cpp" | ||||
diff --git a/modules/juce_gui_basics/juce_gui_basics.h b/modules/juce_gui_basics/juce_gui_basics.h | diff --git a/modules/juce_gui_basics/juce_gui_basics.h b/modules/juce_gui_basics/juce_gui_basics.h | ||||
index 729461282..a4873d04b 100644 | |||||
index 57d10f3ee..8878ae4c6 100644 | |||||
--- a/modules/juce_gui_basics/juce_gui_basics.h | --- a/modules/juce_gui_basics/juce_gui_basics.h | ||||
+++ b/modules/juce_gui_basics/juce_gui_basics.h | +++ b/modules/juce_gui_basics/juce_gui_basics.h | ||||
@@ -250,7 +250,6 @@ namespace juce | |||||
#include "menus/juce_BurgerMenuComponent.h" | |||||
@@ -257,7 +257,6 @@ namespace juce | |||||
#include "buttons/juce_ToolbarButton.h" | #include "buttons/juce_ToolbarButton.h" | ||||
#include "misc/juce_DropShadower.h" | #include "misc/juce_DropShadower.h" | ||||
#include "misc/juce_FocusOutline.h" | |||||
-#include "misc/juce_JUCESplashScreen.h" | -#include "misc/juce_JUCESplashScreen.h" | ||||
#include "widgets/juce_TreeView.h" | #include "widgets/juce_TreeView.h" | ||||
#include "windows/juce_TopLevelWindow.h" | #include "windows/juce_TopLevelWindow.h" | ||||
#include "windows/juce_AlertWindow.h" | |||||
#include "windows/juce_MessageBoxOptions.h" | |||||
diff --git a/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp b/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp | diff --git a/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp b/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp | ||||
index dc3c7279a..d1d20d6c7 100644 | |||||
index 3904da287..dea49aa70 100644 | |||||
--- a/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp | --- a/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp | ||||
+++ b/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp | +++ b/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp | ||||
@@ -41,8 +41,6 @@ ResizableWindow::ResizableWindow (const String& name, Colour bkgnd, bool shouldA | |||||
@@ -34,8 +34,6 @@ ResizableWindow::ResizableWindow (const String& name, Colour bkgnd, bool shouldA | |||||
ResizableWindow::~ResizableWindow() | ResizableWindow::~ResizableWindow() | ||||
{ | { | ||||
@@ -84,7 +84,7 @@ index dc3c7279a..d1d20d6c7 100644 | |||||
// Don't delete or remove the resizer components yourself! They're managed by the | // Don't delete or remove the resizer components yourself! They're managed by the | ||||
// ResizableWindow, and you should leave them alone! You may have deleted them | // ResizableWindow, and you should leave them alone! You may have deleted them | ||||
// accidentally by careless use of deleteAllChildren()..? | // accidentally by careless use of deleteAllChildren()..? | ||||
@@ -60,27 +58,6 @@ ResizableWindow::~ResizableWindow() | |||||
@@ -53,27 +51,6 @@ ResizableWindow::~ResizableWindow() | |||||
void ResizableWindow::initialise (const bool shouldAddToDesktop) | void ResizableWindow::initialise (const bool shouldAddToDesktop) | ||||
{ | { | ||||
@@ -113,10 +113,10 @@ index dc3c7279a..d1d20d6c7 100644 | |||||
lastNonFullScreenPos.setBounds (50, 50, 256, 256); | lastNonFullScreenPos.setBounds (50, 50, 256, 256); | ||||
diff --git a/modules/juce_gui_basics/windows/juce_ResizableWindow.h b/modules/juce_gui_basics/windows/juce_ResizableWindow.h | diff --git a/modules/juce_gui_basics/windows/juce_ResizableWindow.h b/modules/juce_gui_basics/windows/juce_ResizableWindow.h | ||||
index d67303595..e59f620c1 100644 | |||||
index d9e4e7fcf..310767c0f 100644 | |||||
--- a/modules/juce_gui_basics/windows/juce_ResizableWindow.h | --- a/modules/juce_gui_basics/windows/juce_ResizableWindow.h | ||||
+++ b/modules/juce_gui_basics/windows/juce_ResizableWindow.h | +++ b/modules/juce_gui_basics/windows/juce_ResizableWindow.h | ||||
@@ -383,7 +383,7 @@ protected: | |||||
@@ -384,7 +384,7 @@ protected: | |||||
private: | private: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -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 082a5697a..c79ca18ea 100644 | |||||
index 661f90d60..f3a8f061b 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 | ||||
@@ -600,12 +600,39 @@ File juce_getExecutableFile() | |||||
@@ -611,12 +611,39 @@ File juce_getExecutableFile() | |||||
auto localSymbol = (void*) juce_getExecutableFile; | auto localSymbol = (void*) juce_getExecutableFile; | ||||
dladdr (localSymbol, &exeInfo); | dladdr (localSymbol, &exeInfo); | ||||
@@ -1,16 +1,15 @@ | |||||
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 d2a302e3e..3dc4602ce 100644 | |||||
index f661e4ab4..dce73fcc2 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 | ||||
@@ -211,15 +211,21 @@ bool Process::openDocument (const String& fileName, const String& parameters) | |||||
@@ -223,15 +223,21 @@ bool Process::openDocument (const String& fileName, const String& parameters) | |||||
const char* const argv[4] = { "/bin/sh", "-c", cmdString.toUTF8(), nullptr }; | |||||
const char* const argv[] = { "/bin/sh", "-c", cmdString.toUTF8(), nullptr }; | |||||
- auto cpid = fork(); | |||||
+#if JUCE_USE_VFORK | +#if JUCE_USE_VFORK | ||||
+ const auto cpid = vfork(); | + const auto cpid = vfork(); | ||||
+#else | +#else | ||||
+ const auto cpid = fork(); | |||||
const auto cpid = fork(); | |||||
+#endif | +#endif | ||||
if (cpid == 0) | if (cpid == 0) | ||||
@@ -22,13 +21,13 @@ index d2a302e3e..3dc4602ce 100644 | |||||
// Child process | // Child process | ||||
- execve (argv[0], (char**) argv, environ); | - execve (argv[0], (char**) argv, environ); | ||||
- exit (0); | - exit (0); | ||||
+ if (execvp (argv[0], (char**) argv) < 0) | |||||
+ if (execve (argv[0], (char**) argv, environ) < 0) | |||||
+ _exit (0); | + _exit (0); | ||||
} | } | ||||
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 1a4d07516..f385a089f 100644 | |||||
index aefa76317..066c12cde 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 | ||||
@@ -92,23 +92,22 @@ namespace MacFileHelpers | @@ -92,23 +92,22 @@ namespace MacFileHelpers | ||||
@@ -65,10 +64,10 @@ index 1a4d07516..f385a089f 100644 | |||||
#endif | #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 c79ca18ea..ad46cf390 100644 | |||||
index f3a8f061b..bcd3eab59 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 | ||||
@@ -1104,7 +1104,18 @@ public: | |||||
@@ -1125,7 +1125,18 @@ public: | |||||
if (pipe (pipeHandles) == 0) | if (pipe (pipeHandles) == 0) | ||||
{ | { | ||||
@@ -88,7 +87,7 @@ index c79ca18ea..ad46cf390 100644 | |||||
if (result < 0) | if (result < 0) | ||||
{ | { | ||||
@@ -1113,6 +1124,7 @@ public: | |||||
@@ -1134,6 +1145,7 @@ public: | |||||
} | } | ||||
else if (result == 0) | else if (result == 0) | ||||
{ | { | ||||
@@ -96,7 +95,7 @@ index c79ca18ea..ad46cf390 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 | ||||
@@ -1127,17 +1139,10 @@ public: | |||||
@@ -1148,17 +1160,10 @@ public: | |||||
dup2 (open ("/dev/null", O_WRONLY), STDERR_FILENO); | dup2 (open ("/dev/null", O_WRONLY), STDERR_FILENO); | ||||
close (pipeHandles[1]); | close (pipeHandles[1]); | ||||
@@ -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 ad46cf390..13724ba7c 100644 | |||||
index bcd3eab59..eb5fc3300 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 | ||||
@@ -1239,6 +1239,11 @@ public: | |||||
@@ -1260,6 +1260,11 @@ public: | |||||
return 0; | return 0; | ||||
} | } | ||||
@@ -15,10 +15,10 @@ index ad46cf390..13724ba7c 100644 | |||||
int pipeHandle = 0; | int pipeHandle = 0; | ||||
int exitCode = -1; | int exitCode = -1; | ||||
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 4a4148119..1c38ff2cf 100644 | |||||
index 8d15042fe..867e6fd2f 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 | ||||
@@ -477,6 +477,11 @@ public: | |||||
@@ -489,6 +489,11 @@ public: | |||||
return (uint32) exitCode; | return (uint32) exitCode; | ||||
} | } | ||||
@@ -31,7 +31,7 @@ index 4a4148119..1c38ff2cf 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 3b284c25a..31e9c8d94 100644 | |||||
index 1e559b1c9..76f13812f 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() | @@ -81,6 +81,11 @@ String ChildProcess::readAllProcessOutput() | ||||
@@ -47,7 +47,7 @@ index 3b284c25a..31e9c8d94 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 47a26281b..74dbb11ab 100644 | |||||
index 3c5e83bba..71892f8e9 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 | ||||
@@ -101,6 +101,8 @@ public: | @@ -101,6 +101,8 @@ public: | ||||
@@ -1,8 +1,8 @@ | |||||
diff --git a/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp b/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp | diff --git a/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp b/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp | ||||
index b799ee2e4..803740c63 100644 | |||||
index 4d303d74e..3cf9d34e1 100644 | |||||
--- a/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp | --- a/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp | ||||
+++ b/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp | +++ b/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp | ||||
@@ -26,6 +26,7 @@ | |||||
@@ -19,6 +19,7 @@ | |||||
namespace juce | namespace juce | ||||
{ | { | ||||
@@ -10,7 +10,7 @@ index b799ee2e4..803740c63 100644 | |||||
static bool exeIsAvailable (String executable) | static bool exeIsAvailable (String executable) | ||||
{ | { | ||||
ChildProcess child; | ChildProcess child; | ||||
@@ -245,10 +246,11 @@ private: | |||||
@@ -248,10 +249,11 @@ private: | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Native) | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Native) | ||||
}; | }; | ||||
@@ -23,12 +23,12 @@ index b799ee2e4..803740c63 100644 | |||||
return false; | return false; | ||||
#else | #else | ||||
static bool canUseNativeBox = exeIsAvailable ("zenity") || exeIsAvailable ("kdialog"); | static bool canUseNativeBox = exeIsAvailable ("zenity") || exeIsAvailable ("kdialog"); | ||||
@@ -258,7 +260,11 @@ bool FileChooser::isPlatformDialogAvailable() | |||||
@@ -261,7 +263,11 @@ bool FileChooser::isPlatformDialogAvailable() | |||||
FileChooser::Pimpl* FileChooser::showPlatformDialog (FileChooser& owner, int flags, FilePreviewComponent*) | |||||
std::shared_ptr<FileChooser::Pimpl> FileChooser::showPlatformDialog (FileChooser& owner, int flags, FilePreviewComponent*) | |||||
{ | { | ||||
+#if JUCE_MODAL_LOOPS_PERMITTED | +#if JUCE_MODAL_LOOPS_PERMITTED | ||||
return new Native (owner, flags); | |||||
return std::make_shared<Native> (owner, flags); | |||||
+#else | +#else | ||||
+ return nullptr; | + return nullptr; | ||||
+#endif | +#endif | ||||
@@ -1,8 +1,21 @@ | |||||
diff --git a/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp b/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp | |||||
index 926753296..7906895e7 100644 | |||||
--- a/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp | |||||
+++ b/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp | |||||
@@ -835,7 +835,7 @@ void MainHostWindow::showAudioSettings() | |||||
o.componentToCentreAround = this; | |||||
o.dialogBackgroundColour = getLookAndFeel().findColour (ResizableWindow::backgroundColourId); | |||||
o.escapeKeyTriggersCloseButton = true; | |||||
- o.useNativeTitleBar = false; | |||||
+ o.useNativeTitleBar = true; | |||||
o.resizable = false; | |||||
auto* w = o.create(); | |||||
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 ea2675d59..92bf09e16 100644 | |||||
index eed3b6dbf..007047557 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 | ||||
@@ -131,7 +131,8 @@ void DialogWindow::showDialog (const String& dialogTitle, | |||||
@@ -127,7 +127,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 +25,7 @@ index ea2675d59..92bf09e16 100644 | |||||
{ | { | ||||
LaunchOptions o; | LaunchOptions o; | ||||
o.dialogTitle = dialogTitle; | o.dialogTitle = dialogTitle; | ||||
@@ -139,9 +140,9 @@ void DialogWindow::showDialog (const String& dialogTitle, | |||||
@@ -135,9 +136,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 +36,7 @@ index ea2675d59..92bf09e16 100644 | |||||
o.launchAsync(); | o.launchAsync(); | ||||
} | } | ||||
@@ -153,7 +154,8 @@ int DialogWindow::showModalDialog (const String& dialogTitle, | |||||
@@ -149,7 +150,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 +46,7 @@ index ea2675d59..92bf09e16 100644 | |||||
{ | { | ||||
LaunchOptions o; | LaunchOptions o; | ||||
o.dialogTitle = dialogTitle; | o.dialogTitle = dialogTitle; | ||||
@@ -161,9 +163,9 @@ int DialogWindow::showModalDialog (const String& dialogTitle, | |||||
@@ -157,9 +159,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,26 +58,52 @@ index ea2675d59..92bf09e16 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 a10211525..de9ef2f4b 100644 | |||||
index 0a343619f..8f01f421d 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 | ||||
@@ -193,7 +193,8 @@ public: | |||||
@@ -192,7 +192,8 @@ public: | |||||
Colour backgroundColour, | Colour backgroundColour, | ||||
bool escapeKeyTriggersCloseButton, | bool escapeKeyTriggersCloseButton, | ||||
bool shouldBeResizable = false, | bool shouldBeResizable = false, | ||||
- bool useBottomRightCornerResizer = false); | - bool useBottomRightCornerResizer = false); | ||||
+ bool useBottomRightCornerResizer = false, | + bool useBottomRightCornerResizer = false, | ||||
+ bool useNativeTitleBar = false); | |||||
+ bool useNativeTitleBar = true); | |||||
#if JUCE_MODAL_LOOPS_PERMITTED || DOXYGEN | |||||
#if JUCE_MODAL_LOOPS_PERMITTED | |||||
/** Easy way of quickly showing a dialog box containing a given component. | /** Easy way of quickly showing a dialog box containing a given component. | ||||
@@ -239,7 +240,8 @@ public: | |||||
@@ -238,7 +239,8 @@ public: | |||||
Colour backgroundColour, | Colour backgroundColour, | ||||
bool escapeKeyTriggersCloseButton, | bool escapeKeyTriggersCloseButton, | ||||
bool shouldBeResizable = false, | bool shouldBeResizable = false, | ||||
- bool useBottomRightCornerResizer = false); | - bool useBottomRightCornerResizer = false); | ||||
+ bool useBottomRightCornerResizer = false, | + bool useBottomRightCornerResizer = false, | ||||
+ bool useNativeTitleBar = false); | |||||
+ bool useNativeTitleBar = true); | |||||
#endif | #endif | ||||
diff --git a/modules/juce_gui_basics/windows/juce_TopLevelWindow.h b/modules/juce_gui_basics/windows/juce_TopLevelWindow.h | |||||
index 75620cb01..89c9477bb 100644 | |||||
--- a/modules/juce_gui_basics/windows/juce_TopLevelWindow.h | |||||
+++ b/modules/juce_gui_basics/windows/juce_TopLevelWindow.h | |||||
@@ -147,7 +147,7 @@ protected: | |||||
private: | |||||
friend class TopLevelWindowManager; | |||||
friend class ResizableWindow; | |||||
- bool useDropShadow = true, useNativeTitleBar = false, isCurrentlyActive = false; | |||||
+ bool useDropShadow = true, useNativeTitleBar = true, isCurrentlyActive = false; | |||||
std::unique_ptr<DropShadower> shadower; | |||||
std::unique_ptr<AccessibilityHandler> createAccessibilityHandler() override; | |||||
diff --git a/modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp b/modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp | |||||
index e94c544b5..70b70d386 100644 | |||||
--- a/modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp | |||||
+++ b/modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp | |||||
@@ -85,7 +85,7 @@ void PreferencesPanel::showInDialogBox (const String& dialogTitle, int dialogWid | |||||
o.dialogTitle = dialogTitle; | |||||
o.dialogBackgroundColour = backgroundColour; | |||||
o.escapeKeyTriggersCloseButton = false; | |||||
- o.useNativeTitleBar = false; | |||||
+ o.useNativeTitleBar = true; | |||||
o.resizable = false; | |||||
o.launchAsync(); |
@@ -1,8 +1,8 @@ | |||||
diff --git a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp | diff --git a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp | ||||
index 6ad01c68a..490a3a792 100644 | |||||
index 165ca28c6..f3cf5c276 100644 | |||||
--- a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp | --- a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp | ||||
+++ b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp | +++ b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp | ||||
@@ -2804,10 +2804,14 @@ void XWindowSystem::setWindowType (::Window windowH, int styleFlags) const | |||||
@@ -2935,10 +2935,14 @@ void XWindowSystem::setWindowType (::Window windowH, int styleFlags) const | |||||
if (atoms.windowType != None) | if (atoms.windowType != None) | ||||
{ | { | ||||
@@ -1,16 +0,0 @@ | |||||
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h | |||||
index 13724ba7c..f8892081c 100644 | |||||
--- a/modules/juce_core/native/juce_posix_SharedCode.h | |||||
+++ b/modules/juce_core/native/juce_posix_SharedCode.h | |||||
@@ -989,7 +989,11 @@ bool Thread::setThreadPriority (void* handle, int priority) | |||||
if (pthread_getschedparam ((pthread_t) handle, &policy, ¶m) != 0) | |||||
return false; | |||||
+ #if JUCE_LINUX | |||||
+ policy = priority < 9 ? SCHED_OTHER : SCHED_RR; | |||||
+ #else | |||||
policy = priority == 0 ? SCHED_OTHER : SCHED_RR; | |||||
+ #endif | |||||
const int minPriority = sched_get_priority_min (policy); | |||||
const int maxPriority = sched_get_priority_max (policy); |
@@ -0,0 +1,14 @@ | |||||
diff --git a/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h b/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h | |||||
index a272fee76..5b484f4e4 100644 | |||||
--- a/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h | |||||
+++ b/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h | |||||
@@ -56,7 +56,9 @@ typedef AudioComponentInstance AudioUnit; | |||||
} | |||||
@endcode | |||||
*/ | |||||
+#ifndef _VESTIGE_H | |||||
struct AEffect; | |||||
+#endif | |||||
//============================================================================== | |||||
namespace juce |
@@ -1,8 +1,8 @@ | |||||
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 ae60fde15..dbad562ef 100644 | |||||
index 361f13d9a..c2710aa5c 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 | ||||
@@ -1116,6 +1116,11 @@ public: | |||||
@@ -1111,6 +1111,11 @@ public: | |||||
/** This method is called when the layout of the audio processor changes. */ | /** This method is called when the layout of the audio processor changes. */ | ||||
virtual void processorLayoutsChanged(); | virtual void processorLayoutsChanged(); | ||||
@@ -14,11 +14,3 @@ index ae60fde15..dbad562ef 100644 | |||||
//============================================================================== | //============================================================================== | ||||
/** Adds a listener that will be called when an aspect of this processor changes. */ | /** Adds a listener that will be called when an aspect of this processor changes. */ | ||||
virtual void addListener (AudioProcessorListener* newListener); | virtual void addListener (AudioProcessorListener* newListener); | ||||
@@ -1200,6 +1205,7 @@ public: | |||||
wrapperType_AudioUnitv3, | |||||
wrapperType_RTAS, | |||||
wrapperType_AAX, | |||||
+ wrapperType_LV2, | |||||
wrapperType_Standalone, | |||||
wrapperType_Unity | |||||
}; |
@@ -1,8 +1,8 @@ | |||||
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 94f6bf569..ddbe6fd65 100644 | |||||
index 652665434..243e194fc 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 | ||||
@@ -294,9 +294,6 @@ public: | |||||
@@ -246,9 +246,6 @@ public: | |||||
// You must at least have some channels | // You must at least have some channels | ||||
jassert (processor->isMidiEffect() || (maxNumInChannels > 0 || maxNumOutChannels > 0)); | jassert (processor->isMidiEffect() || (maxNumInChannels > 0 || maxNumOutChannels > 0)); | ||||
@@ -1,8 +1,8 @@ | |||||
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 7e2122580..cff9b7a88 100644 | |||||
index 243e194fc..a2b0286fb 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 | ||||
@@ -1841,7 +1841,7 @@ private: | |||||
@@ -1853,7 +1853,7 @@ private: | |||||
pointer_sized_int handleGetPlugInName (VstOpCodeArguments args) | pointer_sized_int handleGetPlugInName (VstOpCodeArguments args) | ||||
{ | { | ||||
@@ -1,17 +0,0 @@ | |||||
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 ebc9325ca..cabbbcf13 100644 | |||||
--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp | |||||
+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp | |||||
@@ -203,11 +203,11 @@ struct SharedMessageThread : public Thread | |||||
void run() override | |||||
{ | |||||
initialiseJuce_GUI(); | |||||
- initialised = true; | |||||
MessageManager::getInstance()->setCurrentThreadAsMessageThread(); | |||||
XWindowSystem::getInstance(); | |||||
+ initialised = true; | |||||
while ((! threadShouldExit()) && MessageManager::getInstance()->runDispatchLoopUntil (250)) | |||||
{} |
@@ -1,20 +0,0 @@ | |||||
diff --git a/modules/juce_events/messages/juce_MessageManager.h b/modules/juce_events/messages/juce_MessageManager.h | |||||
index ae7231101..fff5b9794 100644 | |||||
--- a/modules/juce_events/messages/juce_MessageManager.h | |||||
+++ b/modules/juce_events/messages/juce_MessageManager.h | |||||
@@ -311,6 +311,7 @@ public: | |||||
// Internal methods - do not use! | |||||
void deliverBroadcastMessage (const String&); | |||||
~MessageManager() noexcept; | |||||
+ static bool dispatchNextMessageOnSystemQueue (bool returnIfNoPendingMessages); | |||||
#endif | |||||
private: | |||||
@@ -333,7 +334,6 @@ private: | |||||
static void* exitModalLoopCallback (void*); | |||||
static void doPlatformSpecificInitialisation(); | |||||
static void doPlatformSpecificShutdown(); | |||||
- static bool dispatchNextMessageOnSystemQueue (bool returnIfNoPendingMessages); | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MessageManager) | |||||
}; |
@@ -1,17 +1,136 @@ | |||||
diff --git a/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp b/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp | |||||
index e9401a981..6c4d12546 100644 | |||||
--- a/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp | |||||
+++ b/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp | |||||
@@ -32,12 +32,17 @@ | |||||
#include <juce_audio_plugin_client/juce_audio_plugin_client.h> | |||||
#include <juce_audio_plugin_client/utility/juce_CheckSettingMacros.h> | |||||
-#include <juce_audio_plugin_client/utility/juce_LinuxMessageThread.h> | |||||
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
+ #include <juce_audio_plugin_client/utility/juce_LinuxMessageThread.h> | |||||
+#endif | |||||
#include <juce_audio_processors/utilities/juce_FlagCache.h> | |||||
#include <juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp> | |||||
-#include "JuceLV2Defines.h" | |||||
+#ifndef JucePlugin_LV2URI | |||||
+ #include "JuceLV2Defines.h" | |||||
+#endif | |||||
+ | |||||
#include <juce_audio_processors/format_types/juce_LV2Common.h> | |||||
#include <fstream> | |||||
@@ -679,6 +684,7 @@ public: | |||||
return LV2_STATE_SUCCESS; | |||||
} | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
std::unique_ptr<AudioProcessorEditor> createEditor() | |||||
{ | |||||
return std::unique_ptr<AudioProcessorEditor> (processor->createEditorIfNeeded()); | |||||
@@ -688,6 +694,7 @@ public: | |||||
{ | |||||
processor->editorBeingDeleted (editor); | |||||
} | |||||
+ #endif | |||||
static std::unique_ptr<AudioProcessor> createProcessorInstance() | |||||
{ | |||||
@@ -745,7 +752,7 @@ private: | |||||
ScopedJuceInitialiser_GUI scopedJuceInitialiser; | |||||
- #if JUCE_LINUX || JUCE_BSD | |||||
+ #if (JUCE_LINUX || JUCE_BSD) && ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
SharedResourcePointer<MessageThread> messageThread; | |||||
#endif | |||||
@@ -828,6 +835,7 @@ private: | |||||
"\tlv2:binary <" << libraryPath.getFileName() << "> ;\n" | |||||
"\trdfs:seeAlso <dsp.ttl> .\n"; | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
if (proc.hasEditor()) | |||||
{ | |||||
#if JUCE_MAC | |||||
@@ -847,6 +855,7 @@ private: | |||||
"\trdfs:seeAlso <ui.ttl> .\n" | |||||
"\n"; | |||||
} | |||||
+ #endif | |||||
for (auto i = 0, end = proc.getNumPrograms(); i < end; ++i) | |||||
{ | |||||
@@ -1073,8 +1082,10 @@ private: | |||||
os << "<" JucePlugin_LV2URI ">\n"; | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
if (proc.hasEditor()) | |||||
os << "\tui:ui <" << JucePluginLV2UriUi << "> ;\n"; | |||||
+ #endif | |||||
const auto versionParts = StringArray::fromTokens (JucePlugin_VersionString, ".", ""); | |||||
@@ -1270,6 +1281,7 @@ private: | |||||
static Result writeUiTtl (AudioProcessor& proc, const File& libraryPath) | |||||
{ | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
if (! proc.hasEditor()) | |||||
return Result::ok(); | |||||
@@ -1307,6 +1319,7 @@ private: | |||||
"\topts:supportedOption\n" | |||||
"\t\tui:scaleFactor ,\n" | |||||
"\t\tparam:sampleRate .\n"; | |||||
+ #endif | |||||
return Result::ok(); | |||||
} | |||||
@@ -1436,6 +1449,7 @@ static lv2_shared::NumericAtomParser::ParseResult<float> findScaleFactor (const | |||||
return parser.parseNumericOption<float> (scaleFactorOption); | |||||
} | |||||
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
class LV2UIInstance : private Component, | |||||
private ComponentListener | |||||
{ | |||||
@@ -1749,6 +1763,7 @@ LV2_SYMBOL_EXPORT const LV2UI_Descriptor* lv2ui_descriptor (uint32_t index) | |||||
return &descriptor; | |||||
} | |||||
+#endif | |||||
} | |||||
} | |||||
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 43ad88e1b..149154804 100644 | |||||
index 80914cc0a..ce5e329d2 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 | ||||
@@ -47,7 +47,7 @@ | |||||
@@ -27,7 +27,9 @@ | |||||
#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 | |||||
#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1 | |||||
-#define JUCE_GUI_BASICS_INCLUDE_XHEADERS 1 | |||||
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
+ #define JUCE_GUI_BASICS_INCLUDE_XHEADERS 1 | |||||
+#endif | |||||
#define JUCE_GUI_BASICS_INCLUDE_SCOPED_THREAD_DPI_AWARENESS_SETTER 1 | |||||
#define JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS 1 | |||||
@@ -43,7 +45,7 @@ | |||||
#endif | #endif | ||||
#endif | #endif | ||||
-#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && JUCE_LINUX | |||||
+#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && JUCE_LINUX && ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
-#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && (JUCE_LINUX || JUCE_BSD) | |||||
+#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && (JUCE_LINUX || JUCE_BSD) && ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
#include <X11/Xlib.h> | #include <X11/Xlib.h> | ||||
#include <X11/Xutil.h> | #include <X11/Xutil.h> | ||||
#include <sys/utsname.h> | #include <sys/utsname.h> | ||||
@@ -230,9 +230,11 @@ struct AutoResizingNSViewComponentWithParent : public AutoResizingNSViewCompone | |||||
@@ -202,17 +204,21 @@ private: | |||||
#include "format_types/juce_LegacyAudioParameter.cpp" | #include "format_types/juce_LegacyAudioParameter.cpp" | ||||
#include "processors/juce_AudioProcessor.cpp" | #include "processors/juce_AudioProcessor.cpp" | ||||
#include "processors/juce_AudioPluginInstance.cpp" | #include "processors/juce_AudioPluginInstance.cpp" | ||||
@@ -25,11 +144,80 @@ index 43ad88e1b..149154804 100644 | |||||
#include "processors/juce_PluginDescription.cpp" | #include "processors/juce_PluginDescription.cpp" | ||||
#include "format_types/juce_LADSPAPluginFormat.cpp" | #include "format_types/juce_LADSPAPluginFormat.cpp" | ||||
#include "format_types/juce_VSTPluginFormat.cpp" | #include "format_types/juce_VSTPluginFormat.cpp" | ||||
#include "format_types/juce_VST3PluginFormat.cpp" | |||||
#include "format_types/juce_AudioUnitPluginFormat.mm" | |||||
-#include "scanning/juce_KnownPluginList.cpp" | |||||
-#include "scanning/juce_PluginDirectoryScanner.cpp" | |||||
-#include "scanning/juce_PluginListComponent.cpp" | |||||
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
+ #include "scanning/juce_KnownPluginList.cpp" | |||||
+ #include "scanning/juce_PluginDirectoryScanner.cpp" | |||||
+ #include "scanning/juce_PluginListComponent.cpp" | |||||
+#endif | |||||
#include "processors/juce_AudioProcessorParameterGroup.cpp" | |||||
#include "utilities/juce_AudioProcessorParameterWithID.cpp" | |||||
#include "utilities/juce_RangedAudioParameter.cpp" | |||||
@@ -220,7 +226,9 @@ private: | |||||
#include "utilities/juce_AudioParameterInt.cpp" | |||||
#include "utilities/juce_AudioParameterBool.cpp" | |||||
#include "utilities/juce_AudioParameterChoice.cpp" | |||||
-#include "utilities/juce_ParameterAttachments.cpp" | |||||
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
+ #include "utilities/juce_ParameterAttachments.cpp" | |||||
+#endif | |||||
#include "utilities/juce_AudioProcessorValueTreeState.cpp" | |||||
#include "utilities/juce_PluginHostType.cpp" | |||||
#include "utilities/juce_NativeScaleFactorNotifier.cpp" | |||||
@@ -231,3 +239,8 @@ private: | |||||
#include "format_types/juce_VST3PluginFormat_test.cpp" | |||||
#include "format_types/juce_LV2PluginFormat_test.cpp" | |||||
#endif | |||||
+ | |||||
+#if JUCE_AUDIOPROCESSOR_NO_GUI | |||||
+// commonly used classes in DSP code | |||||
+namespace juce { Colour::Colour(juce::uint32) noexcept {} } | |||||
+#endif | |||||
diff --git a/modules/juce_audio_processors/juce_audio_processors.h b/modules/juce_audio_processors/juce_audio_processors.h | |||||
index 553e3d24b..838167ab5 100644 | |||||
--- a/modules/juce_audio_processors/juce_audio_processors.h | |||||
+++ b/modules/juce_audio_processors/juce_audio_processors.h | |||||
@@ -123,14 +123,18 @@ | |||||
#include "processors/juce_AudioProcessorParameter.h" | |||||
#include "processors/juce_HostedAudioProcessorParameter.h" | |||||
#include "processors/juce_AudioProcessorEditorHostContext.h" | |||||
-#include "processors/juce_AudioProcessorEditor.h" | |||||
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
+ #include "processors/juce_AudioProcessorEditor.h" | |||||
+#endif | |||||
#include "processors/juce_AudioProcessorListener.h" | |||||
#include "processors/juce_AudioProcessorParameterGroup.h" | |||||
#include "processors/juce_AudioProcessor.h" | |||||
#include "processors/juce_PluginDescription.h" | |||||
#include "processors/juce_AudioPluginInstance.h" | |||||
#include "processors/juce_AudioProcessorGraph.h" | |||||
-#include "processors/juce_GenericAudioProcessorEditor.h" | |||||
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
+ #include "processors/juce_GenericAudioProcessorEditor.h" | |||||
+#endif | |||||
#include "format/juce_AudioPluginFormat.h" | |||||
#include "format/juce_AudioPluginFormatManager.h" | |||||
#include "scanning/juce_KnownPluginList.h" | |||||
@@ -148,7 +152,9 @@ | |||||
#include "utilities/juce_AudioParameterInt.h" | |||||
#include "utilities/juce_AudioParameterBool.h" | |||||
#include "utilities/juce_AudioParameterChoice.h" | |||||
-#include "utilities/juce_ParameterAttachments.h" | |||||
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
+ #include "utilities/juce_ParameterAttachments.h" | |||||
+#endif | |||||
#include "utilities/juce_AudioProcessorValueTreeState.h" | |||||
#include "utilities/juce_PluginHostType.h" | |||||
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 040accf2e..df0b6c67b 100644 | |||||
index 6b6921b30..48744f05f 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 | ||||
@@ -51,12 +51,14 @@ AudioProcessor::AudioProcessor (const BusesProperties& ioConfig) | |||||
@@ -43,12 +43,14 @@ AudioProcessor::AudioProcessor (const BusesProperties& ioConfig) | |||||
AudioProcessor::~AudioProcessor() | AudioProcessor::~AudioProcessor() | ||||
{ | { | ||||
@@ -44,7 +232,7 @@ index 040accf2e..df0b6c67b 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 | ||||
@@ -826,6 +828,7 @@ void AudioProcessor::audioIOChanged (bool busNumberChanged, bool channelNumChang | |||||
@@ -867,6 +869,7 @@ void AudioProcessor::audioIOChanged (bool busNumberChanged, bool channelNumChang | |||||
processorLayoutsChanged(); | processorLayoutsChanged(); | ||||
} | } | ||||
@@ -52,7 +240,7 @@ index 040accf2e..df0b6c67b 100644 | |||||
//============================================================================== | //============================================================================== | ||||
void AudioProcessor::editorBeingDeleted (AudioProcessorEditor* const editor) noexcept | void AudioProcessor::editorBeingDeleted (AudioProcessorEditor* const editor) noexcept | ||||
{ | { | ||||
@@ -862,6 +865,7 @@ AudioProcessorEditor* AudioProcessor::createEditorIfNeeded() | |||||
@@ -903,6 +906,7 @@ AudioProcessorEditor* AudioProcessor::createEditorIfNeeded() | |||||
return ed; | return ed; | ||||
} | } | ||||
@@ -61,10 +249,10 @@ index 040accf2e..df0b6c67b 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 f72a4ed3f..849b77d3c 100644 | |||||
index c2710aa5c..8b15f023f 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 | ||||
@@ -926,6 +926,7 @@ public: | |||||
@@ -921,6 +921,7 @@ public: | |||||
*/ | */ | ||||
virtual void setNonRealtime (bool isNonRealtime) noexcept; | virtual void setNonRealtime (bool isNonRealtime) noexcept; | ||||
@@ -72,7 +260,7 @@ index f72a4ed3f..849b77d3c 100644 | |||||
//============================================================================== | //============================================================================== | ||||
/** Creates the processor's GUI. | /** Creates the processor's GUI. | ||||
@@ -975,6 +976,7 @@ public: | |||||
@@ -970,6 +971,7 @@ public: | |||||
This may call createEditor() internally to create the component. | This may call createEditor() internally to create the component. | ||||
*/ | */ | ||||
AudioProcessorEditor* createEditorIfNeeded(); | AudioProcessorEditor* createEditorIfNeeded(); | ||||
@@ -80,9 +268,9 @@ index f72a4ed3f..849b77d3c 100644 | |||||
//============================================================================== | //============================================================================== | ||||
/** Returns the default number of steps for a parameter. | /** Returns the default number of steps for a parameter. | ||||
@@ -1191,9 +1193,11 @@ public: | |||||
@@ -1231,9 +1233,11 @@ public: | |||||
virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return CurveData(); } | |||||
virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return {}; } | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | + #if ! JUCE_AUDIOPROCESSOR_NO_GUI | ||||
//============================================================================== | //============================================================================== | ||||
@@ -92,7 +280,17 @@ index f72a4ed3f..849b77d3c 100644 | |||||
/** Flags to indicate the type of plugin context in which a processor is being used. */ | /** Flags to indicate the type of plugin context in which a processor is being used. */ | ||||
enum WrapperType | enum WrapperType | ||||
@@ -1468,7 +1472,9 @@ private: | |||||
@@ -1264,7 +1268,9 @@ public: | |||||
struct TrackProperties | |||||
{ | |||||
String name; // The name of the track - this will be empty if the track name is not known | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
Colour colour; // The colour of the track - this will be transparentBlack if the colour is not known | |||||
+ #endif | |||||
// other properties may be added in the future | |||||
}; | |||||
@@ -1513,7 +1519,9 @@ private: | |||||
//============================================================================== | //============================================================================== | ||||
Array<AudioProcessorListener*> listeners; | Array<AudioProcessorListener*> listeners; | ||||
@@ -103,10 +301,10 @@ index f72a4ed3f..849b77d3c 100644 | |||||
int blockSize = 0, latencySamples = 0; | int blockSize = 0, latencySamples = 0; | ||||
bool suspended = false; | bool suspended = false; | ||||
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 17c5af30c..3d4a0d428 100644 | |||||
index fd013c4d9..03b74cfa1 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 | ||||
@@ -1519,8 +1519,10 @@ bool AudioProcessorGraph::AudioGraphIOProcessor::producesMidi() const | |||||
@@ -1575,8 +1575,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; } | ||||
@@ -118,10 +316,10 @@ index 17c5af30c..3d4a0d428 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 a60e67d84..17a121893 100644 | |||||
index 9c54201dc..d1046844f 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 | ||||
@@ -355,8 +355,10 @@ public: | |||||
@@ -357,8 +357,10 @@ public: | |||||
bool acceptsMidi() const override; | bool acceptsMidi() const override; | ||||
bool producesMidi() const override; | bool producesMidi() const override; | ||||
@@ -132,7 +330,7 @@ index a60e67d84..17a121893 100644 | |||||
int getNumPrograms() override; | int getNumPrograms() override; | ||||
int getCurrentProgram() override; | int getCurrentProgram() override; | ||||
@@ -392,8 +394,10 @@ public: | |||||
@@ -394,8 +396,10 @@ public: | |||||
bool acceptsMidi() const override; | bool acceptsMidi() const override; | ||||
bool producesMidi() const override; | bool producesMidi() const override; | ||||
@@ -143,3 +341,78 @@ index a60e67d84..17a121893 100644 | |||||
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 { } | ||||
diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp | |||||
index a7e8c8af1..2da1d9023 100644 | |||||
--- a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp | |||||
+++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp | |||||
@@ -466,6 +466,7 @@ void AudioProcessorValueTreeState::timerCallback() | |||||
} | |||||
//============================================================================== | |||||
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
template <typename Attachment, typename Control> | |||||
std::unique_ptr<Attachment> makeAttachment (const AudioProcessorValueTreeState& stateToUse, | |||||
const String& parameterID, | |||||
@@ -498,6 +499,7 @@ AudioProcessorValueTreeState::ButtonAttachment::ButtonAttachment (AudioProcessor | |||||
: attachment (makeAttachment<ButtonParameterAttachment> (stateToUse, parameterID, button)) | |||||
{ | |||||
} | |||||
+#endif | |||||
//============================================================================== | |||||
//============================================================================== | |||||
diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h | |||||
index 3942f3345..7c113c9a2 100644 | |||||
--- a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h | |||||
+++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h | |||||
@@ -519,6 +519,7 @@ public: | |||||
friend class AudioProcessorValueTreeState::ParameterAdapter; | |||||
}; | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
//============================================================================== | |||||
/** An object of this class maintains a connection between a Slider and a parameter | |||||
in an AudioProcessorValueTreeState. | |||||
@@ -586,6 +587,7 @@ public: | |||||
std::unique_ptr<ButtonParameterAttachment> attachment; | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ButtonAttachment) | |||||
}; | |||||
+ #endif | |||||
private: | |||||
//============================================================================== | |||||
diff --git a/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp b/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp | |||||
index f51fed0d3..7e07d9f89 100644 | |||||
--- a/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp | |||||
+++ b/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp | |||||
@@ -63,6 +63,7 @@ bool PluginHostType::isInAAXAudioSuite (AudioProcessor& processor) | |||||
return false; | |||||
} | |||||
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
Image PluginHostType::getHostIcon (int size) const | |||||
{ | |||||
ignoreUnused (size); | |||||
@@ -79,6 +80,7 @@ Image PluginHostType::getHostIcon (int size) const | |||||
return Image(); | |||||
} | |||||
+#endif | |||||
const char* PluginHostType::getHostDescription() const noexcept | |||||
{ | |||||
diff --git a/modules/juce_audio_processors/utilities/juce_PluginHostType.h b/modules/juce_audio_processors/utilities/juce_PluginHostType.h | |||||
index f83ccd3f4..7f7358db3 100644 | |||||
--- a/modules/juce_audio_processors/utilities/juce_PluginHostType.h | |||||
+++ b/modules/juce_audio_processors/utilities/juce_PluginHostType.h | |||||
@@ -200,8 +200,10 @@ public: | |||||
bool isInterAppAudioConnected() const; | |||||
/** Switches to the host application when Inter-App Audio is used on iOS. */ | |||||
void switchToHostApplication() const; | |||||
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI | |||||
/** Gets the host app's icon when Inter-App Audio is used on iOS. */ | |||||
Image getHostIcon (int size) const; | |||||
+ #endif | |||||
//============================================================================== | |||||
/** Returns the complete absolute path of the host application executable. */ |
@@ -1,8 +1,8 @@ | |||||
diff --git a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp | |||||
index 0c1138a2b..a5b42b8ef 100644 | |||||
--- a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp | |||||
+++ b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp | |||||
@@ -172,6 +172,7 @@ private: | |||||
diff --git a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp | |||||
index ec946b7a4..ce42c0093 100644 | |||||
--- a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp | |||||
+++ b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp | |||||
@@ -159,6 +159,7 @@ private: | |||||
void operator() (LPWSTR ptr) const noexcept { CoTaskMemFree (ptr); } | void operator() (LPWSTR ptr) const noexcept { CoTaskMemFree (ptr); } | ||||
}; | }; | ||||
@@ -10,7 +10,7 @@ index 0c1138a2b..a5b42b8ef 100644 | |||||
bool showDialog (IFileDialog& dialog, bool async) | bool showDialog (IFileDialog& dialog, bool async) | ||||
{ | { | ||||
FILEOPENDIALOGOPTIONS flags = {}; | FILEOPENDIALOGOPTIONS flags = {}; | ||||
@@ -327,6 +328,7 @@ private: | |||||
@@ -376,6 +377,7 @@ private: | |||||
return result; | return result; | ||||
} | } | ||||
@@ -18,7 +18,7 @@ index 0c1138a2b..a5b42b8ef 100644 | |||||
Array<URL> openDialogPreVista (bool async) | Array<URL> openDialogPreVista (bool async) | ||||
{ | { | ||||
@@ -436,11 +438,13 @@ private: | |||||
@@ -492,11 +494,13 @@ private: | |||||
const Remover remover (*this); | const Remover remover (*this); | ||||
@@ -1,26 +0,0 @@ | |||||
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 cabbbcf13..f722ab36c 100644 | |||||
--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp | |||||
+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp | |||||
@@ -488,7 +488,7 @@ public: | |||||
{ | |||||
const int numChannels = jmax (numIn, numOut); | |||||
- AudioBuffer<FloatType> chans (tmpBuffers.channels, isMidiEffect ? 0 : numChannels, numSamples); | |||||
+ juce::AudioBuffer<FloatType> chans (tmpBuffers.channels, isMidiEffect ? 0 : numChannels, numSamples); | |||||
if (isBypassed) | |||||
processor->processBlockBypassed (chans, midiEvents); | |||||
diff --git a/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h b/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h | |||||
index 4b36f6d64..61dbdeede 100644 | |||||
--- a/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h | |||||
+++ b/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h | |||||
@@ -23,6 +23,8 @@ | |||||
============================================================================== | |||||
*/ | |||||
+#pragma once | |||||
+ | |||||
#include <juce_audio_plugin_client/juce_audio_plugin_client.h> | |||||
#include "juce_CreatePluginFilter.h" | |||||
@@ -0,0 +1,20 @@ | |||||
diff --git a/modules/juce_opengl/native/juce_OpenGLExtensions.h b/modules/juce_opengl/native/juce_OpenGLExtensions.h | |||||
index f07ede9a3..c934e9e37 100644 | |||||
--- a/modules/juce_opengl/native/juce_OpenGLExtensions.h | |||||
+++ b/modules/juce_opengl/native/juce_OpenGLExtensions.h | |||||
@@ -76,7 +76,14 @@ namespace juce | |||||
X (glCheckFramebufferStatus) \ | |||||
X (glFramebufferTexture2D) \ | |||||
X (glFramebufferRenderbuffer) \ | |||||
- X (glGetFramebufferAttachmentParameteriv) | |||||
+ X (glGetFramebufferAttachmentParameteriv) \ | |||||
+ X (glTransformFeedbackVaryings) \ | |||||
+ X (glBeginTransformFeedback) \ | |||||
+ X (glEndTransformFeedback) \ | |||||
+ X (glBindBufferBase) \ | |||||
+ X (glMapBufferRange) \ | |||||
+ X (glUnmapBuffer) | |||||
+ | |||||
/** @internal This macro contains a list of GL extension functions that need to be dynamically loaded on Windows/Linux. | |||||
@see OpenGLExtensionFunctions |
@@ -1,117 +0,0 @@ | |||||
diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp | |||||
index c4404c637..fa8d3ccf5 100644 | |||||
--- a/modules/juce_gui_basics/components/juce_Component.cpp | |||||
+++ b/modules/juce_gui_basics/components/juce_Component.cpp | |||||
@@ -387,6 +387,10 @@ struct Component::ComponentHelpers | |||||
template <typename PointOrRect> | |||||
static PointOrRect convertCoordinate (const Component* target, const Component* source, PointOrRect p) | |||||
{ | |||||
+ float total_scaling = source->getTotalPixelScaling(); | |||||
+ Component* top = nullptr; | |||||
+ if (source) | |||||
+ top = source->getTopLevelComponent(); | |||||
while (source != nullptr) | |||||
{ | |||||
if (source == target) | |||||
@@ -395,6 +399,9 @@ struct Component::ComponentHelpers | |||||
if (source->isParentOf (target)) | |||||
return convertFromDistantParentSpace (source, *target, p); | |||||
+ if (source == top) | |||||
+ p /= total_scaling; | |||||
+ | |||||
p = convertToParentSpace (*source, p); | |||||
source = source->getParentComponent(); | |||||
} | |||||
@@ -1390,13 +1397,14 @@ bool Component::reallyContains (Point<int> point, bool returnTrueIfWithinAChild) | |||||
Component* Component::getComponentAt (Point<int> position) | |||||
{ | |||||
+ Point<int> scale = (position.toFloat() * getPixelScaling()).roundToInt(); | |||||
if (flags.visibleFlag && ComponentHelpers::hitTest (*this, position)) | |||||
{ | |||||
for (int i = childComponentList.size(); --i >= 0;) | |||||
{ | |||||
auto* child = childComponentList.getUnchecked(i); | |||||
- child = child->getComponentAt (ComponentHelpers::convertFromParentSpace (*child, position)); | |||||
+ child = child->getComponentAt (ComponentHelpers::convertFromParentSpace (*child, scale)); | |||||
if (child != nullptr) | |||||
return child; | |||||
diff --git a/modules/juce_gui_basics/components/juce_Component.h b/modules/juce_gui_basics/components/juce_Component.h | |||||
index 6b2b0072b..ccb2681fa 100644 | |||||
--- a/modules/juce_gui_basics/components/juce_Component.h | |||||
+++ b/modules/juce_gui_basics/components/juce_Component.h | |||||
@@ -2284,6 +2284,17 @@ public: | |||||
*/ | |||||
bool getViewportIgnoreDragFlag() const noexcept { return flags.viewportIgnoreDragFlag; } | |||||
+ virtual float getPixelScaling() const { return 1.0f; } | |||||
+ float getTotalPixelScaling() const { | |||||
+ const Component* component = this; | |||||
+ float pixel_scaling = 1.0f; | |||||
+ while (component) { | |||||
+ pixel_scaling *= component->getPixelScaling(); | |||||
+ component = component->getParentComponent(); | |||||
+ } | |||||
+ return pixel_scaling; | |||||
+ } | |||||
+ | |||||
private: | |||||
//============================================================================== | |||||
friend class ComponentPeer; | |||||
diff --git a/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp b/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp | |||||
index a8c2c283a..ddb15b88d 100644 | |||||
--- a/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp | |||||
+++ b/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp | |||||
@@ -61,7 +61,7 @@ public: | |||||
{ | |||||
if (auto* peer = comp.getPeer()) | |||||
{ | |||||
- pos = peer->globalToLocal (pos); | |||||
+ pos = peer->globalToLocal (pos) * comp.getTotalPixelScaling(); | |||||
auto& peerComp = peer->getComponent(); | |||||
return comp.getLocalPoint (&peerComp, ScalingHelpers::unscaledScreenPosToScaled (peerComp, pos)); | |||||
} | |||||
diff --git a/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp b/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp | |||||
index 8d7febd4b..7ec8fbb00 100644 | |||||
--- a/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp | |||||
+++ b/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp | |||||
@@ -474,7 +474,7 @@ bool ComponentPeer::handleDragMove (const ComponentPeer::DragInfo& info) | |||||
if (DragHelpers::isSuitableTarget (info, newTarget)) | |||||
{ | |||||
dragAndDropTargetComponent = newTarget; | |||||
- auto pos = newTarget->getLocalPoint (&component, info.position); | |||||
+ auto pos = newTarget->getLocalPoint (&component, info.position * newTarget->getTotalPixelScaling()); | |||||
if (DragHelpers::isFileDrag (info)) | |||||
dynamic_cast<FileDragAndDropTarget*> (newTarget)->fileDragEnter (info.files, pos.x, pos.y); | |||||
@@ -491,7 +491,7 @@ bool ComponentPeer::handleDragMove (const ComponentPeer::DragInfo& info) | |||||
if (! DragHelpers::isSuitableTarget (info, newTarget)) | |||||
return false; | |||||
- auto pos = newTarget->getLocalPoint (&component, info.position); | |||||
+ auto pos = newTarget->getLocalPoint (&component, info.position * newTarget->getTotalPixelScaling()); | |||||
if (DragHelpers::isFileDrag (info)) | |||||
dynamic_cast<FileDragAndDropTarget*> (newTarget)->fileDragMove (info.files, pos.x, pos.y); | |||||
diff --git a/modules/juce_opengl/native/juce_OpenGLExtensions.h b/modules/juce_opengl/native/juce_OpenGLExtensions.h | |||||
index e7eab9dbf..d7039b144 100644 | |||||
--- a/modules/juce_opengl/native/juce_OpenGLExtensions.h | |||||
+++ b/modules/juce_opengl/native/juce_OpenGLExtensions.h | |||||
@@ -83,7 +83,13 @@ namespace juce | |||||
USE_FUNCTION (glCheckFramebufferStatus, GLenum, (GLenum p1), (p1))\ | |||||
USE_FUNCTION (glFramebufferTexture2D, void, (GLenum p1, GLenum p2, GLenum p3, GLuint p4, GLint p5), (p1, p2, p3, p4, p5))\ | |||||
USE_FUNCTION (glFramebufferRenderbuffer, void, (GLenum p1, GLenum p2, GLenum p3, GLuint p4), (p1, p2, p3, p4))\ | |||||
- USE_FUNCTION (glGetFramebufferAttachmentParameteriv, void, (GLenum p1, GLenum p2, GLenum p3, GLint* p4), (p1, p2, p3, p4)) | |||||
+ USE_FUNCTION (glGetFramebufferAttachmentParameteriv, void, (GLenum p1, GLenum p2, GLenum p3, GLint* p4), (p1, p2, p3, p4))\ | |||||
+ USE_FUNCTION (glTransformFeedbackVaryings, void, (GLuint p1, GLsizei p2, const char **p3, GLenum p4), (p1, p2, p3, p4))\ | |||||
+ USE_FUNCTION (glBeginTransformFeedback, void, (GLenum p1), (p1))\ | |||||
+ USE_FUNCTION (glEndTransformFeedback, void, (), ())\ | |||||
+ USE_FUNCTION (glBindBufferBase, void, (GLenum p1, GLuint p2, GLuint p3), (p1, p2, p3))\ | |||||
+ USE_FUNCTION (glMapBufferRange, void*, (GLenum p1, GLintptr p2, GLsizeiptr p3, GLbitfield p4), (p1, p2, p3, p4))\ | |||||
+ USE_FUNCTION (glUnmapBuffer, GLboolean, (GLenum p1), (p1)); | |||||
/** @internal This macro contains a list of GL extension functions that need to be dynamically loaded on Windows/Linux. | |||||
@see OpenGLExtensionFunctions |
@@ -1,144 +0,0 @@ | |||||
diff --git a/modules/juce_opengl/juce_opengl.h b/modules/juce_opengl/juce_opengl.h | |||||
index f7bc806f8..d325d3e34 100644 | |||||
--- a/modules/juce_opengl/juce_opengl.h | |||||
+++ b/modules/juce_opengl/juce_opengl.h | |||||
@@ -124,7 +124,7 @@ | |||||
It's mandatory in OpenGL 3.0 to specify the GLSL version. | |||||
*/ | |||||
#if JUCE_OPENGL3 | |||||
- #if JUCE_OPENGL_ES | |||||
+ #if JUCE_OPENGL_ES || OPENGL_ES | |||||
#define JUCE_GLSL_VERSION "#version 300 es" | |||||
#else | |||||
#define JUCE_GLSL_VERSION "#version 150" | |||||
diff --git a/modules/juce_opengl/native/juce_MissingGLDefinitions.h b/modules/juce_opengl/native/juce_MissingGLDefinitions.h | |||||
index c23ec097a..00c6cf565 100644 | |||||
--- a/modules/juce_opengl/native/juce_MissingGLDefinitions.h | |||||
+++ b/modules/juce_opengl/native/juce_MissingGLDefinitions.h | |||||
@@ -126,6 +126,14 @@ enum MissingOpenGLDefinitions | |||||
GL_DYNAMIC_DRAW = 0x88E8, | |||||
GL_STREAM_DRAW = 0x88E0, | |||||
+ GL_GEOMETRY_SHADER = 0x8DD9, | |||||
+ GL_LINE_STRIP_ADJACENCY = 0x000B, | |||||
+ GL_INTERLEAVED_ATTRIBS = 0x8C8C, | |||||
+ GL_STATIC_READ = 0x88E5, | |||||
+ GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E, | |||||
+ GL_RASTERIZER_DISCARD = 0x8C89, | |||||
+ GL_MAP_READ_BIT = 0x0001, | |||||
+ | |||||
WGL_NUMBER_PIXEL_FORMATS_ARB = 0x2000, | |||||
WGL_DRAW_TO_WINDOW_ARB = 0x2001, | |||||
WGL_ACCELERATION_ARB = 0x2003, | |||||
diff --git a/modules/juce_opengl/native/juce_OpenGL_linux_X11.h b/modules/juce_opengl/native/juce_OpenGL_linux_X11.h | |||||
index ef7eb852e..b4ba85cc4 100644 | |||||
--- a/modules/juce_opengl/native/juce_OpenGL_linux_X11.h | |||||
+++ b/modules/juce_opengl/native/juce_OpenGL_linux_X11.h | |||||
@@ -69,8 +69,8 @@ public: | |||||
GLint attribs[] = | |||||
{ | |||||
- GLX_RGBA, | |||||
- GLX_DOUBLEBUFFER, | |||||
+ GLX_RENDER_TYPE, GLX_RGBA_BIT, | |||||
+ GLX_DOUBLEBUFFER, True, | |||||
GLX_RED_SIZE, cPixelFormat.redBits, | |||||
GLX_GREEN_SIZE, cPixelFormat.greenBits, | |||||
GLX_BLUE_SIZE, cPixelFormat.blueBits, | |||||
@@ -81,13 +81,21 @@ public: | |||||
GLX_ACCUM_GREEN_SIZE, cPixelFormat.accumulationBufferGreenBits, | |||||
GLX_ACCUM_BLUE_SIZE, cPixelFormat.accumulationBufferBlueBits, | |||||
GLX_ACCUM_ALPHA_SIZE, cPixelFormat.accumulationBufferAlphaBits, | |||||
+ GLX_X_RENDERABLE, True, | |||||
None | |||||
}; | |||||
- bestVisual = glXChooseVisual (display, X11Symbols::getInstance()->xDefaultScreen (display), attribs); | |||||
- if (bestVisual == nullptr) | |||||
+ int countFbConfigs; | |||||
+ fbConfig = glXChooseFBConfig (display, DefaultScreen (display), attribs, &countFbConfigs); | |||||
+ if (fbConfig == nullptr) | |||||
return; | |||||
+ bestVisual = glXGetVisualFromFBConfig (display, *fbConfig); | |||||
+ if (bestVisual == nullptr) { | |||||
+ X11Symbols::getInstance()->xFree (fbConfig); | |||||
+ return; | |||||
+ } | |||||
+ | |||||
auto* peer = component.getPeer(); | |||||
jassert (peer != nullptr); | |||||
@@ -139,6 +147,9 @@ public: | |||||
} | |||||
} | |||||
+ if (fbConfig != nullptr) | |||||
+ X11Symbols::getInstance()->xFree (fbConfig); | |||||
+ | |||||
if (bestVisual != nullptr) | |||||
X11Symbols::getInstance()->xFree (bestVisual); | |||||
} | |||||
@@ -146,7 +157,18 @@ public: | |||||
bool initialiseOnRenderThread (OpenGLContext& c) | |||||
{ | |||||
XWindowSystemUtilities::ScopedXLock xLock; | |||||
- renderContext = glXCreateContext (display, bestVisual, (GLXContext) contextToShareWith, GL_TRUE); | |||||
+ PFNGLXCREATECONTEXTATTRIBSARBPROC createContextAttribs; | |||||
+ int attribs[] = { | |||||
+ GLX_CONTEXT_MAJOR_VERSION_ARB, 3, | |||||
+ GLX_CONTEXT_MINOR_VERSION_ARB, 2, | |||||
+ GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_CORE_PROFILE_BIT_ARB, | |||||
+ 0 | |||||
+ }; | |||||
+ | |||||
+ createContextAttribs = (PFNGLXCREATECONTEXTATTRIBSARBPROC) | |||||
+ OpenGLHelpers::getExtensionFunction("glXCreateContextAttribsARB"); | |||||
+ | |||||
+ renderContext = createContextAttribs (display, *fbConfig, (GLXContext) contextToShareWith, GL_TRUE, attribs); | |||||
c.makeActive(); | |||||
context = &c; | |||||
@@ -240,6 +262,7 @@ private: | |||||
int swapFrames = 1; | |||||
Rectangle<int> bounds; | |||||
XVisualInfo* bestVisual = nullptr; | |||||
+ GLXFBConfig* fbConfig = nullptr; | |||||
void* contextToShareWith; | |||||
OpenGLContext* context = nullptr; | |||||
diff --git a/modules/juce_opengl/native/juce_OpenGL_win32.h b/modules/juce_opengl/native/juce_OpenGL_win32.h | |||||
index 6106fce54..7ba46c079 100644 | |||||
--- a/modules/juce_opengl/native/juce_OpenGL_win32.h | |||||
+++ b/modules/juce_opengl/native/juce_OpenGL_win32.h | |||||
@@ -285,6 +285,8 @@ private: | |||||
atts[n++] = WGL_DRAW_TO_WINDOW_ARB; atts[n++] = GL_TRUE; | |||||
atts[n++] = WGL_SUPPORT_OPENGL_ARB; atts[n++] = GL_TRUE; | |||||
+ atts[n++] = WGL_CONTEXT_MAJOR_VERSION_ARB; atts[n++] = 3; | |||||
+ atts[n++] = WGL_CONTEXT_MINOR_VERSION_ARB; atts[n++] = 2; | |||||
atts[n++] = WGL_DOUBLE_BUFFER_ARB; atts[n++] = GL_TRUE; | |||||
atts[n++] = WGL_PIXEL_TYPE_ARB; atts[n++] = WGL_TYPE_RGBA_ARB; | |||||
atts[n++] = WGL_ACCELERATION_ARB; | |||||
diff --git a/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp b/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp | |||||
index 97dc1f0b5..ad40fa640 100644 | |||||
--- a/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp | |||||
+++ b/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp | |||||
@@ -83,7 +83,7 @@ void OpenGLHelpers::enableScissorTest (Rectangle<int> clip) | |||||
String OpenGLHelpers::translateVertexShaderToV3 (const String& code) | |||||
{ | |||||
- #if JUCE_OPENGL3 | |||||
+ #if JUCE_OPENGL3 || OPENGL_ES | |||||
if (OpenGLShaderProgram::getLanguageVersion() > 1.2) | |||||
{ | |||||
String output; | |||||
@@ -119,7 +119,7 @@ String OpenGLHelpers::translateVertexShaderToV3 (const String& code) | |||||
String OpenGLHelpers::translateFragmentShaderToV3 (const String& code) | |||||
{ | |||||
- #if JUCE_OPENGL3 | |||||
+ #if JUCE_OPENGL3 || OPENGL_ES | |||||
if (OpenGLShaderProgram::getLanguageVersion() > 1.2) | |||||
return JUCE_GLSL_VERSION "\n" | |||||
"out " JUCE_MEDIUMP " vec4 fragColor;\n" |
@@ -1,457 +0,0 @@ | |||||
diff --git a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp | |||||
index 7642040bd..ed02448b8 100644 | |||||
--- a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp | |||||
+++ b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp | |||||
@@ -842,6 +842,26 @@ namespace WavFileHelpers | |||||
return out.getMemoryBlock(); | |||||
} | |||||
}; | |||||
+ | |||||
+ //============================================================================== | |||||
+ struct Clm_Chunk | |||||
+ { | |||||
+ static MemoryBlock createFrom (const StringPairArray& values) | |||||
+ { | |||||
+ MemoryOutputStream out; | |||||
+ auto s = values["clm "]; | |||||
+ | |||||
+ if (s.isNotEmpty()) | |||||
+ { | |||||
+ out.writeString (s); | |||||
+ | |||||
+ if ((out.getDataSize() & 1) != 0) | |||||
+ out.writeByte(0); | |||||
+ } | |||||
+ | |||||
+ return out.getMemoryBlock(); | |||||
+ } | |||||
+ }; | |||||
//============================================================================== | |||||
namespace AXMLChunk | |||||
@@ -1321,6 +1341,7 @@ public: | |||||
listInfoChunk = ListInfoChunk::createFrom (metadataValues); | |||||
acidChunk = AcidChunk::createFrom (metadataValues); | |||||
trckChunk = TracktionChunk::createFrom (metadataValues); | |||||
+ clm_Chunk = Clm_Chunk::createFrom (metadataValues); | |||||
} | |||||
headerPosition = out->getPosition(); | |||||
@@ -1383,7 +1404,7 @@ public: | |||||
} | |||||
private: | |||||
- MemoryBlock tempBlock, bwavChunk, axmlChunk, smplChunk, instChunk, cueChunk, listChunk, listInfoChunk, acidChunk, trckChunk; | |||||
+ MemoryBlock tempBlock, bwavChunk, axmlChunk, smplChunk, instChunk, cueChunk, listChunk, listInfoChunk, acidChunk, trckChunk, clm_Chunk; | |||||
uint64 lengthInSamples = 0, bytesWritten = 0; | |||||
int64 headerPosition = 0; | |||||
bool writeFailed = false; | |||||
@@ -1421,6 +1442,7 @@ private: | |||||
+ chunkSize (listInfoChunk) | |||||
+ chunkSize (acidChunk) | |||||
+ chunkSize (trckChunk) | |||||
+ + chunkSize (clm_Chunk) | |||||
+ (8 + 28)); // (ds64 chunk) | |||||
riffChunkSize += (riffChunkSize & 1); | |||||
@@ -1503,6 +1525,7 @@ private: | |||||
writeChunk (listInfoChunk, chunkName ("LIST")); | |||||
writeChunk (acidChunk, chunkName ("acid")); | |||||
writeChunk (trckChunk, chunkName ("Trkn")); | |||||
+ writeChunk (clm_Chunk, chunkName ("clm ")); | |||||
writeChunkHeader (chunkName ("data"), isRF64 ? -1 : (int) (lengthInSamples * bytesPerFrame)); | |||||
diff --git a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp | |||||
index 7909098c9..19eb385fd 100644 | |||||
--- a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp | |||||
+++ b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp | |||||
@@ -2618,6 +2621,9 @@ public: | |||||
//============================================================================== | |||||
void processParameterChanges (Vst::IParameterChanges& paramChanges) | |||||
{ | |||||
+ if (juceVST3EditController == nullptr) | |||||
+ return; | |||||
+ | |||||
jassert (pluginInstance != nullptr); | |||||
auto numParamsChanged = paramChanges.getParameterCount(); | |||||
diff --git a/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp b/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp | |||||
index 50cae68ed..549d8edb8 100644 | |||||
--- a/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp | |||||
+++ b/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp | |||||
@@ -393,6 +393,7 @@ public: | |||||
AlertWindow::showMessageBoxAsync (AlertWindow::WarningIcon, | |||||
TRANS("Error when trying to open audio device!"), | |||||
error); | |||||
+ resized(); | |||||
} | |||||
bool showDeviceControlPanel() | |||||
@@ -1120,6 +1121,8 @@ void AudioDeviceSelectorComponent::updateMidiOutput() | |||||
deviceManager.setDefaultMidiOutputDevice ({}); | |||||
else | |||||
deviceManager.setDefaultMidiOutputDevice (currentMidiOutputs[selectedId - 1].identifier); | |||||
+ | |||||
+ resized(); | |||||
} | |||||
void AudioDeviceSelectorComponent::changeListenerCallback (ChangeBroadcaster*) | |||||
diff --git a/modules/juce_core/native/juce_curl_Network.cpp b/modules/juce_core/native/juce_curl_Network.cpp | |||||
index 00d428350..dd3375ff7 100644 | |||||
--- a/modules/juce_core/native/juce_curl_Network.cpp | |||||
+++ b/modules/juce_core/native/juce_curl_Network.cpp | |||||
@@ -332,6 +332,9 @@ public: | |||||
// or 3) data is in the in buffer | |||||
while ((! finished) && curlBuffer.getSize() == 0) | |||||
{ | |||||
+ if (Thread::currentThreadShouldExit()) | |||||
+ return false; | |||||
+ | |||||
{ | |||||
const ScopedLock lock (cleanupLock); | |||||
diff --git a/modules/juce_dsp/native/juce_sse_SIMDNativeOps.h b/modules/juce_dsp/native/juce_sse_SIMDNativeOps.h | |||||
index 7f64d433d..e9360e0de 100644 | |||||
--- a/modules/juce_dsp/native/juce_sse_SIMDNativeOps.h | |||||
+++ b/modules/juce_dsp/native/juce_sse_SIMDNativeOps.h | |||||
@@ -74,6 +74,7 @@ struct SIMDNativeOps<float> | |||||
static forcedinline __m128 JUCE_VECTOR_CALLTYPE add (__m128 a, __m128 b) noexcept { return _mm_add_ps (a, b); } | |||||
static forcedinline __m128 JUCE_VECTOR_CALLTYPE sub (__m128 a, __m128 b) noexcept { return _mm_sub_ps (a, b); } | |||||
static forcedinline __m128 JUCE_VECTOR_CALLTYPE mul (__m128 a, __m128 b) noexcept { return _mm_mul_ps (a, b); } | |||||
+ static forcedinline __m128 JUCE_VECTOR_CALLTYPE div (__m128 a, __m128 b) noexcept { return _mm_div_ps (a, b); } | |||||
static forcedinline __m128 JUCE_VECTOR_CALLTYPE bit_and (__m128 a, __m128 b) noexcept { return _mm_and_ps (a, b); } | |||||
static forcedinline __m128 JUCE_VECTOR_CALLTYPE bit_or (__m128 a, __m128 b) noexcept { return _mm_or_ps (a, b); } | |||||
static forcedinline __m128 JUCE_VECTOR_CALLTYPE bit_xor (__m128 a, __m128 b) noexcept { return _mm_xor_ps (a, b); } | |||||
@@ -142,6 +143,7 @@ struct SIMDNativeOps<double> | |||||
static forcedinline __m128d JUCE_VECTOR_CALLTYPE add (__m128d a, __m128d b) noexcept { return _mm_add_pd (a, b); } | |||||
static forcedinline __m128d JUCE_VECTOR_CALLTYPE sub (__m128d a, __m128d b) noexcept { return _mm_sub_pd (a, b); } | |||||
static forcedinline __m128d JUCE_VECTOR_CALLTYPE mul (__m128d a, __m128d b) noexcept { return _mm_mul_pd (a, b); } | |||||
+ static forcedinline __m128d JUCE_VECTOR_CALLTYPE div (__m128d a, __m128d b) noexcept { return _mm_div_pd (a, b); } | |||||
static forcedinline __m128d JUCE_VECTOR_CALLTYPE bit_and (__m128d a, __m128d b) noexcept { return _mm_and_pd (a, b); } | |||||
static forcedinline __m128d JUCE_VECTOR_CALLTYPE bit_or (__m128d a, __m128d b) noexcept { return _mm_or_pd (a, b); } | |||||
static forcedinline __m128d JUCE_VECTOR_CALLTYPE bit_xor (__m128d a, __m128d b) noexcept { return _mm_xor_pd (a, b); } | |||||
diff --git a/modules/juce_events/native/juce_mac_MessageManager.mm b/modules/juce_events/native/juce_mac_MessageManager.mm | |||||
index 7a0718868..9d83519ff 100644 | |||||
--- a/modules/juce_events/native/juce_mac_MessageManager.mm | |||||
+++ b/modules/juce_events/native/juce_mac_MessageManager.mm | |||||
@@ -369,6 +369,7 @@ void MessageManager::runDispatchLoop() | |||||
static void shutdownNSApp() | |||||
{ | |||||
[NSApp stop: nil]; | |||||
+ [NSEvent stopPeriodicEvents]; | |||||
[NSEvent startPeriodicEventsAfterDelay: 0 withPeriod: 0.1]; | |||||
} | |||||
diff --git a/modules/juce_gui_basics/buttons/juce_Button.cpp b/modules/juce_gui_basics/buttons/juce_Button.cpp | |||||
index 1df2d6e20..e5c243eda 100644 | |||||
--- a/modules/juce_gui_basics/buttons/juce_Button.cpp | |||||
+++ b/modules/juce_gui_basics/buttons/juce_Button.cpp | |||||
@@ -482,10 +482,7 @@ void Button::mouseDrag (const MouseEvent& e) | |||||
bool Button::isMouseSourceOver (const MouseEvent& e) | |||||
{ | |||||
- if (e.source.isTouch() || e.source.isPen()) | |||||
- return getLocalBounds().toFloat().contains (e.position); | |||||
- | |||||
- return isMouseOver(); | |||||
+ return getLocalBounds().toFloat().contains (e.position); | |||||
} | |||||
void Button::focusGained (FocusChangeType) | |||||
diff --git a/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp b/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp | |||||
index 314544638..f3b61e2c3 100644 | |||||
--- a/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp | |||||
+++ b/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp | |||||
@@ -76,9 +76,6 @@ void ShapeButton::setShape (const Path& newShape, | |||||
shape = newShape; | |||||
maintainShapeProportions = maintainShapeProportions_; | |||||
- shadow.setShadowProperties (DropShadow (Colours::black.withAlpha (0.5f), 3, Point<int>())); | |||||
- setComponentEffect (hasShadow ? &shadow : nullptr); | |||||
- | |||||
if (resizeNowToFitThisShape) | |||||
{ | |||||
auto newBounds = shape.getBounds(); | |||||
diff --git a/modules/juce_gui_basics/buttons/juce_ShapeButton.h b/modules/juce_gui_basics/buttons/juce_ShapeButton.h | |||||
index 6863b1cab..5f9cee9ee 100644 | |||||
--- a/modules/juce_gui_basics/buttons/juce_ShapeButton.h | |||||
+++ b/modules/juce_gui_basics/buttons/juce_ShapeButton.h | |||||
@@ -88,6 +88,8 @@ public: | |||||
Colour overColourOn, | |||||
Colour downColourOn); | |||||
+ void setShadowColour (Colour shadow) { shadowColour = shadow; } | |||||
+ | |||||
/** Set whether the button should use the 'on' set of colours when its toggle state is 'on'. | |||||
By default these will be the same as the normal colours but the setOnColours method can be | |||||
used to provide a different set of colours. | |||||
@@ -112,9 +114,8 @@ public: | |||||
private: | |||||
//============================================================================== | |||||
Colour normalColour, overColour, downColour, | |||||
- normalColourOn, overColourOn, downColourOn, outlineColour; | |||||
+ normalColourOn, overColourOn, downColourOn, outlineColour, shadowColour; | |||||
bool useOnColours; | |||||
- DropShadowEffect shadow; | |||||
Path shape; | |||||
BorderSize<int> border; | |||||
bool maintainShapeProportions; | |||||
diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp | |||||
index fa8d3ccf5..b2d75c655 100644 | |||||
--- a/modules/juce_gui_basics/components/juce_Component.cpp | |||||
+++ b/modules/juce_gui_basics/components/juce_Component.cpp | |||||
@@ -3021,7 +3021,8 @@ void Component::modifierKeysChanged (const ModifierKeys& modifiers) | |||||
void Component::internalModifierKeysChanged() | |||||
{ | |||||
- sendFakeMouseMove(); | |||||
+ auto mainMouse = Desktop::getInstance().getMainMouseSource(); | |||||
+ mainMouse.triggerFakeMove(); | |||||
modifierKeysChanged (ModifierKeys::currentModifiers); | |||||
} | |||||
diff --git a/modules/juce_gui_basics/components/juce_Component.h b/modules/juce_gui_basics/components/juce_Component.h | |||||
index 3add1db6b..ca84bc80e 100644 | |||||
--- a/modules/juce_gui_basics/components/juce_Component.h | |||||
+++ b/modules/juce_gui_basics/components/juce_Component.h | |||||
@@ -439,7 +439,7 @@ public: | |||||
@see setBounds, ComponentListener::componentMovedOrResized | |||||
*/ | |||||
- void setTopLeftPosition (Point<int> newTopLeftPosition); | |||||
+ virtual void setTopLeftPosition (Point<int> newTopLeftPosition); | |||||
/** Moves the component to a new position. | |||||
diff --git a/modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp b/modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp | |||||
index 7c6b83fbf..a84cf5a91 100644 | |||||
--- a/modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp | |||||
+++ b/modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp | |||||
@@ -43,14 +43,9 @@ void CaretComponent::paint (Graphics& g) | |||||
g.fillRect (getLocalBounds()); | |||||
} | |||||
-void CaretComponent::timerCallback() | |||||
-{ | |||||
- setVisible (shouldBeShown() && ! isVisible()); | |||||
-} | |||||
void CaretComponent::setCaretPosition (const Rectangle<int>& characterArea) | |||||
{ | |||||
- startTimer (380); | |||||
setVisible (shouldBeShown()); | |||||
setBounds (characterArea.withWidth (2)); | |||||
} | |||||
diff --git a/modules/juce_gui_basics/keyboard/juce_CaretComponent.h b/modules/juce_gui_basics/keyboard/juce_CaretComponent.h | |||||
index a10b26c69..97894c075 100644 | |||||
--- a/modules/juce_gui_basics/keyboard/juce_CaretComponent.h | |||||
+++ b/modules/juce_gui_basics/keyboard/juce_CaretComponent.h | |||||
@@ -31,8 +31,7 @@ namespace juce | |||||
@tags{GUI} | |||||
*/ | |||||
-class JUCE_API CaretComponent : public Component, | |||||
- private Timer | |||||
+class JUCE_API CaretComponent : public Component | |||||
{ | |||||
public: | |||||
//============================================================================== | |||||
@@ -73,7 +72,6 @@ private: | |||||
Component* owner; | |||||
bool shouldBeShown() const; | |||||
- void timerCallback() override; | |||||
JUCE_DECLARE_NON_COPYABLE (CaretComponent) | |||||
}; | |||||
diff --git a/modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp b/modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp | |||||
index 9ea63b215..7e8f14993 100644 | |||||
--- a/modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp | |||||
+++ b/modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp | |||||
@@ -271,23 +271,6 @@ void ComponentBoundsConstrainer::checkBounds (Rectangle<int>& bounds, | |||||
bounds.setWidth (roundToInt (bounds.getHeight() * aspectRatio)); | |||||
} | |||||
} | |||||
- | |||||
- if ((isStretchingTop || isStretchingBottom) && ! (isStretchingLeft || isStretchingRight)) | |||||
- { | |||||
- bounds.setX (old.getX() + (old.getWidth() - bounds.getWidth()) / 2); | |||||
- } | |||||
- else if ((isStretchingLeft || isStretchingRight) && ! (isStretchingTop || isStretchingBottom)) | |||||
- { | |||||
- bounds.setY (old.getY() + (old.getHeight() - bounds.getHeight()) / 2); | |||||
- } | |||||
- else | |||||
- { | |||||
- if (isStretchingLeft) | |||||
- bounds.setX (old.getRight() - bounds.getWidth()); | |||||
- | |||||
- if (isStretchingTop) | |||||
- bounds.setY (old.getBottom() - bounds.getHeight()); | |||||
- } | |||||
} | |||||
jassert (! bounds.isEmpty()); | |||||
diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp | |||||
index 738fed8c1..f9f79994c 100644 | |||||
--- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp | |||||
+++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp | |||||
@@ -41,8 +41,6 @@ LookAndFeel_V1::LookAndFeel_V1() | |||||
setColour (PopupMenu::highlightedBackgroundColourId, Colour (0xbfa4c2ce)); | |||||
setColour (PopupMenu::highlightedTextColourId, Colours::black); | |||||
setColour (TextEditor::focusedOutlineColourId, findColour (TextButton::buttonColourId)); | |||||
- | |||||
- scrollbarShadow.setShadowProperties (DropShadow (Colours::black.withAlpha (0.5f), 2, Point<int>())); | |||||
} | |||||
LookAndFeel_V1::~LookAndFeel_V1() | |||||
@@ -291,7 +289,7 @@ void LookAndFeel_V1::drawScrollbar (Graphics& g, ScrollBar& bar, | |||||
ImageEffectFilter* LookAndFeel_V1::getScrollbarEffect() | |||||
{ | |||||
- return &scrollbarShadow; | |||||
+ return nullptr; | |||||
} | |||||
@@ -477,7 +475,7 @@ Button* LookAndFeel_V1::createSliderButton (Slider&, const bool isIncrement) | |||||
ImageEffectFilter* LookAndFeel_V1::getSliderEffect (Slider&) | |||||
{ | |||||
- return &scrollbarShadow; | |||||
+ return nullptr; | |||||
} | |||||
int LookAndFeel_V1::getSliderThumbRadius (Slider&) | |||||
diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h | |||||
index b6c05aed7..51508a57a 100644 | |||||
--- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h | |||||
+++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h | |||||
@@ -97,8 +97,6 @@ public: | |||||
bool positionTitleBarButtonsOnLeft) override; | |||||
private: | |||||
- DropShadowEffect scrollbarShadow; | |||||
- | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LookAndFeel_V1) | |||||
}; | |||||
diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp | |||||
index 21042d0b2..829fed8e6 100644 | |||||
--- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp | |||||
+++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp | |||||
@@ -1292,8 +1292,6 @@ void LookAndFeel_V4::drawCallOutBoxBackground (CallOutBox& box, Graphics& g, | |||||
{ | |||||
cachedImage = { Image::ARGB, box.getWidth(), box.getHeight(), true }; | |||||
Graphics g2 (cachedImage); | |||||
- | |||||
- DropShadow (Colours::black.withAlpha (0.7f), 8, { 0, 2 }).drawForPath (g2, path); | |||||
} | |||||
g.setColour (Colours::black); | |||||
diff --git a/modules/juce_gui_basics/misc/juce_BubbleComponent.cpp b/modules/juce_gui_basics/misc/juce_BubbleComponent.cpp | |||||
index 7c0848644..2017bccb5 100644 | |||||
--- a/modules/juce_gui_basics/misc/juce_BubbleComponent.cpp | |||||
+++ b/modules/juce_gui_basics/misc/juce_BubbleComponent.cpp | |||||
@@ -30,9 +30,6 @@ BubbleComponent::BubbleComponent() | |||||
: allowablePlacements (above | below | left | right) | |||||
{ | |||||
setInterceptsMouseClicks (false, false); | |||||
- | |||||
- shadow.setShadowProperties (DropShadow (Colours::black.withAlpha (0.35f), 5, Point<int>())); | |||||
- setComponentEffect (&shadow); | |||||
} | |||||
BubbleComponent::~BubbleComponent() {} | |||||
diff --git a/modules/juce_gui_basics/misc/juce_BubbleComponent.h b/modules/juce_gui_basics/misc/juce_BubbleComponent.h | |||||
index f086c8ff3..cca6205a3 100644 | |||||
--- a/modules/juce_gui_basics/misc/juce_BubbleComponent.h | |||||
+++ b/modules/juce_gui_basics/misc/juce_BubbleComponent.h | |||||
@@ -178,7 +178,6 @@ private: | |||||
Rectangle<int> content; | |||||
Point<int> arrowTip; | |||||
int allowablePlacements; | |||||
- DropShadowEffect shadow; | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BubbleComponent) | |||||
}; | |||||
diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp | |||||
index f18b890f4..e92e9af14 100644 | |||||
--- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp | |||||
+++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp | |||||
@@ -1816,7 +1816,7 @@ public: | |||||
if (peerIsDeleted) | |||||
return S_FALSE; | |||||
- peer.handleDragExit (dragInfo); | |||||
+ peer.handleDragDrop (dragInfo); | |||||
return S_OK; | |||||
} | |||||
diff --git a/modules/juce_gui_basics/widgets/juce_Slider.cpp b/modules/juce_gui_basics/widgets/juce_Slider.cpp | |||||
index 731193ff1..0f68f6efa 100644 | |||||
--- a/modules/juce_gui_basics/widgets/juce_Slider.cpp | |||||
+++ b/modules/juce_gui_basics/widgets/juce_Slider.cpp | |||||
@@ -749,7 +749,7 @@ public: | |||||
? e.position.x - mouseDragStartPos.x | |||||
: mouseDragStartPos.y - e.position.y; | |||||
- newPos = owner.valueToProportionOfLength (valueOnMouseDown) | |||||
+ newPos = owner.valueToProportionOfLength (valueWhenLastDragged) | |||||
+ mouseDiff * (1.0 / pixelsForFullDragExtent); | |||||
if (style == IncDecButtons) | |||||
@@ -763,7 +763,7 @@ public: | |||||
auto mouseDiff = (e.position.x - mouseDragStartPos.x) | |||||
+ (mouseDragStartPos.y - e.position.y); | |||||
- newPos = owner.valueToProportionOfLength (valueOnMouseDown) | |||||
+ newPos = owner.valueToProportionOfLength (valueWhenLastDragged) | |||||
+ mouseDiff * (1.0 / pixelsForFullDragExtent); | |||||
} | |||||
else | |||||
@@ -774,6 +774,7 @@ public: | |||||
newPos = 1.0 - newPos; | |||||
} | |||||
+ mouseDragStartPos = e.position; | |||||
newPos = (isRotary() && ! rotaryParams.stopAtEnd) ? newPos - std::floor (newPos) | |||||
: jlimit (0.0, 1.0, newPos); | |||||
valueWhenLastDragged = owner.proportionOfLengthToValue (newPos); | |||||
diff --git a/modules/juce_gui_basics/widgets/juce_TextEditor.cpp b/modules/juce_gui_basics/widgets/juce_TextEditor.cpp | |||||
index 233c23305..70afc33a1 100644 | |||||
--- a/modules/juce_gui_basics/widgets/juce_TextEditor.cpp | |||||
+++ b/modules/juce_gui_basics/widgets/juce_TextEditor.cpp | |||||
@@ -833,6 +833,11 @@ struct TextEditor::TextHolderComponent : public Component, | |||||
{ | |||||
owner.drawContent (g); | |||||
} | |||||
+ | |||||
+ void setTopLeftPosition(Point<int> new_position) override { | |||||
+ Component::setTopLeftPosition(new_position); | |||||
+ owner.textChanged(); | |||||
+ } | |||||
void restartTimer() | |||||
{ | |||||
@@ -1558,6 +1563,9 @@ void TextEditor::moveCaretTo (const int newPosition, const bool isSelecting) | |||||
moveCaret (newPosition); | |||||
selection = Range<int>::emptyRange (getCaretPosition()); | |||||
} | |||||
+ | |||||
+ if (listeners.size() != 0 || onTextChange != nullptr) | |||||
+ postCommandMessage (TextEditorDefs::textChangeMessageId); | |||||
} | |||||
int TextEditor::getTextIndexAt (const int x, const int y) | |||||
@@ -2141,6 +2149,9 @@ void TextEditor::focusGained (FocusChangeType cause) | |||||
repaint(); | |||||
updateCaretPosition(); | |||||
+ | |||||
+ if (listeners.size() != 0 || onTextChange != nullptr) | |||||
+ postCommandMessage (TextEditorDefs::textChangeMessageId); | |||||
} | |||||
void TextEditor::focusLost (FocusChangeType) |
@@ -1,18 +0,0 @@ | |||||
diff --git a/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp b/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp | |||||
index 206a64afc..aa6196934 100644 | |||||
--- a/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp | |||||
+++ b/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp | |||||
@@ -67,11 +67,11 @@ namespace FUnknownPrivate { | |||||
//------------------------------------------------------------------------ | |||||
int32 PLUGIN_API atomicAdd (int32& var, int32 d) | |||||
{ | |||||
-#if SMTG_OS_WINDOWS | |||||
+#if SMTG_OS_WINDOWS && !defined(__MINGW32__) | |||||
return InterlockedExchangeAdd (&var, d) + d; | |||||
#elif SMTG_OS_MACOS | |||||
return OSAtomicAdd32Barrier (d, (int32_t*)&var); | |||||
-#elif SMTG_OS_LINUX | |||||
+#elif SMTG_OS_LINUX || defined(__MINGW32__) | |||||
__gnu_cxx::__atomic_add (&var, d); | |||||
return var; | |||||
#else |
@@ -1,31 +0,0 @@ | |||||
diff --git a/modules/juce_opengl/native/juce_OpenGL_linux_X11.h b/modules/juce_opengl/native/juce_OpenGL_linux_X11.h | |||||
index 203798b2f..aed0f3af9 100644 | |||||
--- a/modules/juce_opengl/native/juce_OpenGL_linux_X11.h | |||||
+++ b/modules/juce_opengl/native/juce_OpenGL_linux_X11.h | |||||
@@ -110,7 +110,8 @@ public: | |||||
auto glBounds = component.getTopLevelComponent() | |||||
->getLocalArea (&component, component.getLocalBounds()); | |||||
- glBounds = Desktop::getInstance().getDisplays().logicalToPhysical (glBounds); | |||||
+ if (JUCEApplicationBase::isStandaloneApp()) | |||||
+ glBounds = Desktop::getInstance().getDisplays().logicalToPhysical (glBounds); | |||||
embeddedWindow = X11Symbols::getInstance()->xCreateWindow (display, windowH, | |||||
glBounds.getX(), glBounds.getY(), | |||||
@@ -227,8 +228,14 @@ public: | |||||
auto physicalBounds = Desktop::getInstance().getDisplays().logicalToPhysical (bounds); | |||||
XWindowSystemUtilities::ScopedXLock xLock; | |||||
- X11Symbols::getInstance()->xMoveResizeWindow (display, embeddedWindow, | |||||
- physicalBounds.getX(), physicalBounds.getY(), | |||||
+ | |||||
+ if (JUCEApplicationBase::isStandaloneApp()) | |||||
+ X11Symbols::getInstance()->xMoveResizeWindow (display, embeddedWindow, | |||||
+ physicalBounds.getX(), physicalBounds.getY(), | |||||
+ (unsigned int) jmax (1, physicalBounds.getWidth()), | |||||
+ (unsigned int) jmax (1, physicalBounds.getHeight())); | |||||
+ else | |||||
+ X11Symbols::getInstance()->xResizeWindow (display, embeddedWindow, | |||||
(unsigned int) jmax (1, physicalBounds.getWidth()), | |||||
(unsigned int) jmax (1, physicalBounds.getHeight())); | |||||
} |