aboutsummaryrefslogtreecommitdiffstats
path: root/alc
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Combine listener and context updatesChris Robinson2022-02-083-26/+8
|
* Apply updates for EAX context propertiesChris Robinson2022-02-082-23/+46
|
* Actually defer EAXCONTEXT_ALLPARAMETERS propertiesChris Robinson2022-02-081-19/+19
|
* Ensure sources update together from EAX commitsChris Robinson2022-02-082-6/+10
| | | | ... when a listener property change forces a commit.
* Hold mPropLock when deferring updatesChris Robinson2022-02-083-4/+13
|
* Inline ALCcontext::has_eaxChris Robinson2022-02-082-6/+1
|
* More accurately detect the EAX speaker configChris Robinson2022-02-081-9/+21
|
* DisabledEffects won't change so EAX can just check it onceChris Robinson2022-02-083-21/+6
|
* EAX various fixes (#657)Boris I. Bendovsky2022-02-082-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 propertiesChris Robinson2022-02-072-36/+1
|
* Don't pass an ALeffect to ALeffectslot::initEffectChris Robinson2022-02-071-1/+3
|
* Avoid a magic numberChris Robinson2022-02-011-1/+1
|
* Rename Sqrt1_2 for consistencyChris Robinson2022-02-011-5/+5
|
* [EAX] Add primary extension name for EAX v2.0 (#653)Boris I. Bendovsky2022-02-011-2/+6
|
* Move ALSOFT_EAX definition to config.hChris Robinson2022-01-304-28/+24
| | | | And disable it by default for non-Windows targets
* Add EAX extensions (EAX 2.0-5.0, X-RAM) (#632)Boris I. Bendovsky2022-01-304-0/+1666
| | | | | | | | | | | | | | | * Add EAX extensions (EAX 2.0-5.0, X-RAM) * Comment out C++17 leftovers * Remove everything related to patching * Update alsoftrc.sample * Rewrite integration * Fix GCC compilation under Linux * Always reset EAX effect properties when loading it into FX slot
* Remove math_defs.hChris Robinson2022-01-272-4/+9
|
* Get rid of MathDefsChris Robinson2022-01-2710-39/+38
|
* Start and use a standard-like numbers headerChris Robinson2022-01-272-11/+12
|
* Add some common wrapper methods to ThreadMainloopChris Robinson2022-01-261-42/+46
|
* Default the PipeWire lock's operator= instead of using the baseChris Robinson2022-01-261-1/+1
|
* Handle 5.1 using rear channels with PulseAudio and PipeWireChris Robinson2022-01-252-105/+60
|
* Move some definitions to where they're usedChris Robinson2022-01-241-2/+2
|
* Avoid a messy while loop to remove from a vectorChris Robinson2022-01-221-11/+8
|
* Restructure the PipeWire backend code a bitChris Robinson2022-01-221-219/+235
| | | | | Make some functions into class member functions, and move related declarations closer together.
* Avoid holding a pw_proxy, hold the type it representsChris Robinson2022-01-221-36/+70
|
* Handle duplex devices with PipeWireChris Robinson2022-01-221-22/+43
|
* Load the PipeWire real-time configurationChris Robinson2022-01-171-18/+57
| | | | | This is apparently needed to ensure RT threads get RT priority, separately from requesting RT processing.
* Add an ambi-format option for ACN ordering and FuMa scalingChris Robinson2022-01-121-0/+15
|
* Use a different output matrix for late reverbChris Robinson2022-01-111-14/+22
| | | | | | | | | | This is a slightly reoriented tetrahedron, with responses on the front-left and front-right, along with upper-back and lower-back. This is a alternative matrix suggested for converting the A-Format late reverb lines back to B-Format. Also alter the matrix scaling to be less destructive. x0.5 is just reducing the floating-point exponent by 1, whereas the previous values would be more likely to introduce rounding errors just from scaling.
* Add a third-order ambisonic decoder for HRTFChris Robinson2022-01-051-2/+59
| | | | | Using the 20-channel dodecahedron, seems to be good enough to handle 16-channel third-order ambisonics.
* Update the HRTF second-order ambisonic decoderChris Robinson2022-01-041-42/+27
| | | | This only needs 14 virtual channels instead of 20.
* Avoid a static-sized char array on the stackChris Robinson2021-12-311-16/+22
|
* Avoid some unnecessary copyingChris Robinson2021-12-311-10/+9
|
* Some more restructuring of the PipeWire backendChris Robinson2021-12-301-73/+58
|
* Set the node rate for the pipewire capture stream tooChris Robinson2021-12-291-0/+1
|
* Move some constexpr variables to where they're usedChris Robinson2021-12-281-50/+47
|
* C++-ize the PipeWire backend some moreChris Robinson2021-12-281-61/+94
| | | | | | | | | Use unique_ptrs for a few more types to avoid explicit free calls. Move ThreadMainloop::wait to the unique_lock wrapper that's holding the lock. Since the mainloop acts as both a lock and condition_variable, passing the lock to the wait method makes no sense. Also have it optionally take a predicate functor to dictate when to stop waiting.