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