Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 |
| | |||||
* | Use a triplet struct array instead of separate arrays | Chris Robinson | 2020-02-09 | 1 | -22/+22 |
| | |||||
* | Consistently use distant wavefronts for 0 distance | Chris Robinson | 2020-02-08 | 1 | -6/+3 |
| | |||||
* | Clear voice target gains earlier | Chris Robinson | 2020-02-08 | 1 | -11/+12 |
| | |||||
* | Make sure stereo angles are kept in-range. | Chris Robinson | 2020-01-31 | 1 | -3/+14 |
| | |||||
* | Only sort active effect slots as needed | Chris Robinson | 2020-01-18 | 1 | -6/+18 |
| | |||||
* | Simplify appending delayed samples | Chris Robinson | 2020-01-14 | 1 | -6/+6 |
| | |||||
* | Signal the event handler only once per update | Chris Robinson | 2020-01-14 | 1 | -34/+40 |
| | |||||
* | Make sure unassociated voices give back their update structs | Chris Robinson | 2020-01-08 | 1 | -25/+29 |
| | |||||
* | Combine identical arrays | Chris Robinson | 2020-01-04 | 1 | -4/+1 |
| | |||||
* | Handle downmixing for mono output | Chris Robinson | 2019-12-29 | 1 | -2/+1 |
| | |||||
* | Ignore direct channels for mono and B-Format buffers | Chris Robinson | 2019-12-29 | 1 | -1/+2 |
| | |||||
* | Start a new extension for a new direct_channels state | Chris Robinson | 2019-12-28 | 1 | -7/+9 |
| | | | | | So existing behavior remains consistent for anything that needs it, and new behavior is opt-in. | ||||
* | Use a span for the band-splitter input | Chris Robinson | 2019-12-25 | 1 | -10/+9 |
| | |||||
* | Fix a shadowed parameter warning | Chris Robinson | 2019-12-23 | 1 | -9/+10 |
| | |||||
* | Avoid reading a struct field twice | Chris Robinson | 2019-12-23 | 1 | -2/+2 |
| | |||||
* | Handle padding between device sample frames | Chris Robinson | 2019-12-21 | 1 | -17/+17 |
| | | | | | | | | The padding must be constant and sample type aligned (e.g. some fixed multiple of two bytes between the start of two consecutive frames for 16-bit output). The intent is to always have the ability for stereo output with WASAPI even if the device has some other unsupported configuration, as long as front-left and front-right exist. |