Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use doubles to calculate the listener matrix translation | Chris Robinson | 2020-11-13 | 1 | -42/+17 |
| | | | | | To help stablize sources near the listener, when away from origin. Also clean up some related methods and move them to more appropriate places. | ||||
* | Avoid testing a bool against AL_FALSE | Chris Robinson | 2020-11-12 | 1 | -1/+1 |
| | |||||
* | Use a separate structure for the active effect slot properties | Chris Robinson | 2020-11-07 | 1 | -59/+55 |
| | |||||
* | Use more efficient sorting for effect slots | Chris Robinson | 2020-11-05 | 1 | -37/+47 |
| | |||||
* | Store the wet buffers in the context | Chris Robinson | 2020-11-02 | 1 | -1/+1 |
| | | | | | | This is rather ugly, but we need the wet buffers to remain allocated after its effect slot is deleted, because a voice can still use it for its final fade-out mix. | ||||
* | Replace the mixer fraction macros with constexpr variables | Chris Robinson | 2020-10-21 | 1 | -7/+7 |
| | |||||
* | Replace some more macros with constexpr variables | Chris Robinson | 2020-10-21 | 1 | -12/+12 |
| | |||||
* | Change some more macros into constexpr variables | Chris Robinson | 2020-10-21 | 1 | -5/+5 |
| | |||||
* | Use constexpr variables in place of some macros | Chris Robinson | 2020-10-19 | 1 | -4/+4 |
| | |||||
* | Rework effect slot buffer setting | Chris Robinson | 2020-09-05 | 1 | -18/+0 |
| | | | | | | | | Rather than creating an effect-specific buffer that gets passed along as a property, the buffer is set the effect state when the effect state is created, the device is updated, or the buffer is changed. The buffer can only be set while the effect slot isn't playing, so it won't be changed or updated while the mixer is processing the effect state. | ||||
* | Use enum class for a couple enums | Chris Robinson | 2020-09-01 | 1 | -4/+4 |
| | |||||
* | Use a separate structure for buffer storage | Chris Robinson | 2020-08-28 | 1 | -3/+3 |
| | |||||
* | Blend panned B-Format source directivity given its radius | Chris Robinson | 2020-08-27 | 1 | -52/+54 |
| | |||||
* | Store a reference to the effect buffer as an active property | Chris Robinson | 2020-08-24 | 1 | -0/+18 |
| | |||||
* | Use an intrusive_ptr for ALeffectslotProps::State | Chris Robinson | 2020-08-24 | 1 | -3/+2 |
| | |||||
* | Change a couple functions into member functions | Chris Robinson | 2020-08-07 | 1 | -30/+25 |
| | |||||
* | Handle the front stablizer with the B-Format decoder | Chris Robinson | 2020-06-15 | 1 | -105/+11 |
| | |||||
* | Use a range-for loop instead of for_each | Chris Robinson | 2020-06-09 | 1 | -5/+4 |
| | |||||
* | Use better types for array lengths | Chris Robinson | 2020-06-09 | 1 | -17/+15 |
| | |||||
* | Simplify handling the stablizer side channel delay | Chris Robinson | 2020-05-21 | 1 | -25/+25 |
| | |||||
* | Avoid a log10 constant call | Chris Robinson | 2020-05-21 | 1 | -2/+2 |
| | |||||
* | Use an enum class for SpatializeMode | Chris Robinson | 2020-05-21 | 1 | -2/+2 |
| | |||||
* | Clear the whole buffer | Chris Robinson | 2020-05-12 | 1 | -4/+2 |
| | |||||
* | Improve the front stablizer | Chris Robinson | 2020-05-05 | 1 | -41/+44 |
| | | | | | Apply the all-pass+band-split only once, after generating the mid and side signals separately. | ||||
* | Move some sin/cos constants out of a loop | Chris Robinson | 2020-05-04 | 1 | -10/+11 |
| | |||||
* | Use global placement new for AsyncEvent | Chris Robinson | 2020-04-24 | 1 | -3/+3 |
| | |||||
* | Avoid an unnecessary out parameter | Chris Robinson | 2020-04-21 | 1 | -36/+31 |
| | |||||
* | Move a type to where it's used | Chris Robinson | 2020-04-16 | 1 | -0/+4 |
| | |||||
* | Avoid ALfloat in some places | Chris Robinson | 2020-04-08 | 1 | -50/+50 |
| | |||||
* | Some more ALfloat->float cleanup | Chris Robinson | 2020-04-03 | 1 | -8/+8 |
| | |||||
* | Use structs for the mixer and resampler tags | Chris Robinson | 2020-04-03 | 1 | -0/+20 |
| | |||||
* | Generate the bsinc tables using constexpr methods | Chris Robinson | 2020-04-02 | 1 | -2/+2 |
| | | | | | | | | All the methods used should be compliant with C++14 constexpr rules. However, the number of scales and phases cause GenerateBSincCoeffs to reach the allowed step limit, preventing full compile-time generation. It's not a terribly big deal, it'll generate them very quickly when loading, but it does prevent using shared read-only memory pages. | ||||
* | Move the FrontStablizer definition to its own header | Chris Robinson | 2020-03-30 | 1 | -0/+1 |
| | |||||
* | Rename ALvoice and related structs to Voice | Chris Robinson | 2020-03-28 | 1 | -33/+32 |
| | |||||
* | Avoid AL[C]boolean for internal use | Chris Robinson | 2020-03-28 | 1 | -1/+1 |
| | |||||
* | Move some setup to a more logical place | Chris Robinson | 2020-03-25 | 1 | -32/+1 |
| | |||||
* | Dynamically allocate voice channel data | Chris Robinson | 2020-03-25 | 1 | -16/+15 |
| | | | | | | | Rather than allocating for a full 8 channels for each voice, when the vast majority will only need 1 or 2. The voice channel data is relatively big since it needs to hold HRTF coefficients and history, and this will allow increasing the maximum number of buffer channels without an obscene memory increase. | ||||
* | Avoid assigning in a conditional expression | Chris Robinson | 2020-03-22 | 1 | -1/+3 |
| | |||||
* | Move the FPUCtl methods to its own source | Chris Robinson | 2020-03-20 | 1 | -1/+1 |
| | |||||
* | Fix voices being forced to update without valid properties | Chris Robinson | 2020-03-04 | 1 | -14/+7 |
| | | | | | | | | | | | | | | | | When starting a voice, the source ID was set before its first update struct was provided, creating a small window where a listener or effect slot update could force a voice to update without it having any valid properties to update with. Supplying the update struct first would create a different race, where the mixer could see a voice without a source but with an update struct, causing the update struct to be 'freed' without being applied. The fix here is to provide the update struct before setting the source ID, and change the mixer to ignore update structs for voices without a source ID. This can pseudo-orphan the updates that get set on a voice just as it stops, leaving the struct unusable until the voice is used again, or the voice gets deleted which will clear it. But it allows the update struct to stay in place and get applied once the voice gets a source ID. | ||||
* | Use a new voice state to indicate a pending source offset change | Chris Robinson | 2020-03-04 | 1 | -5/+6 |
| | |||||
* | Use an intrusive_ptr for the device's HrtfStore | Chris Robinson | 2020-03-01 | 1 | -2/+2 |
| | |||||
* | Use a VoiceChange object to change the offset of a playing source | Chris Robinson | 2020-02-26 | 1 | -0/+26 |
| | |||||
* | Rename the voice's PendingStop to PendingChange | Chris Robinson | 2020-02-26 | 1 | -2/+2 |
| | |||||
* | Simplify replaying a source | Chris Robinson | 2020-02-23 | 1 | -7/+28 |
| | |||||
* | Avoid a single function call in a loop | Chris Robinson | 2020-02-21 | 1 | -68/+66 |
| | |||||
* | Use an array of ALvoice pointers for the active voices | Chris Robinson | 2020-02-21 | 1 | -13/+14 |
| | | | | | | This allows growing the array atomically with the mixer since the ALvoice objects themselves don't move, and a new larger array of them can be swapped in without blocking the mixer. | ||||
* | Handle playing and pausing with VoiceChanges | Chris Robinson | 2020-02-21 | 1 | -0/+13 |
| | |||||
* | Asynchronously stop and rewind voices | Chris Robinson | 2020-02-20 | 1 | -3/+2 |
| | |||||
* | Asynchronously stop voices if its source is being deleted | Chris Robinson | 2020-02-20 | 1 | -0/+47 |
| |