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

922 commits

Author SHA1 Message Date
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
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
reuk
6f20de5434
iOS Audio: Reset sample rate to default after querying available rates 2024-10-21 22:36:31 +01:00
reuk
80ac9a78a0
Singleton: Add new macros to simplify singleton creation
The INLINE macros allow singletons to be declared and defined in one
line, without requiring a separate JUCE_IMPLEMENT_SINGLETON statement.
2024-10-16 10:36:52 +01:00
Tom Poole
14c8d06fb0 Bump version number to 8.0.3 2024-10-15 22:16:12 +01:00
reuk
7e73ed7c36
iOS Audio: Use hard-coded set of potential block sizes to avoid slow hardware queries 2024-10-04 14:37:58 +01:00
attila
70c9c5bfdb
iOS Audio: Add waiting mechanism after AVAudioSession setActive: to ensure correct buffer size detection on iOS 18
The waiting is only added on iOS 18 as this is the only platform where
seems to be an asynchronous relationship between
(1) AVAudioSession setActive:
(2) AVAudioSession setPreferredIOBufferDuration:
and (3) AVAudioSession.IOBufferDuration.

The issue is not observable in the iOS 18 emulator.
2024-10-03 17:46:49 +01:00
reuk
d3e254e24f
iOS Audio: Request exactly the desired buffersize, to avoid an issue where iOS 18 fails to apply non-power-of-2 sizes 2024-10-03 17:46:49 +01:00
Tom Poole
7d3affbcb3 Merge master JUCE 8.0.2 branch 2024-09-26 12:43:39 +01:00
Anthony Nicholls
6c2d149ef3 Versioning: Add the JUCE version number to any internally created threads 2024-09-26 08:10:56 +00:00
Tom Poole
c1d2846e47 Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
Yuki
faa850a48c Oboe: Remove an erroneous semicolon 2024-08-27 14:22:49 +01:00
attila
3f1e945b78 Replace is_pod_v (deprecated by C++23) with is_standard_layout 2024-08-15 11:15:15 +02:00
attila
5ce2fc388e Fix C++23 compilation 2024-08-15 11:15:15 +02:00
attila
b083d3c6d8
MIDI: Fix compilation when JUCE_USE_WINRT_MIDI=1 2024-08-06 16:37:12 +01:00
Anthony Nicholls
059b667af2 ListenerList: Replace ListenerList with LightweightListenerList in select places 2024-08-01 16:10:09 +00:00
Anthony Nicholls
2e6ee49cfa ListenerList: Add a LightweightListenerList class
When extra guarantees were added to ListenerList to guard against mutations of
the list from callbacks, it also resulted in removing a previously observable
guarantee that calls to the listeners could be made concurrently as long as
those listeners were themselves thread safe. This commit adds a new class that
restores that behaviour for anybody who needs it.
2024-08-01 16:10:09 +00:00
Tom Poole
fc0fd3042f Bump version number to 8.0.1 2024-07-29 12:43:19 +01:00
reuk
ba9b6581b7
Platform: Remove references to unsupported platforms in docs and strings 2024-07-03 13:50:08 +01:00
reuk
b89553ae2c
Platform: Remove build-time Apple SDK availability checks 2024-07-03 13:50:08 +01:00
reuk
5c1b75cab7
Platform: Remove compatibility checks for Windows 8.1 and earlier 2024-07-03 13:47:06 +01:00
reuk
8ba2dc2ae2
Platform: Remove compatibility checks for Android 20 and earlier 2024-07-03 13:45:37 +01:00
reuk
6428f43eeb
Platform: Remove compatibility checks for iOS 10 2024-07-02 18:06:28 +01:00
reuk
9112911122
MinGW: Remove support 2024-06-27 18:10:21 +01:00
Anthony Nicholls
4808fdce30 CoreAudio: Prevent racing between calls to start and stop a device 2024-06-12 09:35:32 +01:00
reuk
72c7fd3070
CoreAudio: Allow non-combined devices to restart successfully 2024-05-20 12:49:55 +01:00
reuk
f2449cb092
CoreAudioIODevice: Make stopAndGetLastCallback() private 2024-05-20 12:49:55 +01:00
reuk
1f9ba0682c
ComSmartPtr: Make ownership more explicit
COM objects now always start with a refcount of 1, as is convention.
2024-04-16 21:07:45 +01:00
Tom Poole
2fc069b450 Bump version number to 8.0.0 2024-04-16 17:43:20 +01:00
Tom Poole
94d98a2b10 Update licensing information 2024-04-16 11:39:35 +01:00
Tom Poole
1d83803a18 Bump version number to 7.0.12 2024-04-15 10:27:43 +01:00
Tom Poole
aace97904c Bump version number to 7.0.11 2024-03-26 08:04:02 +00:00
reuk
5d0584059c
CoreAudio: No longer consider a device stopping to be a failure
The device may need to stop because it is about to restart with new
settings.

e.g. When the DemoRunner is started while the microphone is set to
44.1KHz and the speakers are set to 48KHz in Audio MIDI Settings, one of
the devices must be restarted in order for the AudioDeviceCombiner to
work. In this situation, stopping one device shouldn't count as an
error, because the device will be started again with new, compatible,
settings.
2024-03-06 15:58:17 +00:00
Tom Poole
4555a8d1ad Bump version number to 7.0.10 2024-02-12 15:15:15 +00:00
reuk
047448fbce
Warnings: Add missing overrides 2024-01-30 11:37:30 +00:00
reuk
35d29d2459
Oboe: Update to 1.8.0 2023-11-29 13:56:10 +00:00
Anthony Nicholls
e8d221ccb3 CoreAudio: Fix a bug when retrieving the index of a device nested inside an AudioIODeviceCombiner 2023-11-21 13:31:41 +00:00
Tom Poole
61aa1fc4ab Bump version number to 7.0.9 2023-11-20 14:03:35 +00:00
Ian Clarkson
e2eb4aec94 macOS/iOS: Fix setting the AirPlay audio session category 2023-10-26 08:51:45 +01:00
Tom Poole
45494e34d5 Bump version number to 7.0.8 2023-10-19 09:06:32 +01:00
attila
04978b52dd Windows: Fix MIDI compilation issue with WinRTIOWrapper 2023-10-11 00:14:28 +02:00
Tom Poole
6bf9bb9a2e Add final specifiers in implementation files 2023-10-10 16:12:38 +01:00
Anthony Nicholls
158220ddfa Formatting: Use nested namespace definitions 2023-10-09 14:49:18 +01:00
Anthony Nicholls
90c458d92e Includes: Move some miscellaneous includes into module header and source files 2023-10-09 14:49:18 +01:00
Anthony Nicholls
4c5cee578a AudioWorkgroup: Fix an issue with reference counters 2023-10-03 21:40:55 +01:00
Tom Poole
4153d59e39 Formatting 2023-10-02 15:42:20 +01:00
Tom Poole
ff0cb4ad5b Use NullCheckedInvocation in more places 2023-10-02 13:40:10 +01:00
Tom Poole
2fb19ffd8f Fix some LLVM 17 compiler warnings 2023-09-25 11:21:11 +01:00
reuk
1f90ecf6e3 WASAPI: Allow querying default layouts 2023-09-20 19:17:54 +01:00
reuk
3ee03cadd9
WASAPI: Avoid OOB write when the device activates fewer channels than requested 2023-09-20 18:41:51 +01:00