aboutsummaryrefslogtreecommitdiffstats
path: root/alc
Commit message (Collapse)AuthorAgeFilesLines
* Keep track of uncaptured samples with the Oboe backendChris Robinson2022-04-061-8/+41
| | | | | Stopping Oboe capture drops uncaptured samples, whereas OpenAL keeps them. Also make sure the reported available count doesn't go backwards without reading.
* Rename lerp to avoid conflicts with C++20's std::lerpChris Robinson2022-04-064-14/+14
|
* Limit the super stereo width factor to 0.7Chris Robinson2022-04-041-1/+1
|
* Update a comment for abandoned extension functionsChris Robinson2022-04-031-1/+1
|
* Finalize AL_SOFT_callback_bufferChris Robinson2022-04-012-18/+1
|
* Fix ALC_SOFT_reopen_device for the null device extension listChris Robinson2022-04-011-1/+1
|
* Remove the unused flags parameter from alBufferCallbackSOFTChris Robinson2022-04-011-2/+2
|
* Finalize ALC_SOFT_reopen_deviceChris Robinson2022-04-012-11/+1
|
* Avoid some explicit extern "C"s on function definitionsChris Robinson2022-03-311-0/+12
|
* Avoid some redundant variable assignmentsChris Robinson2022-03-301-12/+6
|
* Remove the reversed all-pass trick in MixDirectHrtfBaseChris Robinson2022-03-301-2/+0
| | | | Given the minimum phase HRTF, it's not going to stay linear phase anyway.
* Avoid a shadow declaration warningChris Robinson2022-03-301-7/+7
|
* Make and use a Default enum for StereoEncodingChris Robinson2022-03-292-11/+11
|
* Rename ALC_STEREO_PLAIN_SOFT and don't duplicate ALC_HRTF_SOFTChris Robinson2022-03-294-7/+7
|
* Handle more modes with the ALC_OUTPUT_MODE_SOFT attributeChris Robinson2022-03-234-184/+254
|
* Better ensure attributes are properly tracedChris Robinson2022-03-171-28/+15
|
* Fix tracing the ALC_OUTPUT_MODE_SOFT attributeChris Robinson2022-03-171-1/+1
|
* Ensure the EAX functions are suitably aligned on 32-bitChris Robinson2022-03-161-2/+2
|
* Add options to reverse local X and Y coordinatesChris Robinson2022-03-103-9/+21
| | | | | To go along with reverse-z on the other axii. This is only for games that have position/orientation errors causing top-bottom (or left-right) inversion.
* Add a config option for reverse-zChris Robinson2022-03-103-24/+29
| | | | | | The same as the __ALSOFT_REVERSE_Z env var, but in the config file. Should only be used for per-game config files (either along side the executable, or setting the ALSOFT_CONF env var when launching the app).
* Fix X-RAM trackingChris Robinson2022-03-061-1/+1
|
* Simplify committing EAX propertiesChris Robinson2022-03-051-18/+5
| | | | | | Based on DirectSound's EAX behavior, committing any EAX property commits *all* deferred property changes, not just the object being changed. So applying EAX changes can be handled in one place.
* Ensure deferred EAX effect properties are committedChris Robinson2022-03-041-0/+2
|
* Fix applying the EAX context AirAbsorptionHF propertyChris Robinson2022-03-021-1/+1
|
* Fix applying air absorptionChris Robinson2022-03-021-20/+20
|
* Move some temp variables closer to where they're usedChris Robinson2022-03-021-69/+67
|
* Rework source send distance attenuation handlingChris Robinson2022-03-021-61/+77
| | | | | | | | Specifically, AL_[EAX]REVERB_ROOM_ROLLOFF_FACTOR always applies to an inverse distance rolloff model, where the source's AL_ROOM_ROLLOFF_FACTOR applies to the selected distance model. Consequently, the normal distance and cone attenuation only needs to be calculated once for all sends, with the effect's room rolloff calculated and applied separately.
* Rework the initial reverb decayChris Robinson2022-03-011-41/+32
| | | | | | | | | | | | | | | | | | The idea here is that the initial reverb decay can't become less than the dry path distance attenuation, as the dry attenuation represents the audio that has not yet had a chance to start reflecting in the environment. As well, the reference distance indicates where there is no distance attenuation, with any initial attenuation set by the environment itself. So what we do is use the dry path attenuation as the baseline for what's mixed to the reverb, with the decay rate indicating how much of the remaining room (non-direct) energy attenuates with distance. This may be over-complicating it. Other sources hint at a more typical XdB per doubling of distance, with X varying depending on environment properties (room size, absorbancy, etc). This could be handled by applying a normal inverse distance attenuation model, with a rolloff factor generated from the reverb properties (density, decay rate, etc). Will need more testing and research.
* Remove AL_SOFTX_filter_gain_exChris Robinson2022-02-281-1/+0
| | | | | | It was only added to try to help DSOAL, and it's not clear if it's even necessary. But with native EAX API support, it certainly isn't necessary anymore.
* Define the CoreAudio default name only when neededChris Robinson2022-02-231-2/+4
|
* Make some local constexpr variables staticChris Robinson2022-02-233-31/+25
|
* Avoid using an if_constexpr macroChris Robinson2022-02-222-15/+9
| | | | | It doesn't actually use if constexpr, and compilers are smart enough to optimize. Some functions can use templates instead.
* Use a simpler loop to enumerate sourcesChris Robinson2022-02-212-222/+17
|
* Implement EAX v1.0 (#664)Boris I. Bendovsky2022-02-211-10/+10
|
* Make a couple more operator bools explicitChris Robinson2022-02-201-1/+1
|
* Avoid a variable limit on EAX filtersChris Robinson2022-02-182-11/+0
| | | | | | I'll assume for now that the limits for the EAX properties will keep the filter gain from getting out of hand. The filter's gainhf is relative to the gain and is limited to 0dB max.
* Trace the actual device form factor in pipewireChris Robinson2022-02-161-11/+5
|
* Don't trace ignored pipewire stream nodesChris Robinson2022-02-151-1/+3
|
* Reset mIs51Rear only when updating the channel configChris Robinson2022-02-151-4/+4
|
* Log when a pipewire device is removedChris Robinson2022-02-151-1/+6
|
* Mark another operator bool as explicitChris Robinson2022-02-151-1/+1
|
* Access the proper FX slot indexChris Robinson2022-02-141-3/+5
|
* Commit EAX context properties when a context stops deferringChris Robinson2022-02-131-0/+3
|
* Force EAX calls to defer when the AL context is deferringChris Robinson2022-02-131-13/+12
|
* Avoid more unnecessary atomicsChris Robinson2022-02-133-12/+10
|
* Don't make mPropsDirty atomicChris Robinson2022-02-131-1/+1
| | | | It's only ever used under the ALCcontext::mPropLock mutex.
* Commit source EAX properties when not deferringChris Robinson2022-02-132-8/+0
| | | | And make sure they get committed when resuming processing.
* Don't hide EAX functions behind a contextChris Robinson2022-02-101-4/+28
| | | | | | | The standard says a function being returned doesn't necessarily mean it's usable, and calling them will return failure if called when not usable. The config option still prevents it from being returned, to better hide it when disabled globally.
* Inline some more simple gettersChris Robinson2022-02-082-36/+9
|
* Handle AirAbsorptionGainHF as a native context propertyChris Robinson2022-02-084-14/+7
|