aboutsummaryrefslogtreecommitdiffstats
path: root/al/auxeffectslot.h
diff options
context:
space:
mode:
authorBoris I. Bendovsky <[email protected]>2022-02-08 18:20:46 +0200
committerGitHub <[email protected]>2022-02-08 08:20:46 -0800
commitd42077680890fee9e8f150e99bc259435bbe5d44 (patch)
tree0606b99eba2a09c18a8b82a2b5aafe11557eba91 /al/auxeffectslot.h
parentf23c7fe8ba77d4d406d37c60501f961313db7d1a (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.h22
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);