aboutsummaryrefslogtreecommitdiffstats
path: root/al/auxeffectslot.h
Commit message (Collapse)AuthorAgeFilesLines
* Move struct definitions to more appropriate headersChris Robinson2023-12-291-0/+18
|
* Remove DEF_NEWDELChris Robinson2023-12-161-3/+0
| | | | | C++17 provides alignment-aware allocators for us, so we don't need to use our own to make sure classes/structs are properly aligned.
* Fix some clang-tidy warningsChris Robinson2023-12-081-8/+8
|
* Remove some unnecessary atomic wrappersChris Robinson2023-12-031-1/+1
|
* Allow querying AL_EFFECTSLOT_EFFECTChris Robinson2023-08-251-1/+3
| | | | | | | This doesn't make much sense since the effect associated with the ID may be modified and not represent the effect being played, or was even deleted and isn't a valid effect ID, but Generic Software allows querying it so it should be queryable for compatibility if nothing else.
* Add AL_EXT_debug functions to set/get object namesChris Robinson2023-08-111-0/+3
|
* Convert the remaining EAX effectsChris Robinson2023-03-111-2/+2
|
* Convert the EAX Echo and Equalizer effectsChris Robinson2023-03-111-2/+2
|
* Convert the EAX Autowah and Compressor effectsChris Robinson2023-03-111-4/+4
|
* Convert the EAX Compressor effectChris Robinson2023-03-101-2/+2
| | | | And combine some type checks.
* Convert EAX chorus and flanger effectsChris Robinson2023-03-101-4/+4
|
* Rework EAX effect handlingChris Robinson2023-03-101-5/+3
| | | | | | | Allocate a base EaxEffect object once for all effect types, instead of reallocating different derived types on effect changes. The reverb and null effects have been converted to the new interface, the others are currently broken/unsupported, but will be restored shortly.
* [EAX_SOURCE] Fix source's occlusion and exclusion contributionBoris I. Bendovsky2022-07-171-0/+3
| | | | Source's oclussion and exclusion properties should be taken into account only for listener's environment (see p. 16, p. 56, pp. 62-63 and p. 64 of "EAX® 4.0 Programmer’s Guide").
* [EAX_FX_SLOT] Fix defaults for current propertiesBoris I. Bendovsky2022-07-171-4/+5
|
* Don't pass an EaxCall to initialize_fx_slotsChris Robinson2022-07-151-5/+3
|
* Allocate EffectSlots in clustersChris Robinson2022-07-151-1/+1
|
* Dynamically allocate EffectSlot objectsChris Robinson2022-07-151-1/+1
|
* Make a member function staticChris Robinson2022-07-131-1/+1
|
* Don't track dirty flags per EAX versionChris Robinson2022-07-131-8/+6
| | | | | Only the current version's flags are used, and they're all reset when changing versions, making it unnecessary to track non-current version flags.
* [EAX] Use separate FX slot state for each version (#730)Boris I. Bendovsky2022-07-121-120/+250
| | | | | | | * [EAX] Use separate FX slot state for each version [EAX] Don't defer FX slot properties * [EAX_FXSLOT] Use mPropsDirty to defer update [EAX_CONTEXT] Commit all updates on first initialization
* [EAX] Add separate effect state for each version (#705)Boris I. Bendovsky2022-05-241-68/+31
| | | | | * [EAX] Add separate effect state for each version * [EAX] Don't use EAX call as data member
* Move EAX files to their own sub-directoryChris Robinson2022-05-161-3/+3
|
* Inline a couple dispatch callsChris Robinson2022-03-261-2/+3
|
* Avoid a stateful unique_ptr deleterChris Robinson2022-03-051-16/+7
|
* Ensure deferred EAX effect properties are committedChris Robinson2022-03-041-1/+3
|
* Avoid more unnecessary atomicsChris Robinson2022-02-131-1/+1
|
* Fix sign of ALeffectslot::eax_get_eax_default_lock's return typeChris Robinson2022-02-081-1/+1
|
* EAX various fixes (#657)Boris I. Bendovsky2022-02-081-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [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 using ALeffect to manage EaxEffect objectsChris Robinson2022-02-071-11/+5
| | | | Effect slots can just use its EaxEffect directly.
* Don't pass an ALeffect to ALeffectslot::initEffectChris Robinson2022-02-071-1/+1
|
* Move ALSOFT_EAX definition to config.hChris Robinson2022-01-301-3/+3
| | | | And disable it by default for non-Windows targets
* Add EAX extensions (EAX 2.0-5.0, X-RAM) (#632)Boris I. Bendovsky2022-01-301-0/+221
| | | | | | | | | | | | | | | * 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
* Move the effects base and effectslot to coreChris Robinson2021-12-171-1/+1
|
* Rename alcmain.h to device.hChris Robinson2021-04-271-1/+1
|
* Update include headersChris Robinson2021-04-271-3/+3
| | | | Don't add alc/ to the include paths.
* Make an inverted atomic flag type and use itChris Robinson2021-04-151-1/+1
| | | | | | | | The inverted atomic flag replaces test_and_set+clear with test_and_clear+set, essentially inverting the flag status. This makes more logical sense for flagging dirty state, which is less confusing than flagging clean state. The one caveat is ATOMIC_FLAG_INIT (or default construction in C++20) initializes the state to true rather than false.
* Combine multiple functions into oneChris Robinson2020-12-281-2/+1
|
* Move the WetBuffer reference to EffectSlotChris Robinson2020-12-271-3/+0
|
* Avoid AL enums for the EffectSlot typeChris Robinson2020-12-261-1/+1
|
* Use a separate structure for the active effect slot propertiesChris Robinson2020-11-071-47/+2
|
* Store the wet buffers in the contextChris Robinson2020-11-021-1/+2
| | | | | | This is rather ugly, but we need the wet buffers to remain allocated after its effect slot is deleted, because a voice can still use it for its final fade-out mix.
* Rework effect slot buffer settingChris Robinson2020-09-051-3/+0
| | | | | | | | Rather than creating an effect-specific buffer that gets passed along as a property, the buffer is set the effect state when the effect state is created, the device is updated, or the buffer is changed. The buffer can only be set while the effect slot isn't playing, so it won't be changed or updated while the mixer is processing the effect state.
* Don't add effect slots to the active list until an effect is setChris Robinson2020-09-051-0/+8
|
* Store a reference to the effect buffer as an active propertyChris Robinson2020-08-241-0/+2
|
* Add a method for effects to create persistent buffer dataChris Robinson2020-08-241-0/+1
|
* Use an intrusive_ptr to hold the unapplied effect stateChris Robinson2020-08-241-1/+1
|
* Allow setting a buffer on an effect slotChris Robinson2020-08-241-0/+2
|
* Use an intrusive_ptr for ALeffectslotProps::StateChris Robinson2020-08-241-1/+2
|
* Change a couple functions into member functionsChris Robinson2020-05-101-5/+4
|
* Clean up some more unnecessary uses of AL typesChris Robinson2020-04-081-5/+5
|