Chris Robinson
d86f1ab476
Remove AL_SOFTX_filter_gain_ex
...
It was only added to try to help DSOAL, and it's not clear if it's even
necessary. But with native EAX API support, it certainly isn't necessary
anymore.
2022-02-28 12:57:18 -08:00
Chris Robinson
410f08c4e4
Forward the DriverIface constructor's name
2022-02-26 12:06:12 -08:00
Chris Robinson
c2d2ef2c0e
Don't handle EFX functions in the router
...
Creative's wrapper driver doesn't handle them through alcGetProcAddress, at
least with a null device. For this to work properly, they'd have to be loaded
per-context instead of per-driver.
2022-02-26 10:41:06 -08:00
Chris Robinson
ab8b828c57
Use a more C99-compliant function cast
2022-02-26 07:42:28 -08:00
Chris Robinson
f9c45eac1a
Use a more compatible method to check for EFX effects
...
Creative's wrapper driver doesn't seem to handle EFX enums for alGetEnumValue,
let alone return values only for what's supported. The only way to check which
filter and effect types it supports is try to set them and check for errors.
2022-02-26 07:38:36 -08:00
Chris Robinson
843a5aac6b
Forward the (un)likely expression being cast to bool
2022-02-24 06:43:14 -08:00
Chris Robinson
b1559227b0
Make some structs nested
2022-02-23 10:37:09 -08:00
Chris Robinson
2564a3750f
Remove unused atomic_invflag
2022-02-23 06:42:09 -08:00
Chris Robinson
625b0d380a
Use function overloading to handle pthread_setname_np differences
2022-02-23 05:56:29 -08:00
Chris Robinson
598c1aa224
Default initialize a union
...
To silence an errant GCC warning
2022-02-23 03:03:20 -08:00
Chris Robinson
42bacc399b
Fix an unused parameter warning
...
... when either pthread_setschedparam or RTKit aren't available.
2022-02-23 02:39:17 -08:00
Chris Robinson
357fb467fe
Define the CoreAudio default name only when needed
2022-02-23 02:26:25 -08:00
Chris Robinson
cadf0d1de5
Make some local constexpr variables static
2022-02-23 01:29:28 -08:00
Chris Robinson
7176247529
Avoid an implicit char-to-bool conversion
2022-02-23 00:04:29 -08:00
Chris Robinson
234e55cc3c
Explicitly define AmbDecConf's destructor
...
GCC complains it can't inline the destructor because it's "unlikely" to be
called and would bloat code size, despite being implicitly defined. Technically
accurate, but rather annoying since it's not explicitly called or defined.
2022-02-22 21:23:53 -08:00
Chris Robinson
d22699d9bd
Add a OpenAL::OpenAL cmake target alias
...
For when built as a sub-project, to clarify it's a target instead of a library.
2022-02-22 08:25:40 -08:00
Chris Robinson
d3d9f8ca3d
Clean up some cmake output formatting
2022-02-22 08:06:39 -08:00
Chris Robinson
d06ed618d3
Avoid using an if_constexpr macro
...
It doesn't actually use if constexpr, and compilers are smart enough to
optimize. Some functions can use templates instead.
2022-02-22 03:03:44 -08:00
Chris Robinson
72ddb6351e
Rename some variables to show the relevant bit pattern
2022-02-22 00:53:58 -08:00
Chris Robinson
9f44d99642
Revert "Use std::exchange instead of two swaps"
...
This reverts commit aa19223c65d8693dbaa8d8c9fa0c129d77eed4de.
2022-02-22 00:20:16 -08:00
Chris Robinson
1f9390f6f6
Use a simpler loop to enumerate sources
2022-02-21 21:46:38 -08:00
Chris Robinson
af6ce8e0d9
Remove unused dirty flags
2022-02-21 20:09:11 -08:00
Chris Robinson
7ca4fe6110
Remove a couple extraneous externs
2022-02-21 19:49:15 -08:00
Boris I. Bendovsky
4ffba10d51
Implement EAX v1.0 ( #664 )
2022-02-21 19:39:06 -08:00
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