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

27 commits

Author SHA1 Message Date
reuk
457de394e0
iOS Audio: Remove buffer size assertion
This assertion is no longer relevant now that the AudioDeviceManager
enforces the maximum buffer size.
2025-05-27 14:39:27 +01:00
Anthony Nicholls
f985cf0c31 iOS: Restore sample rate after iterating available sample rates 2025-02-27 14:50:53 +00:00
Anthony Nicholls
a433e4dce0 iOS: Set target settings before updating hardware info to reduce the number of device changes 2025-02-27 14:50:53 +00:00
Anthony Nicholls
462c1c857e iOS: Improve performance when detecting and changing sample rates 2025-02-27 14:50:53 +00:00
Anthony Nicholls
4cbbf203f8 iOS: Improve performance when detecting and changing buffer sizes 2025-02-27 14:50:05 +00:00
Anthony Nicholls
5008d349e9 iOS: Prevent audio glitches when changing sample rate 2025-02-27 14:50:05 +00:00
Anthony Nicholls
bd7eff0705 iOS: Fix an issue in which the reported sample rate may not always be correct 2025-02-13 09:34:41 +00:00
Anthony Nicholls
0864d614fd iOS: Provide a workaround for discovering sample rates on iOS 18
There appears to be a bug on iOS 18 which means the session sample
may not update after a call to setPreferredSampleRate
2025-02-12 11:58:02 +00:00
Anthony Nicholls
5e803ded5f Deprecations: Add ignore deprecation warning macros 2024-11-27 11:07:04 +00:00
reuk
55fb6dbe62
iOS Audio: Ensure current sampleRate and bufferSize are always updated after querying sample rates
The code added in 6f20de5434 was only
executed when no explicit sample rates were set.

Now, the sample rate is always updated after querying available sample
rates and before querying available buffer sizes, so that the buffer
size check is guaranteed to use an up-to-date samplerate value.
2024-11-21 13:42:54 +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
6f20de5434
iOS Audio: Reset sample rate to default after querying available rates 2024-10-21 22:36:31 +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
reuk
6428f43eeb
Platform: Remove compatibility checks for iOS 10 2024-07-02 18:06:28 +01:00
Tom Poole
94d98a2b10 Update licensing information 2024-04-16 11:39:35 +01:00
Ian Clarkson
e2eb4aec94 macOS/iOS: Fix setting the AirPlay audio session category 2023-10-26 08:51:45 +01:00
Tom Poole
6bf9bb9a2e Add final specifiers in implementation files 2023-10-10 16:12:38 +01:00
Anthony Nicholls
90c458d92e Includes: Move some miscellaneous includes into module header and source files 2023-10-09 14:49:18 +01:00
Tom Poole
4153d59e39 Formatting 2023-10-02 15:42:20 +01:00
Tom Poole
9b041f3d74 Add a base clang-tidy configuration 2023-09-18 11:24:19 +01:00
Tom Poole
856aeaeeb1 iOS: Enable AirPlay 2023-09-15 15:48:03 +01:00
Oliver James
7d9cdd3016 Audio: Add AudioWorkgroup support
This allows real-time threads to join an audio workgroup on Apple platforms.
2023-08-30 12:03:47 +01:00
Tom Poole
82f1fd57a4 Fix some compiler warnings 2023-08-29 12:59:09 +01:00
reuk
28414a6af8
Global: Avoid floating-point equality checks where possible 2023-04-04 19:55:11 +01:00
Anthony Nicholls
05d5c94990
Native: Rename all native files for improved consistency 2023-04-04 19:54:29 +01:00
Renamed from modules/juce_audio_devices/native/juce_ios_Audio.cpp (Browse further)