Chris Robinson
6c643e59e9
Make a couple more operator bools explicit
2022-02-20 22:04:19 -08:00
Chris Robinson
023ad6320b
Inline a couple more equality operators
2022-02-20 04:13:03 -08:00
Chris Robinson
0e26e0809d
Fix gain_to_level_mb
2022-02-20 00:02:56 -08:00
Chris Robinson
d137ee02a8
Constify the AVCodec* returned by avcodec_find_decoder
2022-02-19 17:49:06 -08:00
Chris Robinson
39708f9831
Avoid a variable limit on EAX filters
...
I'll assume for now that the limits for the EAX properties will keep the filter
gain from getting out of hand. The filter's gainhf is relative to the gain and
is limited to 0dB max.
2022-02-18 07:02:38 -08:00
Chris Robinson
a9974d3aa8
Trace the actual device form factor in pipewire
2022-02-16 00:04:11 -08:00
Chris Robinson
aa19223c65
Use std::exchange instead of two swaps
2022-02-15 23:15:42 -08:00
Chris Robinson
fba14feab7
Don't trace ignored pipewire stream nodes
2022-02-15 18:30:42 -08:00
Chris Robinson
ff54ed0fce
Reset mIs51Rear only when updating the channel config
2022-02-15 17:30:07 -08:00
Chris Robinson
0493085ea2
Log when a pipewire device is removed
2022-02-15 17:24:20 -08:00
Chris Robinson
30c5c43e56
Mark another operator bool as explicit
2022-02-15 06:27:27 -08:00
Chris Robinson
246412bfa6
Rename deprecated -> legacy
2022-02-14 14:22:45 -08:00
Chris Robinson
2212b8d8ad
Don't use a generator expression in a CMake option
2022-02-14 05:05:05 -08:00
Chris Robinson
0591d90c10
Add missing closing brace
2022-02-14 05:04:49 -08:00
Chris Robinson
e0f87c44c0
Don't access a playing voice's mFlags outside of the mixer thread
...
It's updated asynchronously, and it's non-atomic, so it's unsafe to even read
since the mixer thread may be modifying it.
2022-02-14 04:18:48 -08:00
Chris Robinson
f9ed6f85c8
Don't implicitly convert optionals to bools
2022-02-14 03:05:35 -08:00
Chris Robinson
c6b301b72e
Access the proper FX slot index
2022-02-14 03:04:46 -08:00
Chris Robinson
677ea00fa3
Avoid some messy type-punning
2022-02-14 02:18:53 -08:00
Chris Robinson
2654b3bbdc
Remove some unnecessary includes
2022-02-14 02:18:23 -08:00
Chris Robinson
296128c94e
Move some declarations to where the definitions will see
2022-02-14 01:20:44 -08:00
Chris Robinson
c0fc67e278
Simplify EaxEaxCall::EaxEaxCall
2022-02-14 01:02:08 -08:00
Chris Robinson
278792eae7
Remove an unnecessary template parameter hack
2022-02-14 01:01:19 -08:00
Chris Robinson
9e418202fd
Avoid some const_casts
2022-02-14 00:22:41 -08:00
Chris Robinson
c156e30a48
Derive EaxFxSlotIndex from an optional
2022-02-14 00:20:45 -08:00
Chris Robinson
f915b86dbb
Use memcmp to compare GUIDs
...
Clang at least optimizes the old version horribly, doing each individual check
(with short-circuiting) as written. In comparison, this memcmp gets inlined
using only a few SIMD instructions (on capable targets).
2022-02-13 23:53:00 -08:00
Chris Robinson
98de566bc8
Avoid an unnecessary check
2022-02-13 22:38:10 -08:00
Chris Robinson
ee946f57c3
Commit EAX context properties when a context stops deferring
2022-02-13 22:24:23 -08:00
Chris Robinson
1e687ebc8b
Force EAX calls to defer when the AL context is deferring
2022-02-13 21:13:13 -08:00
Chris Robinson
3e6d210767
Avoid more unnecessary atomics
2022-02-13 21:00:57 -08:00
Chris Robinson
cdae6de689
Fix error messages for AL_STEREO_MODE_SOFT
2022-02-13 20:10:22 -08:00
Chris Robinson
7e485051c1
Remove unnecessary IsPlayingOrPaused calls
...
When followed by GetSourceVoice, a voice can only be returned if the source is
playing or paused, making it redundant.
2022-02-13 20:01:08 -08:00
Chris Robinson
3a450bacc7
Remove an unused return type
2022-02-13 19:54:09 -08:00
Chris Robinson
ea7c6f3e4e
Don't make mPropsDirty atomic
...
It's only ever used under the ALCcontext::mPropLock mutex.
2022-02-13 19:37:45 -08:00
Chris Robinson
66f6cf121e
Commit source EAX properties when not deferring
...
And make sure they get committed when resuming processing.
2022-02-13 17:22:41 -08:00
Chris Robinson
1bebc01177
Update changelog about EAX
2022-02-13 13:19:58 -08:00
Chris Robinson
e04fd54206
Fix an exported symbol
...
The symbol only exists for compatibility due to it having been erroneously
exported in previous versions (even though it shouldn't have been used
directly, some apps could have).
2022-02-12 00:13:19 -08:00
Chris Robinson
ac42ac336e
Don't hide EAX functions behind a context
...
The standard says a function being returned doesn't necessarily mean it's
usable, and calling them will return failure if called when not usable. The
config option still prevents it from being returned, to better hide it when
disabled globally.
2022-02-10 17:54:27 -08:00
Chris Robinson
804bf06369
Avoid some unnecessary extern "C"
2022-02-10 11:38:48 -08:00
Chris Robinson
7896f6bae9
Inline some more simple getters
2022-02-08 22:50:06 -08:00
Chris Robinson
3c9a705210
Handle AirAbsorptionGainHF as a native context property
2022-02-08 22:41:44 -08:00
Chris Robinson
256ea81dbe
Combine listener and context updates
2022-02-08 20:43:05 -08:00
Chris Robinson
de87cc98d5
Apply updates for EAX context properties
2022-02-08 20:27:40 -08:00
Chris Robinson
46a836fa14
Actually defer EAXCONTEXT_ALLPARAMETERS properties
2022-02-08 16:49:37 -08:00
Chris Robinson
7864895ab6
Ensure sources update together from EAX commits
...
... when a listener property change forces a commit.
2022-02-08 16:36:40 -08:00
Chris Robinson
6fb908bc38
Commit deferred EAX settings earlier when playing
...
Before the property update is supplied to the voice in InitVoice.
2022-02-08 11:00:12 -08:00
Chris Robinson
b2e0c3e002
Be less agressive with source updates on EAX changes
2022-02-08 10:00:34 -08:00
Chris Robinson
e2cdbf864f
Fix sign of ALeffectslot::eax_get_eax_default_lock's return type
2022-02-08 09:39:56 -08:00
Chris Robinson
843cff0537
Hold mPropLock when deferring updates
2022-02-08 09:39:02 -08:00
Chris Robinson
370f862392
Inline ALCcontext::has_eax
2022-02-08 09:29:00 -08:00
Chris Robinson
98fc1cd97d
More accurately detect the EAX speaker config
2022-02-08 08:33:01 -08:00