Chris Robinson
8b24255557
Request the device's sample type for SDL2
2018-03-09 10:53:03 -08:00
Chris Robinson
46e7e96eb3
Store the frame size for the SDL2 backend
2018-03-08 22:23:36 -08:00
Chris Robinson
41cc82e84b
Print the unsupported values from SDL2
2018-03-08 22:09:30 -08:00
Chris Robinson
2866c6cf28
Init and quit the SDL2 audio subsystem with the factory
2018-03-08 18:59:22 -08:00
Chris Robinson
0c7fa1b955
Avoid deinitializing backends that never initialized
2018-03-08 18:53:49 -08:00
Chris Robinson
aa7df8183f
Also save the update size with SDL2
2018-03-08 18:22:03 -08:00
Chris Robinson
58760e6184
Use the audio device lock for the SDL2 backend
2018-03-08 18:16:10 -08:00
Chris Robinson
52ca70d98e
Properly close the SDL2 audio device
2018-03-08 18:12:14 -08:00
Chris Robinson
d4fc87fc9c
Avoid calling SDL_GetNumAudioDevices multiple times
2018-03-08 18:07:49 -08:00
Chris Robinson
52dee31270
Only calculate the modulation samples once for all 4 channels
2018-03-08 17:48:22 -08:00
Chris Robinson
22d3e3b563
Simplify modulator effect index updating
2018-03-08 17:48:21 -08:00
Chris Robinson
4e613c5d4b
Rename UpdateContextSources for clarity
2018-03-08 17:48:21 -08:00
Chris Robinson
19281868dc
Properly limit the max number of effect slots to 2^31 - 1
2018-03-08 17:48:21 -08:00
Jan Niklas Hasse
2eb29d538b
SDL2 backend: Reset device parameters
2018-03-08 20:42:47 +01:00
Jan Niklas Hasse
0af075b5ff
SDL2 backend: Allow changes to channels and format
2018-03-08 20:27:02 +01:00
Jan Niklas Hasse
ef2b813776
SDL2 backend: Allow frequency changes
2018-03-08 10:17:02 +01:00
Jan Niklas Hasse
a6f93a501a
Handle passing NULL to SDL_OpenAudioDevice as a special device
...
https://discourse.libsdl.org/t/changing-audio-output-when-the-default-audio-playback-device-changes/22399/2
2018-03-08 10:07:22 +01:00
Jan Niklas Hasse
767807cd22
SDL2 backend: Use callback instead of a timing loop
...
The system clock and audio clock aren't necessarily synchronized.
2018-03-08 09:51:44 +01:00
Jan Niklas Hasse
86319127e3
Add SDL2 backend for playback, fix #173
2018-03-07 20:57:53 +01:00
Chris Robinson
179e1c4dbc
Don't check for space in the ringbuffer before trying to write
...
The write method already checks and returns how much it managed to fit in.
2018-03-03 21:57:42 -08:00
Chris Robinson
4e6c758daf
Use a plain mutex for the property lock
2018-03-03 13:42:37 -08:00
Chris Robinson
4bd02eada6
Init more stuff in InitDevice
2018-03-03 09:00:14 -08:00
Chris Robinson
bd32a682f7
Use atomic variables instead of volatile
2018-03-02 19:16:55 -08:00
Chris Robinson
03274a5b95
Ensure at least the specified ringbuffer size is writable
...
Previously, all but one of the specified size could be written (so for a size
of n, only n-1 was guaranteed writable). All users pretty much compensated for
this, but it makes more sense to fix it at the source.
2018-03-02 13:01:11 -08:00
Chris Robinson
6f62fed65c
Add an option to limit the write size of the ringbuffer
2018-03-01 21:23:13 -08:00
Chris Robinson
4b85104c4f
Apply the limiter, distance comp, and others even with no output buffer
2018-03-01 16:16:37 -08:00
Chris Robinson
a211c2f5e4
Avoid AL prefix on internal effect state factory types
...
Also avoid using the generic V/V0 macros for them
2018-02-28 19:37:12 -08:00
Chris Robinson
d25398d2c7
Avoid using static inline in headers
2018-02-25 13:14:14 -08:00
Chris Robinson
654a45833a
Only send one buffer completed event per update
...
The 'param' callback parameter indicates the number of buffers that were
completed.
2018-02-25 10:05:25 -08:00
Chris Robinson
455763aa9a
Count all buffers in a list item for processed and queued
2018-02-25 09:51:07 -08:00
Chris Robinson
a1ef5e38b6
Handle source state change events
2018-02-24 09:24:18 -08:00
Chris Robinson
bf886444d2
Avoid multiple GetChannelIdxByName calls
2018-02-21 19:53:18 -08:00
Chris Robinson
6ff50558a0
Use a proper struct for specifying angular points
2018-02-18 23:56:51 -08:00
Chris Robinson
fa9ab9af7c
Minimize each response delay for the ambisonic HRTF decode
2018-02-18 23:56:51 -08:00
Chris Robinson
b5aa0c0759
Remove the unnecessary ComputeAmbientGains
2018-02-18 23:56:51 -08:00
Chris Robinson
79604c3c0e
Preserve RMS for the high-frequency HRTF ambisonic coefficients
2018-02-18 23:56:51 -08:00
Chris Robinson
7a974b2460
Combine the vector reverse and partial scatter where they're together
2018-02-18 23:56:51 -08:00
Chris Robinson
7f3d69fdbc
Remove an unnecessary comment about if meters_per_unit is > 0
2018-02-18 23:56:51 -08:00
Chris Robinson
7dafac0c34
Avoid duplicating some scale tables
2018-02-18 23:56:51 -08:00
Alexey Elymanov
063ad490a2
freebsd fix: typo
...
Alc/helpers.c:738:30: error: use of undeclared identifier 'KERN_PROCARGS'
int mib[4] = { CTL_KERN, KERN_PROCARGS, getpid() };
/usr/include/sys/sysctl.h:
`#define KERN_PROC_ARGS 7 /* get/set arguments/proctitle */`
there's no KERN_PROCARGS
2018-02-18 20:55:31 +03:00
Chris Robinson
59768674f1
Use an alternate ambisonic HRTF decode layout
...
Similar to the previous, but includes the top and bottom HRTF responses. The
higher-order decode (for the "basic" HRTF output) also now uses 2H1P mixed-
order instead of 2H1V, which seems more stable.
2018-02-13 03:03:26 -08:00
Chris Robinson
2cb49e51a0
Fix NULL pointer dereference
2018-02-12 22:20:43 -08:00
Chris Robinson
6b76eddbe3
Supply HF coefficient scales with a single-band ambisonic matrix
2018-02-12 21:24:58 -08:00
Chris Robinson
59934b47de
Avoid using an enum for array indices
2018-02-12 20:58:39 -08:00
Chris Robinson
4d417f3dd4
Make bformatdec_free and ambiup_free clear the freed pointer
2018-02-12 20:48:28 -08:00
Chris Robinson
dce497fbca
Use a bitfield for enabled bformatdec channels
2018-02-12 20:33:31 -08:00
Chris Robinson
e63e0ee596
Combine multiple functions called sequentially
2018-02-11 22:23:03 -08:00
Chris Robinson
494e9fd61d
Don't asynchronously modify the source on disconnect
2018-02-11 16:58:34 -08:00
Chris Robinson
1e93122470
Remove unused reverb modulation code
...
Still unsure how to handle reverb modulation without some kind of reference
output, so remove the related functions to not waste CPU time. It'll remain in
the Git history should it ever need to be resurrected.
2018-02-10 19:50:42 -08:00
Chris Robinson
5b11129eaa
Use a function pointer for applying the dry mix post-process
2018-02-10 15:50:05 -08:00