Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Handle more modes with the ALC_OUTPUT_MODE_SOFT attribute | Chris Robinson | 2022-03-23 | 4 | -184/+254 |
| | |||||
* | Better ensure attributes are properly traced | Chris Robinson | 2022-03-17 | 1 | -28/+15 |
| | |||||
* | Fix tracing the ALC_OUTPUT_MODE_SOFT attribute | Chris Robinson | 2022-03-17 | 1 | -1/+1 |
| | |||||
* | Ensure the EAX functions are suitably aligned on 32-bit | Chris Robinson | 2022-03-16 | 1 | -2/+2 |
| | |||||
* | Add options to reverse local X and Y coordinates | Chris Robinson | 2022-03-10 | 3 | -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-z | Chris Robinson | 2022-03-10 | 3 | -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 tracking | Chris Robinson | 2022-03-06 | 1 | -1/+1 |
| | |||||
* | Simplify committing EAX properties | Chris Robinson | 2022-03-05 | 1 | -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 committed | Chris Robinson | 2022-03-04 | 1 | -0/+2 |
| | |||||
* | Fix applying the EAX context AirAbsorptionHF property | Chris Robinson | 2022-03-02 | 1 | -1/+1 |
| | |||||
* | Fix applying air absorption | Chris Robinson | 2022-03-02 | 1 | -20/+20 |
| | |||||
* | Move some temp variables closer to where they're used | Chris Robinson | 2022-03-02 | 1 | -69/+67 |
| | |||||
* | Rework source send distance attenuation handling | Chris Robinson | 2022-03-02 | 1 | -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 decay | Chris Robinson | 2022-03-01 | 1 | -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_ex | Chris Robinson | 2022-02-28 | 1 | -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 needed | Chris Robinson | 2022-02-23 | 1 | -2/+4 |
| | |||||
* | Make some local constexpr variables static | Chris Robinson | 2022-02-23 | 3 | -31/+25 |
| | |||||
* | Avoid using an if_constexpr macro | Chris Robinson | 2022-02-22 | 2 | -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 sources | Chris Robinson | 2022-02-21 | 2 | -222/+17 |
| | |||||
* | Implement EAX v1.0 (#664) | Boris I. Bendovsky | 2022-02-21 | 1 | -10/+10 |
| | |||||
* | Make a couple more operator bools explicit | Chris Robinson | 2022-02-20 | 1 | -1/+1 |
| | |||||
* | Avoid a variable limit on EAX filters | Chris Robinson | 2022-02-18 | 2 | -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 pipewire | Chris Robinson | 2022-02-16 | 1 | -11/+5 |
| | |||||
* | Don't trace ignored pipewire stream nodes | Chris Robinson | 2022-02-15 | 1 | -1/+3 |
| | |||||
* | Reset mIs51Rear only when updating the channel config | Chris Robinson | 2022-02-15 | 1 | -4/+4 |
| | |||||
* | Log when a pipewire device is removed | Chris Robinson | 2022-02-15 | 1 | -1/+6 |
| | |||||
* | Mark another operator bool as explicit | Chris Robinson | 2022-02-15 | 1 | -1/+1 |
| | |||||
* | Access the proper FX slot index | Chris Robinson | 2022-02-14 | 1 | -3/+5 |
| | |||||
* | Commit EAX context properties when a context stops deferring | Chris Robinson | 2022-02-13 | 1 | -0/+3 |
| | |||||
* | Force EAX calls to defer when the AL context is deferring | Chris Robinson | 2022-02-13 | 1 | -13/+12 |
| | |||||
* | Avoid more unnecessary atomics | Chris Robinson | 2022-02-13 | 3 | -12/+10 |
| | |||||
* | Don't make mPropsDirty atomic | Chris Robinson | 2022-02-13 | 1 | -1/+1 |
| | | | | It's only ever used under the ALCcontext::mPropLock mutex. | ||||
* | Commit source EAX properties when not deferring | Chris Robinson | 2022-02-13 | 2 | -8/+0 |
| | | | | And make sure they get committed when resuming processing. | ||||
* | Don't hide EAX functions behind a context | Chris Robinson | 2022-02-10 | 1 | -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 getters | Chris Robinson | 2022-02-08 | 2 | -36/+9 |
| | |||||
* | Handle AirAbsorptionGainHF as a native context property | Chris Robinson | 2022-02-08 | 4 | -14/+7 |
| | |||||
* | Combine listener and context updates | Chris Robinson | 2022-02-08 | 3 | -26/+8 |
| | |||||
* | Apply updates for EAX context properties | Chris Robinson | 2022-02-08 | 2 | -23/+46 |
| | |||||
* | Actually defer EAXCONTEXT_ALLPARAMETERS properties | Chris Robinson | 2022-02-08 | 1 | -19/+19 |
| | |||||
* | Ensure sources update together from EAX commits | Chris Robinson | 2022-02-08 | 2 | -6/+10 |
| | | | | ... when a listener property change forces a commit. | ||||
* | Hold mPropLock when deferring updates | Chris Robinson | 2022-02-08 | 3 | -4/+13 |
| | |||||
* | Inline ALCcontext::has_eax | Chris Robinson | 2022-02-08 | 2 | -6/+1 |
| | |||||
* | More accurately detect the EAX speaker config | Chris Robinson | 2022-02-08 | 1 | -9/+21 |
| | |||||
* | DisabledEffects won't change so EAX can just check it once | Chris Robinson | 2022-02-08 | 3 | -21/+6 |
| | |||||
* | EAX various fixes (#657) | Boris I. Bendovsky | 2022-02-08 | 2 | -25/+62 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [EAX] Fix effect GUID validation Only NULL and REVERB was valid. * [EAX] Fix default FX slot flags EAX4 and EAX5 both sets to ENVIRONMENT. * [EAX] Set default values for legacy FX slots in the initialization * [EAX] Fix FX slot locking policy Fail on attempt to load an effect or change a lock for EAX4 "set" call. Unlock legacy FX slots on any EAX5 call. * [EAX] Allow DEFER flag for "get" calls. * [EAX] Make speaker configuration read-only * [EAX] Initialize speaker configuration * [EAX] Commit EAX source on a 3D source parameter call Reference: EAX 4.0 Programmer's Guide * [EAX] Commit EAX source on a 3D listener parameter call Reference: EAX 4.0 Programmer's Guide * [EAX] Commit source when it begins to play Reference: EAX 4.0 Programmer's Guide | ||||
* | Avoid a proxy ALfilter object for EAX source properties | Chris Robinson | 2022-02-07 | 2 | -36/+1 |
| | |||||
* | Don't pass an ALeffect to ALeffectslot::initEffect | Chris Robinson | 2022-02-07 | 1 | -1/+3 |
| | |||||
* | Avoid a magic number | Chris Robinson | 2022-02-01 | 1 | -1/+1 |
| | |||||
* | Rename Sqrt1_2 for consistency | Chris Robinson | 2022-02-01 | 1 | -5/+5 |
| | |||||
* | [EAX] Add primary extension name for EAX v2.0 (#653) | Boris I. Bendovsky | 2022-02-01 | 1 | -2/+6 |
| |