aboutsummaryrefslogtreecommitdiffstats
path: root/alc/context.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 /alc/context.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 'alc/context.h')
-rw-r--r--alc/context.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/alc/context.h b/alc/context.h
index 331b21b0..682012c7 100644
--- a/alc/context.h
+++ b/alc/context.h
@@ -229,6 +229,8 @@ public:
void eax_update_filters();
+ void eax_on_3d_listener_param_call();
+
void eax_set_last_error() noexcept;
@@ -319,6 +321,7 @@ private:
bool eax_is_initialized_{};
bool eax_is_tried_{};
+ bool eax_are_legacy_fx_slots_unlocked_{};
long eax_last_error_{};
unsigned long eax_speaker_config_{};
@@ -365,12 +368,14 @@ private:
void eax_ensure_compatibility();
+ unsigned long eax_detect_speaker_configuration() const;
+ void eax_update_speaker_configuration();
+
+
void eax_initialize_filter_gain();
void eax_set_last_error_defaults() noexcept;
- void eax_set_speaker_config_defaults() noexcept;
-
void eax_set_session_defaults() noexcept;
void eax_set_context_defaults() noexcept;
@@ -380,6 +385,9 @@ private:
void eax_initialize_sources();
+ void eax_unlock_legacy_fx_slots(const EaxEaxCall& eax_call) noexcept;
+
+
void eax_dispatch_fx_slot(
const EaxEaxCall& eax_call);
@@ -507,9 +515,6 @@ private:
void eax_defer_hf_reference(
const EaxEaxCall& eax_call);
- void eax_set_speaker_config(
- const EaxEaxCall& eax_call);
-
void eax_set_session(
const EaxEaxCall& eax_call);