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

14923 commits

Author SHA1 Message Date
Tom Poole
ef28243c64 UnitTestRunner: Fix an overzealous test for the existence of a user directory 2024-11-05 20:50:04 +00:00
reuk
8ae3bffe82
Whitespace: Fix whitespace and line endings in cmake files 2024-11-05 17:56:39 +00:00
reuk
24ab3cb6a3
Windows: Fix mouse position reporting for maximised windows with non-native titlebars
Previously, windows with non-native titlebars but with native shadows
would misreport mouse-down and mouse-up positions when maximised.
2024-11-05 13:28:10 +00:00
reuk
90fbdfeb00
Android: Update Oboe to 1.9.0 2024-11-05 13:28:10 +00:00
reuk
93640b63ff
Compatibility: Add new macros for straightforward checking of minimum deployment target
This also fixes a bug introduced in f7c7225f5c
where the condition guarding the definition of traitCollectionDidChange
was incorrect. This function is never required if the deployment target
is at least 17.0.
2024-11-05 13:28:10 +00:00
reuk
8e086c7f05
juce_dsp: Move include of juce_audio_formats to .cpp 2024-11-05 13:28:10 +00:00
reuk
a7e9edb2e9
StandaloneFilterWindow: Update implementation of getInstance to avoid iterating through desktop windows 2024-11-05 13:28:08 +00:00
reuk
ec4dfe1556 CMake: Warn when the C language is not enabled 2024-11-05 10:08:05 +00:00
reuk
6db2e5ae66 CMake: Add missing VST3_HELPER to JUCEConfig file 2024-11-05 10:08:05 +00:00
Oliver James
f27fbbb4a6 CMake: Don't configure xcode entitlements on non-Apple platforms 2024-11-05 10:08:05 +00:00
Anthony Nicholls
24d33759b8 Javascript: Update choc dependency
This fixes an issue when evaluating javascript on macOS while address sanitiser
and undefined behaviour sanitiser are both enabled
2024-11-05 09:00:18 +00:00
reuk
b108fe26c3
NSViewComponentPeer: Only forward a mouse move event if the view is not occluded by a child view 2024-11-04 11:10:54 +00:00
reuk
fcf62ab105
NSViewComponentPeer: Fix coordinate system conversion in contains()
The argument to hitTest must be in the superview's coordinate system.
The old implementation would sometimes break in the presence of nested
NSViews.
2024-11-04 11:10:54 +00:00
reuk
f521a6cac1
AudioProcessorPlayer: Allow client AudioProcessor to keep a supported layout
Previously, the AudioProcessorPlayer would attempt to find a supported
layout that matched the audio device's output channel count, and would
force the processor to use the audio device's i/o channel counts if no
better and compatible alternative could be found.

This change allows the AudioProcessor to retain its current i/o
configuration if no better alternative can be found. This may lead to
the AudioProcessor having different numbers of inputs and outputs to the
audio device.

If there's only one audio device input, this will be copied to all of
the AudioProcessor's inputs. Otherwise, each audio device input channel
will be copied to the corresponding AudioProcessor input channel. If
there are more device inputs than AudioProcessor inputs, then some
device inputs will be discarded. AudioProcessor inputs without a
corresponding device input will be cleared/silenced.

Similar rules apply to the output channels. If there are more device
outputs than AudioProcessor outputs, then device outputs without a
corresponding AudioProcessor output will be cleared. If there are more
AudioProcessor outputs than device outputs, some AudioProcessor outputs
will be discarded.
2024-11-04 11:10:53 +00:00
reuk
869a20ca30
AudioProcessorPlayer: Make buffer remapping more robust
This change improves the initialiseIoBuffers function so that it can
handle the situation where the number of processor outputs does not
match the number of system outputs, and/or when the number of system
inputs is not 0, 1, or equal to the number of processor inputs.
2024-11-04 11:10:53 +00:00
reuk
8b85a62298
AudioProcessorPlayer: Refactor test to allow easier testing of arbitrary i/o combinations 2024-11-04 11:10:53 +00:00
reuk
167f846565
AudioProcessorPlayer: Replace ChannelInfo struct with Span 2024-11-04 11:10:52 +00:00
Tom Poole
06325689dd Linux: Fix detection of 64 bit Arm 2024-10-31 15:23:17 +00:00
reuk
3005b716fe
ObjCHelpers: Add new macros to help with version checking 2024-10-29 19:46:35 +00:00
reuk
7290d6dc2f
CameraDevice: Fix deprecation warnings for iOS 17 2024-10-29 19:46:35 +00:00
reuk
eb6ebaf5af
Windowing: Fix deprecation warnings for iOS 17 2024-10-29 19:46:35 +00:00
reuk
dbe74e9f5d
UIViewComponentPeer: Fix deprecation warnings for iOS 13 2024-10-29 19:46:35 +00:00
reuk
f7c7225f5c
UIViewComponentPeer: Fix deprecation warnings for iOS 17 2024-10-29 19:46:35 +00:00
reuk
128e258845
UIViewComponentPeer: Remove unnecessary method declarations from interface 2024-10-29 19:46:34 +00:00
reuk
a4ba0c1b1c
FileChooser: Fix deprecation warnings for iOS 14 2024-10-29 19:46:34 +00:00
reuk
a901b55b0b
AudioChannelSet: Add missing layouts to channelSetsWithNumberOfChannels 2024-10-29 14:42:28 +00:00
Anthony Nicholls
b78ff3bf7e HighResolutionTimer: Add fallback implementation for Windows 2024-10-29 13:06:28 +00:00
reuk
57aa8f07a6
CMake: Remove redundant DEPENDS argument 2024-10-28 13:20:30 +00:00
reuk
3506d66fae
iOS Audio: Always deactivate device before setting new preferred samplerate
This fixes a bug on iOS 17 running on a 9th gen iPad.

- Set JUCE_IOS_AUDIO_EXPLICIT_SAMPLERATES=44100,48000,88200,96000
- Start the DemoRunner.
- Add a breakpoint in AudioDeviceManager::audioDeviceAboutToStartInt().
- In the DemoRunner, change the sample rate to 96000.
- The breakpoint will fire. Observe the value of
  getCurrentBufferSizeSamples().
- Move the breakpoint to audioDeviceIOCallbackInt and continue
  execution.
- The breakpoint will fire. Observe the value of the numSamples
  parameter.

numSamples should always be no larger than the sample count reported in
audioDeviceAboutToStartInt().

Before this change, it was possible for getCurrentBufferSizeSamples() to
return a value smaller than the buffer size of subsequent process
callbacks.

Removing the availability checks and unconditionally
deactivating/reactivating the device seems to fix this issue, and the
correct buffer size is returned immediately when the device is
(re)started.
2024-10-28 11:12:47 +00:00
reuk
1189687611
AAX Client: Add support for AAX_EPlugInCategory_MIDIEffect, added in AAX SDK 2.6.1
This change also bumps the minimum supported AAX SDK to 2.6.1
2024-10-28 11:12:47 +00:00
reuk
d54febd8f5
Projucer: Automatically set AAX_EPluginCategory_MIDIEffect when JUCE_MIDI_EFFECT is enabled 2024-10-28 11:12:47 +00:00
reuk
d9fe2f0e77
CMake: Automatically set AAX_EPluginCategory_MIDIEffect when JUCE_MIDI_EFFECT is enabled 2024-10-27 16:16:26 +00:00
無常
d9ed81b4f0
WindowsDLL: Add missing JUCE_API attributes 2024-10-27 16:16:26 +00:00
attila
ed80adb3c7 CMake: Windows: Fix architecture detection for projects using add_subdirectory(JUCE... 2024-10-25 15:51:36 +02:00
attila
2d6bb5ba0e Linux: CMake: Omit linking browser related dynamic libraries
We've already had a mechanism in place which loads these libraries, such
as libwebkit2gtk-4.1.so, only if they are available on the system during
runtime. This way we can run with either version 4.1 or 4.0 of the
library depending on which one is available.

It's also possible to run apps on headless systems with the relevant
features being effectively disabled in such situations.
2024-10-25 15:51:22 +02:00
attila
11403080ba VBlankAnimatorUpdater: Use the timestamp provided by VBlankAttachment 2024-10-25 15:45:56 +02:00
attila
425f1858b5 VBlankAttachment: Add new constructor with a callback that receives a timestamp 2024-10-25 15:45:56 +02:00
attila
d9a3efd3cb ComponentPeer::VBlankListener: Add timestamp parameter to the vblank callback 2024-10-25 15:44:34 +02:00
reuk
4bc2952419
OpenGL: Set up context sharing on the GL thread, rather than the main thread
wglShareLists will only succeed when the shared context is not currently
active on another thread, but it is difficult to ensure that the GL
thread is paused/inactive at any given time - in particular, it's very
easy to accidentally introduce deadlocks where the main thread waits for
the render thread's lock while the render thread waits for the
messagemanager lock.

The simplest way to ensure that no other thread has activated the shared
context is to share the contexts directly on the render thread itself.
2024-10-24 20:43:10 +01:00
reuk
10680f9bf7
OpenGL: Detach OpenGL context after initialisation 2024-10-24 20:43:10 +01:00
reuk
e2e3d949c7
OpenGL: Use C++ thread_local instead of JUCE ThreadLocal 2024-10-24 20:43:10 +01:00
reuk
fcaf5adb25
OpenGL: Avoid displaying OpenGL window until a frame has been drawn
This avoids an issue where, when attaching an OpenGLContext as a child
of a window rendered with Direct2D, the area covered by the OpenGL
renderer would display as a white rectangle until the context had
drawn a frame. This only affected the Direct2D renderer; when the parent
window used the software renderer, no white rectangle was shown.
2024-10-24 20:43:09 +01:00
無常
a784d5776b TextLayout: Fix getStringBounds of empty strings 2024-10-24 19:40:42 +01:00
attila
3c38adcc03 ResizableWindow: Remove assertion
The assertion can routinely fire on Linux, where a window may go through
many size changes from (0, 0) to its actual size due to the nature of
how XWindow reports these in subsequent ConfigureNotify events.

These subsequent changes aren't visibly observable by users.
2024-10-24 13:10:14 +02:00
attila
3118ee1e5c Linux: Prevent stale ConfigureNotify events from overwriting the current window position 2024-10-24 13:10:14 +02:00
reuk
efb0daf2e9
Standalone: Fix typo in standalone wrapper 2024-10-23 12:32:24 +01:00
Tom Poole
9e193862c1 CMake: Improve Windows Arm architecture detection 2024-10-23 10:59:05 +01:00
reuk
cba00cc71f Projucer: Always enable generated manifests for VS exporters 2024-10-22 15:51:39 +01:00
reuk
7a363377e0 WindowsDLL: Fix project type
The type was incorrectly changed to "static library".
2024-10-22 14:11:13 +01:00
reuk
90f37e27ea Windows: Fix DLL build
There were a few "ambiguous operator new/delete" errors that were due to
inheriting from a private base class that used the leak detector. These
errors are resolved by adding the leak detector to the derived classes.

JUCE_API was missing from a few useful types, notably the ARA hosting
types.
2024-10-22 13:24:46 +01:00