aboutsummaryrefslogtreecommitdiffstats
path: root/al/eax/api.h
diff options
context:
space:
mode:
Diffstat (limited to 'al/eax/api.h')
-rw-r--r--al/eax/api.h114
1 files changed, 110 insertions, 4 deletions
diff --git a/al/eax/api.h b/al/eax/api.h
index d0737d1d..f4419ddb 100644
--- a/al/eax/api.h
+++ b/al/eax/api.h
@@ -129,6 +129,110 @@ struct EAX20LISTENERPROPERTIES
unsigned long dwFlags; // modifies the behavior of properties
}; // EAX20LISTENERPROPERTIES
+inline bool operator==(const EAX20LISTENERPROPERTIES& lhs, const EAX20LISTENERPROPERTIES& rhs) noexcept
+{
+ return std::memcmp(&lhs, &rhs, sizeof(EAX20LISTENERPROPERTIES)) == 0;
+}
+
+enum : unsigned long
+{
+ EAX2_ENVIRONMENT_GENERIC,
+ EAX2_ENVIRONMENT_PADDEDCELL,
+ EAX2_ENVIRONMENT_ROOM,
+ EAX2_ENVIRONMENT_BATHROOM,
+ EAX2_ENVIRONMENT_LIVINGROOM,
+ EAX2_ENVIRONMENT_STONEROOM,
+ EAX2_ENVIRONMENT_AUDITORIUM,
+ EAX2_ENVIRONMENT_CONCERTHALL,
+ EAX2_ENVIRONMENT_CAVE,
+ EAX2_ENVIRONMENT_ARENA,
+ EAX2_ENVIRONMENT_HANGAR,
+ EAX2_ENVIRONMENT_CARPETEDHALLWAY,
+ EAX2_ENVIRONMENT_HALLWAY,
+ EAX2_ENVIRONMENT_STONECORRIDOR,
+ EAX2_ENVIRONMENT_ALLEY,
+ EAX2_ENVIRONMENT_FOREST,
+ EAX2_ENVIRONMENT_CITY,
+ EAX2_ENVIRONMENT_MOUNTAINS,
+ EAX2_ENVIRONMENT_QUARRY,
+ EAX2_ENVIRONMENT_PLAIN,
+ EAX2_ENVIRONMENT_PARKINGLOT,
+ EAX2_ENVIRONMENT_SEWERPIPE,
+ EAX2_ENVIRONMENT_UNDERWATER,
+ EAX2_ENVIRONMENT_DRUGGED,
+ EAX2_ENVIRONMENT_DIZZY,
+ EAX2_ENVIRONMENT_PSYCHOTIC,
+
+ EAX2_ENVIRONMENT_COUNT,
+};
+
+constexpr auto EAX2LISTENERFLAGS_DECAYTIMESCALE = 0x00000001UL;
+constexpr auto EAX2LISTENERFLAGS_REFLECTIONSSCALE = 0x00000002UL;
+constexpr auto EAX2LISTENERFLAGS_REFLECTIONSDELAYSCALE = 0x00000004UL;
+constexpr auto EAX2LISTENERFLAGS_REVERBSCALE = 0x00000008UL;
+constexpr auto EAX2LISTENERFLAGS_REVERBDELAYSCALE = 0x00000010UL;
+constexpr auto EAX2LISTENERFLAGS_DECAYHFLIMIT = 0x00000020UL;
+constexpr auto EAX2LISTENERFLAGS_RESERVED = 0xFFFFFFC0UL;
+
+constexpr auto EAX2LISTENER_MINROOM = -10'000L;
+constexpr auto EAX2LISTENER_MAXROOM = 0L;
+constexpr auto EAX2LISTENER_DEFAULTROOM = -1'000L;
+
+constexpr auto EAX2LISTENER_MINROOMHF = -10'000L;
+constexpr auto EAX2LISTENER_MAXROOMHF = 0L;
+constexpr auto EAX2LISTENER_DEFAULTROOMHF = -100L;
+
+constexpr auto EAX2LISTENER_MINROOMROLLOFFFACTOR = 0.0F;
+constexpr auto EAX2LISTENER_MAXROOMROLLOFFFACTOR = 10.0F;
+constexpr auto EAX2LISTENER_DEFAULTROOMROLLOFFFACTOR = 0.0F;
+
+constexpr auto EAX2LISTENER_MINDECAYTIME = 0.1F;
+constexpr auto EAX2LISTENER_MAXDECAYTIME = 20.0F;
+constexpr auto EAX2LISTENER_DEFAULTDECAYTIME = 1.49F;
+
+constexpr auto EAX2LISTENER_MINDECAYHFRATIO = 0.1F;
+constexpr auto EAX2LISTENER_MAXDECAYHFRATIO = 2.0F;
+constexpr auto EAX2LISTENER_DEFAULTDECAYHFRATIO = 0.83F;
+
+constexpr auto EAX2LISTENER_MINREFLECTIONS = -10'000L;
+constexpr auto EAX2LISTENER_MAXREFLECTIONS = 1'000L;
+constexpr auto EAX2LISTENER_DEFAULTREFLECTIONS = -2'602L;
+
+constexpr auto EAX2LISTENER_MINREFLECTIONSDELAY = 0.0F;
+constexpr auto EAX2LISTENER_MAXREFLECTIONSDELAY = 0.3F;
+constexpr auto EAX2LISTENER_DEFAULTREFLECTIONSDELAY = 0.007F;
+
+constexpr auto EAX2LISTENER_MINREVERB = -10'000L;
+constexpr auto EAX2LISTENER_MAXREVERB = 2'000L;
+constexpr auto EAX2LISTENER_DEFAULTREVERB = 200L;
+
+constexpr auto EAX2LISTENER_MINREVERBDELAY = 0.0F;
+constexpr auto EAX2LISTENER_MAXREVERBDELAY = 0.1F;
+constexpr auto EAX2LISTENER_DEFAULTREVERBDELAY = 0.011F;
+
+constexpr auto EAX2LISTENER_MINENVIRONMENT = 0UL;
+constexpr auto EAX2LISTENER_MAXENVIRONMENT = EAX2_ENVIRONMENT_COUNT - 1;
+constexpr auto EAX2LISTENER_DEFAULTENVIRONMENT = EAX2_ENVIRONMENT_GENERIC;
+
+constexpr auto EAX2LISTENER_MINENVIRONMENTSIZE = 1.0F;
+constexpr auto EAX2LISTENER_MAXENVIRONMENTSIZE = 100.0F;
+constexpr auto EAX2LISTENER_DEFAULTENVIRONMENTSIZE = 7.5F;
+
+constexpr auto EAX2LISTENER_MINENVIRONMENTDIFFUSION = 0.0F;
+constexpr auto EAX2LISTENER_MAXENVIRONMENTDIFFUSION = 1.0F;
+constexpr auto EAX2LISTENER_DEFAULTENVIRONMENTDIFFUSION = 1.0F;
+
+constexpr auto EAX2LISTENER_MINAIRABSORPTIONHF = -100.0F;
+constexpr auto EAX2LISTENER_MAXAIRABSORPTIONHF = 0.0F;
+constexpr auto EAX2LISTENER_DEFAULTAIRABSORPTIONHF = -5.0F;
+
+constexpr auto EAX2LISTENER_DEFAULTFLAGS =
+ EAX2LISTENERFLAGS_DECAYTIMESCALE |
+ EAX2LISTENERFLAGS_REFLECTIONSSCALE |
+ EAX2LISTENERFLAGS_REFLECTIONSDELAYSCALE |
+ EAX2LISTENERFLAGS_REVERBSCALE |
+ EAX2LISTENERFLAGS_REVERBDELAYSCALE |
+ EAX2LISTENERFLAGS_DECAYHFLIMIT;
extern const GUID DSPROPSETID_EAX20_BufferProperties;
@@ -957,13 +1061,15 @@ constexpr auto EAXREVERB_DEFAULTFLAGS =
EAXREVERBFLAGS_DECAYHFLIMIT;
-using EaxReverbPresets = std::array<EAXREVERBPROPERTIES, EAX1_ENVIRONMENT_COUNT>;
-extern const EaxReverbPresets EAXREVERB_PRESETS;
-
-
using Eax1ReverbPresets = std::array<EAX_REVERBPROPERTIES, EAX1_ENVIRONMENT_COUNT>;
extern const Eax1ReverbPresets EAX1REVERB_PRESETS;
+using Eax2ReverbPresets = std::array<EAX20LISTENERPROPERTIES, EAX2_ENVIRONMENT_COUNT>;
+extern const Eax2ReverbPresets EAX2REVERB_PRESETS;
+
+using EaxReverbPresets = std::array<EAXREVERBPROPERTIES, EAX1_ENVIRONMENT_COUNT>;
+extern const EaxReverbPresets EAXREVERB_PRESETS;
+
// AGC Compressor Effect