aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALu.c
Commit message (Collapse)AuthorAgeFilesLines
* Add some LIKELY and ASSUME statementsChris Robinson2018-05-231-1/+8
|
* Fix a function comment about a return valueChris Robinson2018-05-231-3/+1
|
* Remove unused functionChris Robinson2018-05-231-10/+0
|
* Further clarify a comment about float precisionChris Robinson2018-05-211-3/+3
|
* Add and use a method for fast float roundingChris Robinson2018-05-121-1/+1
| | | | | Unlike fastf2i, this keeps the result as a float instead of converting to integer.
* Don't assume round-to-zero for fastf2iChris Robinson2018-05-041-3/+3
|
* Add a specific function for truncating float-to-int conversionsChris Robinson2018-05-031-8/+3
|
* An output device buffer is likelyChris Robinson2018-04-291-1/+1
|
* Fix a comment about a float's mantissaChris Robinson2018-04-281-3/+4
|
* Change some if checks to asserts since they must be trueChris Robinson2018-04-221-14/+12
|
* Move the bnad-splitter filters to a separate sourceChris Robinson2018-04-211-0/+1
|
* Rename BiquadState to BiquadFilterChris Robinson2018-04-041-12/+12
|
* Apply the initial decay and air absorption after gain clampingChris Robinson2018-03-291-42/+42
|
* Pass the azimuth and elevation to CalcPanningAndFiltersChris Robinson2018-03-291-42/+32
|
* Check all buffers to update a source withChris Robinson2018-03-281-2/+5
|
* Condense an if checkChris Robinson2018-03-261-3/+2
|
* Clear mixing target parameters before setting themChris Robinson2018-03-251-70/+23
|
* Annotate the B-Format rotation/conversion matrixChris Robinson2018-03-251-7/+11
|
* Rename ALfilterState/Type to BiquadState/TypeChris Robinson2018-03-231-16/+16
|
* Move mixer sources into a sub-directoryChris Robinson2018-03-221-1/+1
|
* Apply a distance decay on the source send for the reverb's DecayLFRatioChris Robinson2018-03-111-2/+10
|
* Comment and clarify some codeChris Robinson2018-03-111-2/+10
|
* Rename UpdateContextSources for clarityChris Robinson2018-03-081-2/+2
|
* Don't check for space in the ringbuffer before trying to writeChris Robinson2018-03-031-7/+4
| | | | The write method already checks and returns how much it managed to fit in.
* Use atomic variables instead of volatileChris Robinson2018-03-021-2/+2
|
* Apply the limiter, distance comp, and others even with no output bufferChris Robinson2018-03-011-19/+20
|
* Handle source state change eventsChris Robinson2018-02-241-3/+48
|
* Combine multiple functions called sequentiallyChris Robinson2018-02-111-21/+9
|
* Don't asynchronously modify the source on disconnectChris Robinson2018-02-111-9/+1
|
* Use a function pointer for applying the dry mix post-processChris Robinson2018-02-101-68/+97
|
* Make the Connected state atomicChris Robinson2018-02-041-1/+2
| | | | Also don't send the Disconnected event more than once.
* Provide more descriptive messages to disconnection eventsChris Robinson2018-02-031-13/+30
|
* Add a disconnected event typeChris Robinson2018-02-031-0/+17
|
* Send buffer completed events when enabledChris Robinson2018-02-011-1/+1
|
* Use a voice flag to indicate it being staticChris Robinson2018-01-161-1/+1
|
* Add min/max/clamp functions for size_tChris Robinson2018-01-161-0/+4
|
* Avoid unnecessarily using type aliasesChris Robinson2018-01-141-4/+5
|
* Remove the SAFE_CONST macroChris Robinson2018-01-141-10/+9
| | | | | Seems compilers are now allowing a pointer-to-type-array to implicitly convert to pointer-to-const-type-array.
* Move the FPU mode declarations to a separate headerChris Robinson2018-01-111-0/+1
| | | | Also don't use inheritance with FPUCtl.
* Move the CPU capability flags to a separate headerChris Robinson2018-01-111-0/+1
|
* Move the compressor/limiter declarations to their own headerChris Robinson2018-01-111-0/+1
|
* Avoid using macros to access anonymous structuresChris Robinson2018-01-111-17/+17
|
* Don't return whether the bsinc filter cuts or notChris Robinson2018-01-101-22/+8
|
* Rename the device's temp buffer storage to be more genericChris Robinson2018-01-091-2/+1
|
* Use a separate function to get the cubic valueChris Robinson2018-01-071-0/+1
|
* Remove the sinc4 tableChris Robinson2018-01-071-5/+0
|
* Replace the sinc4 resampler with cubicChris Robinson2018-01-071-2/+0
| | | | | | | Turns out the C version of the cubic resampler is just slightly faster than even the SSE3 version of the FIR4 resampler. This is likely due to not using a 64KB random-access lookup table along with unaligned loads, both offseting the gains from SSE.
* Allow storing multiple buffers in a ALbufferlistitemChris Robinson2017-12-151-1/+1
| | | | | | | | | | | | | | | This will be to allow buffer layering, multiple buffers of the same format and sample rate that are mixed together prior to resampling, filtering, and panning. This will allow composing sounds from individual components that can be swapped around on different invocations (e.g. layer SoundA and SoundB on one instance and SoundA and SoundC on a different instance for a slightly different sound, then just SoundA for a third instance, and so on). The longest buffer within the list item determines the length of the list item. More work needs to be done to fully support it, namely the ability to specity multiple buffers to layer for static and streaming sources. Also the behavior of loop points for layered static sources should be worked out. Should also consider allowing each layer to have a sample offset.
* Re-update effect slots when context properties changeChris Robinson2017-09-271-54/+41
| | | | | Also keep all free property update structs together in the context instead of per-object.
* Update the context state properties separatelyChris Robinson2017-09-271-20/+32
| | | | | | | | | | | | | The context state properties are less likely to change compared to the listener state, and future changes may prefer more infrequent updates to the context state. Note that this puts the MetersPerUnit in as a context state, even though it's handled through the listener functions. Considering the infrequency that it's updated at (generally set just once for the context's lifetime), it makes more sense to put it there than with the more frequently updated listener properties. The aforementioned future changes would also prefer MetersPerUnit to not be updated unnecessarily.