diff options
author | Boris I. Bendovsky <[email protected]> | 2022-02-08 18:20:46 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2022-02-08 08:20:46 -0800 |
commit | d42077680890fee9e8f150e99bc259435bbe5d44 (patch) | |
tree | 0606b99eba2a09c18a8b82a2b5aafe11557eba91 /al/auxeffectslot.h | |
parent | f23c7fe8ba77d4d406d37c60501f961313db7d1a (diff) |
EAX various fixes (#657)
* [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
Diffstat (limited to 'al/auxeffectslot.h')
-rw-r--r-- | al/auxeffectslot.h | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/al/auxeffectslot.h b/al/auxeffectslot.h index 8182c082..0ee1d022 100644 --- a/al/auxeffectslot.h +++ b/al/auxeffectslot.h @@ -85,6 +85,8 @@ public: bool eax_dispatch( const EaxEaxCall& eax_call); + void eax_unlock_legacy() noexcept; + private: ALCcontext* eax_al_context_{}; @@ -94,6 +96,7 @@ private: EAX50FXSLOTPROPERTIES eax_eax_fx_slot_{}; EaxEffectUPtr eax_effect_{}; + bool eax_is_locked_{}; [[noreturn]] @@ -101,19 +104,17 @@ private: const char* message); + GUID eax_get_eax_default_effect_guid() const noexcept; + unsigned long eax_get_eax_default_lock() const noexcept; + void eax_set_eax_fx_slot_defaults(); void eax_initialize_eax(); + void eax_initialize_lock(); - void eax_initialize_effects(); - - - void eax_set_default_slot_0_defaults(); - - void eax_set_default_slot_1_defaults(); - void eax_set_default_slots_defaults(); + void eax_initialize_effects(); void eax_get_fx_slot_all( @@ -143,6 +144,9 @@ private: void eax_set_fx_slot_flags(); + void eax_ensure_is_unlocked() const; + + void eax_validate_fx_slot_effect( const GUID& eax_effect_id); @@ -152,10 +156,6 @@ private: void eax_validate_fx_slot_lock( long eax_lock); - void eax_validate_fx_slot_lock_state( - long eax_lock, - const GUID& eax_effect_id); - void eax_validate_fx_slot_flags( unsigned long eax_flags, int eax_version); |