8119 Commits

Author SHA1 Message Date
Boris I. Bendovsky
1f238a602f
[EAX_SOURCE] Fix Room and RoomHF contribution
Those properties should be taken into account only for environmental effect slot (see pp. 60-61 of "EAX® 4.0 Programmer’s Guide").
2022-07-17 20:59:06 +03:00
Boris I. Bendovsky
f7b4dd002f
[EAX_CONTEXT] Fix committing of a property value 2022-07-17 20:59:05 +03:00
Boris I. Bendovsky
1a2f659d89
[EAX_SOURCE] Fix getting active FX slot IDs 2022-07-17 20:59:05 +03:00
Boris I. Bendovsky
74c923edce
[EAX_FX_SLOT] Fix slot's occlusion contribution 2022-07-17 20:59:05 +03:00
Boris I. Bendovsky
8de2a56068
[EAX_CALL] Clear defer flag for immediate-only properties
EAX allow to set "defer" flag on immediate-only properties. If we don't clear our flag then "applyAllUpdates" in EAX context won't be called.
2022-07-17 20:59:04 +03:00
Boris I. Bendovsky
c88c5e6189
[EAX_FX_SLOT] Mark sources as changed instead of commiting them to catch up with changes in FX slot 2022-07-17 20:59:04 +03:00
Boris I. Bendovsky
e9bb078806
[EAX_FX_SLOT] Fix EAXGet for EAX5 2022-07-17 20:58:55 +03:00
Chris Robinson
7b0776e33f Don't pass an EaxCall to initialize_fx_slots 2022-07-15 11:54:54 -07:00
Chris Robinson
af5d4fb77d Don't store and manage wet buffers separately 2022-07-15 06:58:15 -07:00
Chris Robinson
0f4679981b Allocate EffectSlots in clusters 2022-07-15 06:14:25 -07:00
Chris Robinson
0b9fc03545 Dynamically allocate EffectSlot objects 2022-07-15 04:28:13 -07:00
Chris Robinson
07c2e786f5 Make a member function static 2022-07-13 05:28:42 -07:00
Chris Robinson
c843efd322 Don't track dirty flags per EAX version
Only the current version's flags are used, and they're all reset when changing
versions, making it unnecessary to track non-current version flags.
2022-07-13 05:19:51 -07:00
Chris Robinson
86094e87a5 Don't commit EAX properties when not initialized 2022-07-13 04:49:39 -07:00
Boris I. Bendovsky
10c22f6f82
[EAX] Add separate context state for each version (#731) 2022-07-13 04:45:25 -07:00
Boris I. Bendovsky
6fb5cb553f
[EAX] Use separate FX slot state for each version (#730)
* [EAX] Use separate FX slot state for each version
[EAX] Don't defer FX slot properties

* [EAX_FXSLOT] Use mPropsDirty to defer update
[EAX_CONTEXT] Commit all updates on first initialization
2022-07-12 02:46:51 -07:00
Chris Robinson
fa51c89549 Fix building on some MinGW systems
Some systems don't like having a space in the export declaration, with windres
interpreting the extra attributes as input files. GCC seems to accept the
attributes being "packed" together, which avoids the problem with windres.
2022-07-08 17:28:48 -07:00
Chris Robinson
1ad553b5a9 Add a config compat option for NFC distance scaling
Currently there's no way for an application to specify the "real world" scale
for in-game units. If the game doesn't use one unit to represent what should be
perceived as one meter to the user, the NFC filter's effect will be too near or
too far sounding. This allows adjusting the unit scale as applied to the NFC
filters only, correcting the misalignment.

This also removes the influence of EFX's MetersPerUnit from the NFC filters,
since many games don't use it, and those that do won't know it also influences
the perceived wave curvature along with the air absorption strength.
2022-07-07 22:11:38 -07:00
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