7915 Commits

Author SHA1 Message Date
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