Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use an atomic unique_ptr for the device's context array | Chris Robinson | 2024-01-01 | 1 | -6/+1 |
| | |||||
* | Avoid placement new for the output limiter | Chris Robinson | 2023-12-31 | 1 | -1/+1 |
| | |||||
* | Ensure struct members are initialized | Chris Robinson | 2023-12-20 | 1 | -5/+5 |
| | |||||
* | Remove DEF_NEWDEL | Chris Robinson | 2023-12-16 | 1 | -2/+0 |
| | | | | | C++17 provides alignment-aware allocators for us, so we don't need to use our own to make sure classes/structs are properly aligned. | ||||
* | Remove unnecessary macro parameter lists | Chris Robinson | 2023-12-15 | 1 | -1/+1 |
| | |||||
* | Track the device state for being properly configured | Chris Robinson | 2023-12-12 | 1 | -2/+7 |
| | | | | And don't allow resuming if the backend device isn't properly set up. | ||||
* | Refactor FlexArray | Chris Robinson | 2023-12-10 | 1 | -0/+1 |
| | | | | | This avoids using an array of 1 as a flexible array member, and instead uses a span to reference the memory after itself. | ||||
* | More clang-tidy fixes | Chris Robinson | 2023-12-09 | 1 | -1/+3 |
| | |||||
* | Clean up some more clang-tidy warnings | Chris Robinson | 2023-12-08 | 1 | -17/+17 |
| | |||||
* | Use RAII to handle writing under the mixer seqlock | Chris Robinson | 2023-12-04 | 1 | -2/+26 |
| | |||||
* | Remove some unnecessary atomic wrappers | Chris Robinson | 2023-12-03 | 1 | -1/+1 |
| | |||||
* | Make the device clock members atomic | Chris Robinson | 2023-12-03 | 1 | -2/+16 |
| | | | | | | Even though they're protected by a SeqLock of sorts, it's still UB to read and write non-atomic vars from different threads. It's fine to do relaxed reads and writes given the lock though, to help alleviate the cost. | ||||
* | fix printf format for MinGW (#942) | Rosen Penev | 2023-12-03 | 1 | -2/+2 |
| | | | | | | With gcc, mingw uses gnu_printf. With clang, printf is used as it does not support gnu_printf. Use the internal header to match this properly. Signed-off-by: Rosen Penev <[email protected]> | ||||
* | Use a byte for the channel index | Chris Robinson | 2023-10-22 | 1 | -9/+9 |
| | |||||
* | Preliminary implementation of WASAPI spatial audio playback | Chris Robinson | 2023-09-20 | 1 | -0/+5 |
| | |||||
* | Clean up some more includes | Chris Robinson | 2023-05-12 | 1 | -3/+1 |
| | |||||
* | Use more appropriate types for some enums | Chris Robinson | 2023-05-06 | 1 | -3/+4 |
| | |||||
* | Use macros for the likely/unlikely attributes | Chris Robinson | 2023-03-01 | 1 | -1/+1 |
| | | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places. | ||||
* | Separate decoding and mixing from resampling | Chris Robinson | 2023-02-12 | 1 | -3/+2 |
| | |||||
* | Transpose the ambisonic voice mixing matrix | Chris Robinson | 2023-01-25 | 1 | -0/+1 |
| | | | | | To more efficiently prepare the panning coefficients. Also avoid making a stack copy of the matrix to reuse as the target. | ||||
* | Change a couple macros to constexpr variables | Chris Robinson | 2023-01-16 | 1 | -6/+6 |
| | |||||
* | Update a comment | Chris Robinson | 2023-01-08 | 1 | -1/+1 |
| | |||||
* | Simplify handling effect output for spatial effects | Chris Robinson | 2023-01-04 | 1 | -3/+33 |
| | | | | | | | | | | | | Effects are given a 3D ambisonic buffer of the same order as the device, for processing surround sound. Effects that pass input channels to matching output channels as it processes them don't need to mix each input channel to all output channels. At most, an input channel may mix to a different output channel, if the target buffer uses a different channel layout, and need a gain adjustment, if it uses a different scaling. With a 2D output buffer, a number of channels can be skipped altogether. | ||||
* | Avoid using a macro to wrap standard attributes | Chris Robinson | 2022-12-06 | 1 | -1/+1 |
| | |||||
* | Avoid some uses of the LIKELY/UNLIKELY macros | Chris Robinson | 2022-12-05 | 1 | -1/+1 |
| | |||||
* | Rename some variables to more clearly indicate their meaning | Chris Robinson | 2022-10-28 | 1 | -1/+1 |
| | |||||
* | Track if doing 2D mixing only | Chris Robinson | 2022-09-04 | 1 | -0/+2 |
| | | | | And use it to select the proper HF scales | ||||
* | Allow the remix tables to be variable length | Chris Robinson | 2022-08-28 | 1 | -1/+1 |
| | |||||
* | Use the right array size for the mixing parameters | Chris Robinson | 2022-08-14 | 1 | -1/+1 |
| | |||||
* | Parameterize the UHJ filter length | Chris Robinson | 2022-08-07 | 1 | -2/+2 |
| | |||||
* | Avoid putting a 1KB array on the stack | Chris Robinson | 2022-08-02 | 1 | -1/+4 |
| | |||||
* | Change an inline function to a class method | Chris Robinson | 2022-08-02 | 1 | -7/+7 |
| | |||||
* | Use 48khz by default for playback | Chris Robinson | 2022-07-05 | 1 | -2/+2 |
| | |||||
* | Remove the reversed all-pass trick in MixDirectHrtfBase | Chris Robinson | 2022-03-30 | 1 | -1/+1 |
| | | | | Given the minimum phase HRTF, it's not going to stay linear phase anyway. | ||||
* | Make and use a Default enum for StereoEncoding | Chris Robinson | 2022-03-29 | 1 | -2/+4 |
| | |||||
* | Pass a span of pointers to the UHJ/SuperStereo decoder | Chris Robinson | 2022-01-01 | 1 | -1/+2 |
| | |||||
* | Avoid initializing the NFC filter for every voice channel | Chris Robinson | 2021-12-11 | 1 | -2/+7 |
| | | | | | | It can be initialized once with the device's speaker distance since it won't change in between resets, then copied into the voice where it can be adjusted as needed. | ||||
* | Make the backend pointer part of ALCdevice instead of DeviceBase | Chris Robinson | 2021-11-19 | 1 | -8/+0 |
| | |||||
* | Use a tri-state optional for the stereo output mode | Chris Robinson | 2021-10-24 | 1 | -0/+6 |
| | |||||
* | Use a flag to indicate headphone-like output | Chris Robinson | 2021-10-23 | 1 | -1/+4 |
| | |||||
* | Don't allocate full buffer lines in each voice | Chris Robinson | 2021-06-21 | 1 | -0/+7 |
| | | | | | | There's now effectively a 16-channel limit for buffers (as determined by the number of elements in DeviceBase::mSampleData). Any more than that are ignored when mixing. | ||||
* | Add an option to mix directly in the JACK callback | Chris Robinson | 2021-06-08 | 1 | -0/+4 |
| | |||||
* | Move GetChannelIdxByName and clean up some more includes | Chris Robinson | 2021-04-26 | 1 | -0/+16 |
| | |||||
* | Move the DeviceBase declaraction to core | Chris Robinson | 2021-04-24 | 1 | -0/+274 |