aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALc.c
Commit message (Collapse)AuthorAgeFilesLines
* Add the default auxiliary slot to the active slot arrayChris Robinson2017-07-131-2/+11
|
* Initialize the default effect after device updateChris Robinson2017-07-131-35/+31
|
* Use macros to set and restore the mixer FPU modeChris Robinson2017-07-131-6/+4
|
* Store the default effect slot in the contextChris Robinson2017-07-131-41/+64
|
* Define a backup log2f if the compiler doesn't have itChris Robinson2017-06-291-3/+0
|
* Workaround log2f missing on AndroidChris Robinson2017-06-211-0/+2
|
* Trace if dithering is enabledChris Robinson2017-06-191-3/+7
|
* "Convert" the QSA backend to the new APIChris Robinson2017-06-181-77/+32
| | | | | | | | | | I say "convert" because it takes the lazy way and essentially just embeds the wrappers into the backend. It's done this way because I lack the means to check any changes, even syntactically. This also means the device's ExtraData field is still needed. However, this does mean all the backends are now using the new API. Code related to the old interface can now be removed.
* Make the dithering depth configurableChris Robinson2017-06-171-6/+29
|
* Use an RMS limit of -3dB for the output limiterChris Robinson2017-05-291-2/+2
|
* Use peak limiting rather than RMS detectionChris Robinson2017-05-271-1/+1
|
* Add a new compressor/limiterChris Robinson2017-05-271-4/+17
| | | | | | This is just for the output limiter right now, but in the future can be used for the compressor EFX effect. The parameters are also hardcoded, but can be made configurable after 1.18.
* Finalize ALC_SOFT_output_limiterChris Robinson2017-05-251-1/+1
|
* Add an option to dither 8- and 16-bit outputChris Robinson2017-05-231-0/+8
|
* Log whether the output limiter is enabled or disabledChris Robinson2017-05-111-0/+1
|
* Finalize AL_SOFT_source_spatializeChris Robinson2017-05-111-1/+1
|
* Update ALC_OUTPUT_LIMITER_SOFT to handle ALC_DONT_CARE_SOFTChris Robinson2017-05-111-4/+8
| | | | | Essentially just adding a comment about it. Since we default to on, the behavior already fit.
* Calculate the output limiter gain using the RMSChris Robinson2017-05-051-7/+19
|
* Start an extension to change the source's spatialize propertyChris Robinson2017-05-051-1/+4
|
* Finalize AL_SOFT_source_resamplerChris Robinson2017-05-031-1/+1
|
* Allow querying the output limiter stateChris Robinson2017-04-301-2/+12
|
* Start an extension to toggle the output limiterChris Robinson2017-04-301-5/+18
|
* Implement a limiter on the device outputChris Robinson2017-04-261-3/+11
| | | | | | This reduces the output volume when the mixed samples extend outside of -1,+1, to prevent excessive clipping. It can reduce the volume by -80dB in 50ms, and increase it by +80dB in 1s (it will not go below -80dB or above 0dB).
* Add the ability to change the source resamplerChris Robinson2017-04-211-1/+2
|
* Add a method to enumerate resamplersChris Robinson2017-04-211-0/+7
|
* Allocate a new context's voices after updating the device paramsChris Robinson2017-04-191-26/+15
|
* Use a different way to get the size of structs with flexible array membersChris Robinson2017-04-181-3/+3
|
* Store the source prop updates with the mixer voiceChris Robinson2017-04-171-21/+36
| | | | Also move its declaration and rename it for consistency.
* Trace unhandled device reset attributesChris Robinson2017-04-161-111/+109
|
* Correctly handle the attribute array size for alcGetInteger64vSOFTChris Robinson2017-04-151-2/+2
|
* Allow increasing the maximum source limitChris Robinson2017-04-141-15/+59
| | | | | | | | If the requested number of mono and stereo sources exceeds 256, the source limit will be expanded. Any config file setting overrides this. If the device is reset to have fewer sources than are currently allocated, excess sources will remain and be usable as normal, but no more can be generated until enough are delated to go back below the limit.
* Use separate atomic macros for pointersChris Robinson2017-04-141-19/+17
|
* Store the ambisonic order separate from the channel enumChris Robinson2017-04-121-92/+65
|
* Trace the capture device formatChris Robinson2017-04-101-0/+4
|
* Convert the CoreAudio backend to the updated backend APIChris Robinson2017-04-091-1/+1
|
* Reference count HRTFs and unload them when unusedChris Robinson2017-04-061-1/+10
|
* Load HRTF files as neededChris Robinson2017-04-051-32/+8
| | | | | Currently only applies to external files, rather than embedded datasets. Also, HRTFs aren't unloaded after being loaded, until library shutdown.
* Store the loaded hrtf entry container in the enumerated hrtf entryChris Robinson2017-04-051-5/+5
|
* Rename al_string_* functions to alstr_*Chris Robinson2017-04-041-19/+19
|
* Make ReleaseContext return if any contexts still remainChris Robinson2017-03-281-10/+25
|
* Use an array of pointers for effects instead of a linked listChris Robinson2017-03-271-1/+11
|
* Fix setting Ambi formats for loopback devicesChris Robinson2017-03-211-1/+1
|
* Use an atomic flag to test if a source needs to updateChris Robinson2017-03-201-1/+1
|
* Don't defer source state or offset changesChris Robinson2017-03-191-32/+3
|
* Fix alcGetInteger64vSOFT to handle ambisonic attributesChris Robinson2017-03-181-14/+28
|
* Replace a couple ALuint with ALsizeiChris Robinson2017-03-171-2/+2
|
* Remove a couple unneeded typedefsChris Robinson2017-03-141-23/+25
|
* Dynamically allocate the device's HRTF stateChris Robinson2017-03-101-37/+42
|
* Fix building without C11Chris Robinson2017-03-101-1/+2
|
* Implement NFC filters for Ambisonic renderingChris Robinson2017-03-101-0/+20
| | | | | | | | | | | | | | NFC filters currently only work when rendering to ambisonic buffers, which includes HQ rendering and ambisonic output. There are two new config options: 'decoder/nfc' (default on) enables or disables use of NFC filters globally, and 'decoder/nfc-ref-delay' (default 0) specifies the reference delay parameter for NFC-HOA rendering with ambisonic output (a value of 0 disables NFC). Currently, NFC filters rely on having an appropriate value set for AL_METERS_PER_UNIT to get the correct scaling. HQ rendering uses the averaged speaker distances as a control/reference, and currently doesn't correct for individual speaker distances (if the speakers are all equidistant, this is fine, otherwise per-speaker correction should be done as well).