1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-16 00:34:19 +00:00
Commit graph

10726 commits

Author SHA1 Message Date
reuk
d5076cb873
SystemStats: Tidy up one-shot function 2023-02-22 21:00:18 +00:00
reuk
b7beb42153
DragAndDropContainer: Avoid out-parameters 2023-02-22 21:00:18 +00:00
reuk
ae45bb4c35
OpenGLContext: Fix signature of DEBUGPROC 2023-02-22 21:00:18 +00:00
reuk
629a3ca14b
ListBox: Allow ListBoxModel to control whether items may be dragged to other windows 2023-02-22 21:00:17 +00:00
reuk
882c2aa01d
AlertWindow: Allow parent component to be specified 2023-02-22 21:00:17 +00:00
reuk
39a731de46
ScopedMessageBox: Replace old AlertWindow uses with new API 2023-02-22 21:00:17 +00:00
reuk
79ed81c24a
ScopedMessageBox: Add new helper type to bound alert window lifetimes
The biggest new feature in this commit is the addition of
NativeMessageBox::scopedAsync and AlertWindow::scopedAsync, both of
which return an instance of ScopedMessageBox that will hide the message
box in its destructor.

The code for displaying modal dialogs on Windows has also been updated.
Now, the dialog itself is run from a new thread with its own message
loop. This means that when the dialog is dismissed, the background
thread can be joined safely. In plugins, this means that there's no
danger of the plugin view being destroyed from within the message box
runloop, for example.
2023-02-22 21:00:08 +00:00
reuk
d14761c523
CameraDevice: Tidy up macOS implementation 2023-02-21 19:30:21 +00:00
reuk
ac0ec5a7cc
Windowing: Tidy up macOS drag+drop implementation 2023-02-21 11:11:41 +00:00
reuk
a6638f8a6d
Path: Allow addPath to take a reference to self 2023-02-15 22:23:56 +00:00
reuk
92a19a9ea2
Android: Fix accessibility compatibility issues with older devices 2023-02-15 22:23:56 +00:00
reuk
efe8830bb6
AAX Client: Use new GetHDTimeCodeInfo API 2023-02-15 22:23:56 +00:00
reuk
53238e3cc7
AAX Client: Fix unused function warnings 2023-02-15 22:23:56 +00:00
reuk
d5ad26a162
AUv2 Client: Add support for new MIDIEventList APIs on supported platforms 2023-02-15 22:23:56 +00:00
reuk
78a12d2f57 UMP: Migrate to std::byte 2023-02-14 22:29:01 +00:00
reuk
f1f68007c6 Containers: Add simple Span implementation 2023-02-14 22:29:01 +00:00
reuk
d4dd149b64 VST Host: Avoid re-adding VST window to list of active windows after destruction has started
On Windows, broughtToFront may be called during the destructor of
VSTPluginHost, adding the window back into activeVSTWindows, leading to
a heap-use-after-free in vstHookWndProc.

This change means that broughtToFront will only reorder
activeVSTWindows; it will never add a window that's not already in the
list.
2023-02-14 22:29:01 +00:00
reuk
eecb8ad995 UIViewComponentPeer: Call setNeedsUpdateOfSupportedInterfaceOrientations on orientation change 2023-02-14 22:29:01 +00:00
attila
d037d45e3b AAX: Use unity build style for the AAX_SDK
JUCE no longer depends on built artifacts of the AAX_SDK
2023-02-14 20:04:08 +00:00
attila
dab95a8404 AudioSampleBuffer: Fix warning 2023-02-14 20:04:08 +00:00
Tom Poole
29a90a0231
BSD: Fix some compiler warnings 2023-02-14 17:00:02 +00:00
reuk
cb14aa983d
Path: Allow addPath to take a reference to self 2023-02-09 17:54:19 +00:00
reuk
a59cba010b
ColourGradient: Create lookup tables using non-premultiplied colours
The OpenGL renderer uses ColourGradient::createLookupTable to generate
gradient textures. However, the tweening method used was different to
the tweening used by CoreGraphics gradients, and by the software
renderer.

Gradient tweening is now computed using non-premultiplied colours, to
ensure consistency between gradients rendered using OpenGL, and with
other renderers.
2023-02-09 17:54:19 +00:00
reuk
9cfbccca8e
Accessibility: Make createAccessibilityHandler public to allow calls from derived classes 2023-02-09 17:54:18 +00:00
reuk
408f6030e6
NSViewComponentPeer: Attempt to avoid reentrant calls to makeKeyWindow
AUv2 plugins on Arm that are hosted out-of-process (e.g. in Logic 10.7)
can sometimes crash due to endlessly recursing through becomeKeyWindow.
This tends to happen when displaying a secondary window in a plugin,
e.g. an AlertWindow, then clicking on a secondary app, then clicking
back on the AlertWindow.

To avoid this case, we check that the peer isn't already key before
calling makeKeyWindow.

Unfortunately, we can't use isKeyWindow to avoid the recursion because
this may not return true until after becomeKeyWindow has returned.
2023-02-06 19:42:09 +00:00
reuk
f5aa881b6f FileChooser: Improve modal behaviour in plugins on Windows
The previous method for finding the dialog's owner was ineffective, and
it was still possible for other windows to obscure the file picker in
many cases. Using GetActiveWindow seems to produce the expected
behaviour.
2023-02-06 17:29:04 +00:00
reuk
793df5dd3d
iOS Windowing: Avoid private selector warnings 2023-02-06 10:22:41 +00:00
reuk
0889588ae4
VST3: Avoid copy in channel mapper 2023-02-06 10:21:37 +00:00
reuk
0033e52179
VBlankAttachment: Make isEmpty const 2023-02-06 10:21:37 +00:00
attila
a662e5584b PopupMenu: Add explicit focus order to menu items
Without this VoiceOver will iterate over menu items left to right first,
and iteration order will be affected by whether the PopupMenu gets
broken up into multiple columns due to not enough screen space.
2023-02-03 16:11:11 +01:00
attila
6c720bf3f1 Android: Add simulated mouse exit event to the mouse up callback
Without this event Components such as Button would remain in a hover
state indefinitely after being clicked on a touch screen. The simulated
event matches the behaviour of the other platforms.
2023-02-03 16:11:11 +01:00
attila
043182faa6 Linux: Avoid logging BadShmSeg error when SHM capability is not detected 2023-02-03 16:11:11 +01:00
reuk
454bc7c63a CoreGraphicsContext: Avoid hanging when drawing transformed tiled images
CGContextGetClipBoundingBox sometimes returns a 'null' rect. When it
does, the following logic will get stuck in the while loop drawing
individual tiles over and over again.
2023-02-03 15:16:13 +01:00
reuk
13d27987f4
VST3 Client: Enforce that process and setActive are not called simultaneously in FL Studio
Opening some JUCE VST3s in FL Studio's patcher can cause crashes because
of data races on objects accessed from setActive() and process().

According to the VST3 specification, these functions should never be
called simultaneously, so I think this is a bug in FL Studio.
2023-02-02 15:06:06 +00:00
reuk
f7d01e9a5e CodeEditorComponent: Remove unnecessary assertion 2023-02-01 23:05:51 +00:00
reuk
543b001e9c FileSearchPath: Allow working with paths that are not necessarily absolute
This allows paths that are prefixed with environment variables to behave
as expected. This is useful when scanning the default LV2 locations in
the AudioPluginHost on Windows.
2023-02-01 23:05:51 +00:00
Tom Poole
a28597c3c9 Fix GCC 12 compiler warnings 2023-01-31 12:54:56 +00:00
reuk
ff534baf5f GenericAudioProcessorEditor: Fix issue where the ChoiceParameterComponent would re-set the parameter value in response to a parameter value change 2023-01-27 22:29:08 +00:00
Oli James
b9cc72b167 LinuxWebComponent: Fix high CPU usage 2023-01-27 11:08:58 +00:00
reuk
39ba1c8383
VST3: Remove unhelpful assertion
Some hosts (e.g. REAPER) will attempt to instantiate plug-ins with 64
active channels, and JUCE can't represent this layout. In this case,
failing to convert between VST3/JUCE layouts is not a logical error, so
asserting is not appropriate.
2023-01-26 17:55:56 +00:00
martin@ncore.li
f7a28a6d62
VST3: Fix bad value returned from setBusArrangements() (false == kResultTrue) when in/out bus counts are mismatching 2023-01-26 16:51:39 +00:00
reuk
db90a31813
TreeView: Fix getAllVisibleItems() when only the final row of the tree fits in the viewport
Fixes #1118
2023-01-25 17:12:34 +00:00
reuk
621e5e3de4
AudioProcessorGraph: Add basic benchmark test 2023-01-25 17:12:33 +00:00
reuk
cd6939c073
AudioProcessorGraph: Improve lookup speed in isBufferNeedLater 2023-01-25 17:12:33 +00:00
reuk
4211a2a0fd
AudioProcessorGraph: Only prepare a render sequence for the current processing precision 2023-01-25 17:12:33 +00:00
reuk
eaa6dfc3ee
AudioProcessorGraph: Allow triggering manual rebuild, and avoid rebuilding if nothing has changed 2023-01-25 17:12:33 +00:00
reuk
c56102f50a
AudioFormatReaderSource: Avoid reading past the end of the wrapped AudioFormatReader 2023-01-25 17:07:25 +00:00
reuk
273275cf07
Android: Allow recording demo to write files on recent Android versions 2023-01-25 17:07:25 +00:00
reuk
a9a95fe69f
SystemStats: Add helper function to detect app sandbox 2023-01-25 17:07:24 +00:00
reuk
26a872ba9f
AudioDeviceManager: Send changeNotification when MIDI devices change
This patch also updates the MidiDemo to automatically refresh the device
lists when the set of available devices changes.
2023-01-25 17:07:24 +00:00