8101 Commits

Author SHA1 Message Date
Chris Robinson
edadd221ea Add a speaker-dist config option
This can be used to specify an average speaker distance without having the
modify the decoder config files. This also sets a default value of 1, letting
near-field effects work (if imprecisely) without an explicitly-configured
distance.
2022-07-07 14:58:09 -07:00
Chris Robinson
43b0afdab4 Properly update the Super Stereo width
Previously it would just keep using the set target, instead of tracking and
interpolating changes.
2022-07-07 02:01:20 -07:00
Chris Robinson
e2f5ceba7b Don't always activate the EAX primary effect slot for sources
The context's primary effect slot should only be considered when the source's
active slot IDs include the primary effect slot.
2022-07-06 23:44:35 -07:00
Chris Robinson
74b2e3b349 Remove an unused struct
And minor formatting cleanup
2022-07-05 09:27:44 -07:00
Chris Robinson
3ac78307ec Avoid separate lines for logging exceptions 2022-07-05 09:27:44 -07:00
Chris Robinson
221d33f3ea Use 48khz by default for playback 2022-07-05 09:27:44 -07:00
Chris Robinson
6dd7edd2e0 Make some Vector and Matrix methods constexpr 2022-07-05 09:27:44 -07:00
Hongtae Kim
0474a3678e
Added missing header file for std::assume_aligned. (C++20) (#724) 2022-07-05 09:08:37 -07:00
Chris Robinson
dc83d99c95 Release 1.22.2 2022-06-27 01:33:53 -07:00
Chris Robinson
9cce3ba522 Update changelog 2022-06-27 01:11:09 -07:00
Chris Robinson
abff69e276 Define PW_KEY_NODE_RATE when needed 2022-06-24 13:22:09 -07:00
Chris Robinson
7494fe5736 Fix the PipeWire version check
PW_CHECK_VERSION checks if the header version is equal to or newer than the
values specified, it can't be used to check if the library version is equal to
or newer than the header version.
2022-06-24 13:00:08 -07:00
Chris Robinson
05f5faf265 Release 1.22.1 2022-06-20 18:16:18 -07:00
Chris Robinson
79d7aebb21 Update changelog 2022-06-19 12:13:20 -07:00
Chris Robinson
d2a32e4375 Don't change the EAX version when getting a reverb property 2022-06-19 08:06:16 -07:00
Chris Robinson
af690871b1 Combine multiple individual flags 2022-06-19 08:04:30 -07:00
Chris Robinson
a6c099c63e Track EAX1 source changes
Even though it's only a single value, this allows for not having to explicitly
track version changes, since the version being changed to will always have a
property change, implicitly marking an EAX update/commit for the source.
2022-06-19 07:44:01 -07:00
Chris Robinson
3f05208c50 Remove some unnecessary comparison operators 2022-06-18 20:05:12 -07:00
Chris Robinson
ef8c7379ea Avoid changing the EAX version on failure 2022-06-18 15:58:21 -07:00
Chris Robinson
dbce626905 Avoid more struct compared for reverb EAX updates 2022-06-18 15:55:53 -07:00
Chris Robinson
364e641142 Fix inverted checks 2022-06-18 15:53:59 -07:00
Chris Robinson
46be046ebb Don't mark the EAX version changed when getting properties 2022-06-18 15:02:53 -07:00
Chris Robinson
5cff007d33 Avoid a full struct compare to check for changes 2022-06-18 14:43:58 -07:00
Chris Robinson
97ab1afa35 Rename a parameter to avoid a shadowing warning 2022-06-18 14:28:44 -07:00
Chris Robinson
bb320a7019 Remove an unused lambda capture 2022-06-18 14:18:28 -07:00
Chris Robinson
83363e3332 Fix checking if the primary effect slot changed 2022-06-18 14:16:44 -07:00
Boris I. Bendovsky
d21ff67554
[EAX] Add separate source state for each version (#720) 2022-06-18 13:36:42 -07:00
Chris Robinson
0e7d5736c0 Add EFX functions back to the router
They're necessary for proper exports whem building the router. And if there's
ever a spec update that standardizes them, they'll be needed anyway.
2022-06-18 08:20:34 -07:00
Chris Robinson
fcc73d3324 Avoid including intrin.h with cpuid.h
On certain versions of MinGW, that leads to a redefinition errors.
2022-06-17 14:36:34 -07:00
Chris Robinson
314ba2f390 Don't apply effect auto send adjustments for non-reverb effects 2022-06-16 18:36:04 -07:00
Chris Robinson
080e2cd16f Match exactly 5.1 Rear in WASAPI
So 7.1 and other configurations like it aren't detected as 5.1 Rear despite
having side channels.
2022-06-16 18:32:59 -07:00
Chris Robinson
00dced1c96 Set policies to exclude /W3 and /GR on MSVC
We set /W4, and /GR is the default.
2022-06-15 02:29:38 -07:00
Chris Robinson
9bf630c9d6 Handle a blank channel mask from WASAPI
Without a channel mask, the channels are treated as "raw" or unknown. Auto-
detection will only go up to stereo (assuming the first two channels are front-
left and front-right), while explicit requests will work as long as there are
enough channels (the user is responsible for ensuring a correct setup).
2022-06-14 03:24:23 -07:00
Chris Robinson
11d148502d Use an inline function instead of a function-like macro 2022-06-12 23:20:53 -07:00
Chris Robinson
80bb080393 Update changelog 2022-06-10 23:16:05 -07:00
Chris Robinson
2a81f32abd Disable EAX if the Chorus effect is disabled 2022-06-10 23:15:13 -07:00
Chris Robinson
1278d3b849 Handle 5.1 Rear with DSound playback 2022-06-08 02:21:37 -07:00
Chris Robinson
14e6d3836a Check and handle 5.1 Rear with WASAPI capture 2022-06-07 23:53:03 -07:00
Chris Robinson
d923f2d0a6 Trace the WASAPI device mix format 2022-06-07 18:58:44 -07:00
Chris Robinson
4750e553f1 Track 5.1 Rear with WASAPI playback 2022-06-07 18:50:28 -07:00
Chris Robinson
86d1eb90ed Use a proper literal type 2022-06-07 01:00:21 -07:00
Chris Robinson
862628966d Increase the priority of the ALSA backend
So that it's tried before sndio. Many Linux systems seem to have libsndio
installed as a hard dependency from SDL2, but not the server component to
actually make it work. And because there's no way to test if it's usable
without opening a device, the backend would get selected over ALSA and
subsequently fail to work. As a result, Linux users that don't use PipeWire or
PulseAudio would have to explicitly configure for ALSA.
2022-06-04 13:00:58 -07:00
Chris Robinson
cdd9a2177c Update changelog 2022-06-01 10:47:58 -07:00
Chris Robinson
f3092e286e Search for Oboe config modules first 2022-06-01 10:44:29 -07:00
3DJ
c6820bf266
Upload Win32 and x64 artifacts to Github actions (#708)
* Upload Win32 and x64 artifacts to Github actions

Provides an alternative Windows binary download location that expires in 3 months (2 months longer than Appveyor)

* Add Windows check to skip failed Github actions artifact upload for Linux and macOS
2022-05-30 15:51:05 -07:00
Chris Robinson
7f1d9725b2 Use a ringbuffer for Oboe capture 2022-05-28 07:00:45 -07:00
Chris Robinson
d7367aeee0 Fix requeueing logic for OpenSLCapture::captureSamples
The write vector represents the chunks queued for OpenSL, and the write pointer
only increments when OpenSL fills in more samples. So requeueing from the start
of the write vector is requeueing chunks that are already queued, which is
obviously wrong. It instead needs to queue chunks that become available as
they're read.

Because the ring buffer holds more elements than can be written to at a givem
time, the read vector does not represent the next writable chunks to queue.
Advancing the read pointer increases the number of writable elements, so
instead of queueing from the read vector or the start of the write vector,
queue from the end of the write vector given the number of chunks read.
2022-05-28 06:56:41 -07:00
Chris Robinson
ecb444e1e0 Update Changelog 2022-05-27 15:59:38 -07:00
Chris Robinson
7518a8a503 Ensure enough default sends for EAX with the config option set 2022-05-27 15:58:03 -07:00
Chris Robinson
233863cf29 Use a boolean check instead of a function pointer 2022-05-24 05:22:49 -07:00