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

993 commits

Author SHA1 Message Date
attila
0e685a9c5b Android: Add missing getAndroidRealtimeThreadFactory implementation
The issue affected projects not depending on juce_audio_devices.
2022-12-16 23:12:28 +01:00
reuk
93063de28d
CoreAudio: Avoid data race on fifo storage
Previously, whenever the output device sample time changed from
'invalid' to 'valid', the AudioBuffer fifo in the AudioIODeviceCombiner
was cleared. This caused a data race, since the clear operation was not
mutually exclusive with writes from the input device.

This change causes the AudioIODeviceCombiner to keep track of the
timestamp of the first input device callback after the output device is
invalidated. The output device is unable to read from the fifo until its
timestamp exceeds the stored input device callback timestamp.
2022-12-14 15:12:17 +00:00
reuk
6cd2ed022d
CoreAudio: Avoid race on currentSampleRate data member of AudioIODeviceCombiner 2022-12-14 13:17:57 +00:00
reuk
753b750858
Android: Fix build issues with OpenSL
Previously, JUCE_ANDROID_REALTIME_THREAD_AVAILABLE sometimes remained
unset, even though JUCE_USE_ANDROID_OBOE was set to its default value.
This is because in this case, JUCE_USE_ANDROID_OBOE is only defined in
juce_audio_basics.h, so it is not visible when compiling juce_core.cpp.
2022-12-14 11:12:32 +00:00
reuk
da38c1ed2a
TextInputTarget: Improve IME support on Android 2022-12-07 13:12:02 +00:00
reuk
28f2157912
Convert ignoreUnused to [[maybe_unused]] 2022-12-01 11:41:50 +00:00
Tom Poole
306ed633c6 Bump version number to 7.0.3 2022-11-29 11:04:54 +00:00
attila
5162793245 CoreAudioIODevice: Fix handling channel configurations with disabled lower bits
Prior to this commit it was not possible to deactivate the first few
channels of an audio device. If say channel 5 was active in the
requested configuration then all channels up to 5 would be active as
well regardless of the provided activation pattern.
2022-11-23 12:11:26 +01:00
attila
b33dde8134 CoreAudio: Report the number of active output channels in the device callback
As opposed to the number of hardware output channels.
2022-11-23 12:11:26 +01:00
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
c97864d7f3 Remove AudioIODeviceCallback::audioDeviceIOCallback 2022-09-22 07:50:18 +00: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
b3a4d54a72
Build: Update the minimum C++ standard to C++17 2022-09-12 16:14:57 +01: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
3323c68f96 AudioDeviceManager: Take sample rate compatibility into account during default device selection 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
Tom Poole
7296b8e3f7 Bump version number to 7.0.2 2022-08-15 17:26:35 +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
Tom Poole
fd8607302d Bump version number to 7.0.1 2022-07-04 15:07:43 +01:00
Tom Poole
8b399998b4 Bump version number to 7.0.0 2022-06-21 08:38:55 +01:00
reuk
8fbd99c424
AudioPlayHead: Improve granularity of position info 2022-06-16 16:18:20 +01:00
Oli
2bca60e52c AudioDeviceManager: Fix MidiOutput dangling pointer
Changed the lifetime of the default MIDI oputput.
Removed the need for Timer workaround in AudioDeviceSelectorComponent.
2022-05-10 16:32:36 +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
reuk
b710a248bd
UnitTests: Rename UMPTests file for consistency 2022-03-23 16:51:39 +00:00
Tom Poole
8573fb2442 macOS: Fix default buffer size for AirPods Pro 2022-03-07 14:02:11 +00:00
Tom Poole
111bbc0979 Bump version number to 6.1.6 2022-02-28 12:53:10 +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
3c03693d07 Bump version number to 6.1.5 2022-01-26 13:00:05 +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
df206371ff
AudioDeviceManager: Ensure device settings are up to date before notifying callbacks 2022-01-17 10:58:18 +00:00