Ryan C. Gordon
d16f76e3d4
wasapi: Don't crash/hang if transitioning to/from a Remote Desktop Connection.
...
Fixes #9673 .
2025-01-05 21:53:35 -05:00
Sam Lantinga
f2074d7af3
Updated copyright for 2025
2025-01-01 07:45:52 -08:00
Petar Popovic
5f25691c85
Fix C23 empty initializer warning.
2024-12-29 18:17:24 -08:00
Carl Åstholm
49153ebfc4
audio: Add NULL check to SDL_UnbindAudioStreams
2024-12-28 00:10:58 -05:00
Carl Åstholm
1b99467c71
audio: Make SDL_Bind/UnbindAudioStreams take const arrays
2024-12-28 00:10:58 -05:00
Sam Lantinga
b2178857dc
Corrected CoreAudio surround sound channel layouts
...
Fixes https://github.com/libsdl-org/SDL/issues/11709
2024-12-24 15:03:25 -08:00
L zard
af2dbbcb53
Merge SDL_wasapi_win32 into SDL_wasapi
2024-12-23 16:54:52 -08:00
Ryan C. Gordon
0bb42cb023
alsa: a few more minor formatting tweaks.
2024-12-16 12:19:48 -05:00
Ryan C. Gordon
483ceb5355
alsa: Reenable SDL's internal channel map support when ALSA can't swizzle.
2024-12-16 12:19:48 -05:00
Ryan C. Gordon
35360ec4d7
alsa: Use more hints for opening default devices.
2024-12-16 12:19:48 -05:00
Ryan C. Gordon
576f13ac7c
alsa: Put debug logging back into correct category and logging level.
2024-12-16 12:19:48 -05:00
Ryan C. Gordon
ff96c59df4
alsa: Add back in code to guess the correct ALSA device prefix.
2024-12-16 12:19:48 -05:00
Ryan C. Gordon
b108b54c6a
alsa: Bring up to current SDL coding conventions and standards, other tweaks.
2024-12-16 12:19:48 -05:00
Ryan C. Gordon
639855b7e5
alsa: Remove direct calls to memset
2024-12-16 12:19:48 -05:00
Ryan C. Gordon
a4a1dff219
alsa: remove loop macro
2024-12-16 12:19:48 -05:00
Ryan C. Gordon
b9c062c858
alsa: Pulled in latest changes from @sylware
2024-12-16 12:19:48 -05:00
Sam Lantinga
76e7bc4c04
Added support for ALSA dmix audio output (thanks @sylware!)
...
Fixes https://github.com/libsdl-org/SDL/issues/8577
2024-12-16 12:19:48 -05:00
Ryan C. Gordon
ac2edad809
audio: Simplify and unify audio stream format updating when devices change.
...
This used to do different things for recording streams in different parts of
the codebase, not to mention two separate codepaths through
UpdateAudioStreamFormatsPhysical in any case. My hope is this should kill off
a few corner case bugs...for example, this one:
Fixes #8402 .
2024-12-13 14:59:16 -05:00
Ryan C. Gordon
80b9986418
audio: Fixed potential NULL dereference.
...
This could happen if you call SDL_BindAudioStreams() when the subsystem isn't
initialized, and possibly in other corner cases.
Thanks to Qianxin CodeSafe Team, @QiAnXinCodeSafe, for discovering this issue!
Fixes #11643 .
2024-12-13 10:12:33 -05:00
Sam Lantinga
61511c48a4
SDL_HashTable is now optionally thread-safe
...
Fixes https://github.com/libsdl-org/SDL/issues/11635
2024-12-12 14:39:53 -08:00
Ryan C. Gordon
e0cee83a3a
emscriptenaudio: Removed comment about Firefox not supporting userActivation.
...
It does now, and has since Firefox 120 (around November 2023).
2024-12-12 10:48:23 -05:00
Ryan C. Gordon
9784e10a75
audio: Let emscripten update device->sample_frames at device open time.
...
Fixes #11435 .
2024-12-04 19:16:28 -05:00
Ryan C. Gordon
65c9a58f5e
audio: Make sure a few bitflag checks convert to bools correctly.
...
This might just be defensive coding, but better safe than sorry on this.
2024-12-03 11:04:52 -05:00
Ryan C. Gordon
ce573b01f8
audio: Added SDL_IsAudioDevicePhysical and SDL_IsAudioDevicePlayback.
...
Fixes #11529 .
2024-11-29 17:31:37 -05:00
Ryan C. Gordon
f5ad66ef4b
audio: Allow channel maps to specify -1 to mute a channel.
...
Fixes #11373 .
2024-11-28 00:00:30 -05:00
Sam Lantinga
c508396e33
Avoid usage of CreateEventEx in WASAPI code
...
This also uses FALSE as parameters consistently for CreateEvent()
2024-11-24 17:49:17 -08:00
Sam Lantinga
932bb968d7
Fixed infinite recursion when the microphone is unavailable
2024-11-20 16:07:43 -08:00
Ryan C. Gordon
32cc92dceb
pipewire: i/o callbacks should avoid higher-level iteration during device open.
...
Sometimes these callbacks will fire while we're still waiting on state to
settle down in PIPEWIRE_OpenDevice, which means we're holding the device lock,
but then the i/o callback will fire from a background thread and also try to
grab the device lock, but can't, because PIPEWIRE_OpenDevice is holding it and
waiting for this i/o callback to finish...hence, a deadlock.
So now, if the device is still opening, output callbacks will write silence
and input callbacks will just flush the buffer, without calling the main
iterate function, and thus avoid obtaining the lock.
2024-11-12 15:18:41 -05:00
Sam Lantinga
54ff1f35bd
Fixed audio dropouts when plenty of audio is queued on Android
2024-11-07 19:29:51 -08:00
Sam Lantinga
37b49c98dc
Fixed setting up surround sound on NVIDIA Shield TV
2024-11-07 19:05:29 -08:00
Sam Lantinga
97dac37373
Added SDL_HINT_ANDROID_LOW_LATENCY_AUDIO
2024-11-07 16:34:34 -08:00
Sam Lantinga
6836ef8fd2
Added logging for low latency audio state
2024-11-07 16:31:35 -08:00
Ryan C. Gordon
8d3bec99a7
audio: Make SDL_GetAudioStreamProperties() thread safe.
2024-10-24 14:37:23 -04:00
Ryan C. Gordon
b6a6a4a7f8
audio: fix incorrect dynCall in Emscripten audio.
...
This only seemed to cause problems with `-s ASYNCIFY` on the build command
line, but it was incorrect in general.
Fixes #11258 .
2024-10-18 23:53:40 -04:00
Caleb Cornett
9af5ffcfbe
Improve support for private platforms ( #11220 )
2024-10-15 18:02:07 -04:00
Zack Middleton
fb43dc3097
Set error for NULL SDL_IOStream in SDL_LoadWAV_IO()
2024-10-14 20:07:03 -07:00
Ryan C. Gordon
02434cd293
emscripten: Fixes for data addresses above 2gb
...
This includes both wasm64 and wasm32 when addressing more than 2gb of memory.
Fixes : #9052
(Manually cherry-picked from 3deb07ea395373204462130c1e062bc1f71fe060.)
2024-10-08 17:41:18 -04:00
Sam Lantinga
fe2880fcda
Rename SDL_SetThreadPriority() to SDL_SetCurrentThreadPriority()
...
Fixes https://github.com/libsdl-org/SDL/issues/11055
2024-10-04 08:57:03 -07:00
Ryan C. Gordon
0b5e01a305
loadso: library handles are now SDL_SharedObject* instead of void*.
...
Improved the SDL_loadso.h documentation a little, too.
Fixes #11009 .
2024-10-01 12:16:10 -04:00
Sam Lantinga
3234a3b902
Simplified internal SDL_Surface structure
2024-10-01 08:10:04 -07:00
Petar Popovic
457d0edeaf
Remove some extra semicolons
2024-09-26 20:01:56 +03:00
Sam Lantinga
95c3ee77c1
Removed testing code
2024-09-18 11:12:06 -07:00
Sam Lantinga
d658ef6627
Don't guess about the size of an int, assert it!
2024-09-18 10:37:11 -07:00
Sam Lantinga
a90ad3b0e2
Removed SDL_bool in favor of plain bool
...
We require stdbool.h in the build environment, so we might as well use the plain bool type.
If your environment doesn't have stdbool.h, this simple replacement will suffice:
typedef signed char bool;
2024-09-18 08:32:30 -07:00
Sam Lantinga
bd04459cde
Fix typos (thanks @qndel!)
...
Fix typos in comments and in one case in a returned error ("insuffient -> insufficient" fb273eb )
codespell src/ *.cpp *.h *.hpp --ignore-words-list unknwn,thid,algebric,statics,pixelX,pEvents,caf,ptd,parms,pEvent,parm,TextureRS,TE,HDA,LOD,datas,UE,xwindows,IIF
cd src; git checkout \
events/imKStoUCS.* \
hidapi \
joystick/controller_type.c \
joystick/controller_type.h \
joystick/hidapi/steam/controller_constants.h \
joystick/hidapi/steam/controller_structs.h \
libm \
stdlib/SDL_malloc.c \
stdlib/SDL_qsort.c \
stdlib/SDL_strtokr.c \
video/khronos \
video/x11/edid.h \
video/x11/edid-parse.c \
video/x11/xsettings-client.* \
video/yuv2rgb
2024-09-18 08:18:26 -07:00
Sam Lantinga
03ae792df3
Fixed the recording field in audio device events
...
Fixes https://github.com/libsdl-org/SDL/issues/10885
2024-09-17 11:36:55 -07:00
Sam Lantinga
8d223b3037
Renamed atomic functions to match SDL 3.0 naming convention
...
This will also allow us to cleanly add atomic operations for other types in the future.
2024-09-17 08:53:27 -07:00
Sam Lantinga
9275c533ca
Added thread-safe initialization/cleanup support
...
Also went through and removed inappropriate uses of spinlocks.
Fixes https://github.com/libsdl-org/SDL/issues/10872
2024-09-17 08:53:27 -07:00
Simon McVittie
ab9c68d9ff
pipewire: Always destroy hotplug loop during deinitialization
...
We always need to destroy the hotplug loop and its associated resources
(if created) before we can deinitialize and unload the Pipewire library.
In the happy path where everything worked correctly, this means we will
call hotplug_loop_destroy() twice (once from PIPEWIRE_DeinitializeStart()
and a second time from PIPEWIRE_Deinitialize()), but that's OK, because
it's idempotent and so will do nothing the second time.
In error-handling code paths, this avoids needing to remember to call
hotplug_loop_destroy() explicitly, which should make it easier to avoid
bugs like #10787 .
Signed-off-by: Simon McVittie <smcv@collabora.com >
2024-09-17 07:35:42 -07:00
Sam Lantinga
28b94c4758
Re-added SDL_getenv() as a thread-safe getenv() implementation
2024-09-15 09:37:04 -07:00