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

572 commits

Author SHA1 Message Date
reuk
f9b6e2ef69 CoreAudio: Refactoring 2022-11-09 13:03:05 +01:00
attila
9f99f02eb2 CoreAudioIODevice: Fix stale channel information after device information change
Until this commit CoreAudioIODevice could report inconsistent information in its
getActiveOutputChannels() and getOutputChannelNames() functions, and for
inputs as well. The reason for this was that a sudden configuration change
would immediately be reflected by the CoreAudioInternal::Stream::chanNames
member because those are read in the Stream's constructor. The activeChan
member would however just store stale values, until the Stream was recreated
later during device reopen.

This issue could lead to the AudioPluginHost crashing when opening a
Bluetooth headset.
2022-11-09 13:03:05 +01:00
hogliux
4abdb6da3e ASIO: Make "DENON DJ ASIO Driver" workaround more specific to the exact buggy driver version 2022-10-26 09:35:07 +02:00
reuk
12be2e8838
CoreAudio: Avoid truncating device names 2022-10-20 18:12:49 +01:00
chroma
d3cff375be Thread: Introduce a new Thread backend
This is a breaking change - see BREAKING-CHANGES.txt
2022-10-18 11:49:47 +01:00
hogliux
98e0ee75a3 CoreAudio: Ensured that latency is correctly reported when input/output audio devices are different devices 2022-10-06 15:47:41 +02:00
hogliux
a8a0342745 CoreAudio: Include buffer size and stream latency when calculating CoreAudio device's total latency 2022-10-06 15:45:36 +02:00
hogliux
9a62775809 CoreAudio: More code modernisation and clean-up 2022-10-06 15:35:26 +02:00
attila
fcb7e0fc20 WinRT midi: Ensure object lifetimes in WinRT async callbacks
While the affected callbacks are cancelled before the referenced
state is deleted, we have had user reports that they can still be
accessed by the cancelled callbacks causing crashes. After only
finding warnings that WinRT AsyncCallback cancellation is not a
guaranteed thing, we saw it best to wrap the pointers.
2022-10-05 15:46:09 +02:00
hogliux
7958599848 CoreAudio: Fixed typo in recent CoreAudio clean-up 2022-09-28 16:31:58 +02:00
reuk
a6185421a2
ASIO: Add missing override on destructor 2022-09-27 15:18:21 +01:00
attila
f075de78fa AudioIODeviceCallback, AudioBuffer, AudioFormatReader: Use const T* const* for multi-channel data 2022-09-22 07:50:18 +00:00
Fabian Renn-Giles
37d57810f2 CoreAudio: Modernised code interacting with CoreAudio audio objects 2022-09-21 18:11:57 +00:00
hogliux
9f803fe88b WASAPI: Search for the maximum number of channels on a WASAPI device instead of relying on default 2022-09-14 14:17:40 +02:00
reuk
e9e39de069
AU: Avoid forming references to variable-size structs MIDIEventList and MIDIPacketList 2022-09-12 16:14:56 +01:00
attila
988d65e24f CoreAudio: Report error if combined devices don't share a common sample rate 2022-08-25 15:20:24 +02:00
attila
5ec536f13f CoreAudio: Forward errors to callback during device initialisation 2022-08-25 15:18:26 +02:00
reuk
455c865d37
CoreAudio: Avoid occasional deadlocks when calling AudioDeviceStart 2022-08-25 10:52:33 +01:00
reuk
f821015080
iOS: Remove iOS 10 preprocessor checks
The current minimum-supported Xcode (10.1) includes the iOS 12.1 SDK, so
APIs from iOS 10 will always be available.
2022-08-04 22:51:17 +01:00
Tom Poole
b51e835baf Mac Catalyst: Fix compilation issues 2022-08-02 10:00:12 +01:00
reuk
8fbd99c424
AudioPlayHead: Improve granularity of position info 2022-06-16 16:18:20 +01:00
Tom Poole
db3c6e6216 macOS/iOS: Fix unguarded availability warnings 2022-04-26 15:37:03 +01:00
reuk
cfa289d943
AudioProcessor: Allow querying of the host timestamp in processBlock 2022-04-22 14:18:49 +01:00
reuk
19ddbe2368
Warnings: Fix missing-prototypes warnings 2022-04-22 14:18:48 +01:00
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +01:00
reuk
5491e7aae2
ALSA: Fix thread sanitizer warnings 2022-04-01 16:41:47 +01:00
Tom Poole
1f29416fd0 AudioDeviceManager: Improve device sample rate handling 2022-04-01 14:31:46 +01:00
Tom Poole
8573fb2442 macOS: Fix default buffer size for AirPods Pro 2022-03-07 14:02:11 +00:00
reuk
1616c0ee26
CoreAudio: Ensure devices are restarted correctly after changing sample rate
f1b6bbc921 erroneously replaced

    callback = newCallback;
    previousCallback = callback;

with

    previousCallback = std::exchange (callback, newCallback);

It looks like previousCallback is intended to hold the last active
callback, so the previous version was correct after all.
2022-02-17 16:04:58 +00:00
Tom Poole
de97e53a87 Add 24000 Hz to standard device sample rates to support Airpods Pro 2022-01-21 16:38:49 +00:00
reuk
550d61e487
AudioIODevice: Ensure CoreAudio device can be restarted after stopping 2022-01-17 10:58:18 +00:00
reuk
f429647ae9
MinGW: Add uuid definitions for MinGW-w64 2022-01-17 10:58:17 +00:00
ed
f4f6433374 Android: Fix OpenSL build 2021-12-20 09:24:01 +00:00
ed
3f7791bbfe ASIO: Include max size when adding supported buffer sizes 2021-12-13 12:56:15 +00:00
ed
fc0f6b1f2f Tidy up 2021-12-02 09:24:55 +00:00
ed
b8cb4da497 ASIO: Amend 61fdde7c to always sleep after calling setSampleRate() 2021-12-02 09:24:34 +00:00
ed
61fdde7cf9 ASIO: Add short sleep after calling setSampleRate() to allow devices to respond to changes 2021-11-30 17:07:31 +00:00
reuk
f1b6bbc921
CoreAudio: Fix thread sanitizer warnings 2021-11-24 11:51:12 +00:00
ed
7d1918b385 macOS/iOS: Replace compile-time deployment target checks with runtime checks using the available keyword 2021-10-13 15:06:18 +01:00
ed
69d4e0186f Update code to use new AudioData interleaving/deinterleaving API 2021-10-06 16:44:51 +01:00
ed
3e606cc378 Update code to use new AudioData interleaving/deinterleaving helper methods 2021-10-05 17:30:13 +01:00
ed
291f88abb2 macOS/iOS: Suppress and fix unguarded availability warnings 2021-09-29 16:13:27 +01:00
reuk
22f0f2b433
AudioDeviceManager: Refactor to avoid repetition 2021-09-28 11:31:47 +01:00
reuk
b0bd1c4f63
SingleThreadedAbstractFifo: Move into juce_core 2021-09-27 13:15:39 +01:00
reuk
9199fa3c51
Warnings: Avoid triggering missing-prototypes warnings on macOS/iOS 2021-09-23 10:28:47 +01:00
reuk
fd87195941
iOS Audio: Allow specifying a fixed set of preferred sample rates
By defining JUCE_IOS_AUDIO_EXPLICIT_SAMPLERATES, the iOS audio device
will always use the requested samplerates instead of querying the
current audio device for the samplerates it supports. This is useful
because certain hardware (such as the Focusrite iTrack Dock) takes a
long time to set new samplerates, which can end up freezing the main
thread for significant lengths of time.

This approach is inspired by the AUM app for iOS, which appears to
provide a fixed list of "allowed" samplerates, rather than querying the
device for its allowed samplerates.
2021-09-22 10:23:04 +01:00
reuk
3f5862cf17
WASAPI: Tidy up internal buffering mechanism 2021-09-22 10:23:04 +01:00
ed
a6df818255 Android: Update to Oboe release 1.6.1 2021-08-11 11:50:04 +01:00
ed
cffb544941 UMP: Remove juce_audio_devices dependency 2021-07-27 12:32:22 +01:00
reuk
3c68581567
Use jassertquiet where possible 2021-07-23 10:58:44 +01:00