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