diff options
author | Boris I. Bendovsky <bibendovsky@hotmail.com> | 2022-01-30 14:47:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-30 04:47:32 -0800 |
commit | 19ed994dc30ed84ea7cbbb5152577669fc25caf6 (patch) | |
tree | f68933bf8f778806618bd6c0b1bf9ced1b0ccf08 /al/eax_fx_slots.h | |
parent | 619249371a40f03cf988d1f5750d643df797c485 (diff) |
Add EAX extensions (EAX 2.0-5.0, X-RAM) (#632)
* 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
Diffstat (limited to 'al/eax_fx_slots.h')
-rw-r--r-- | al/eax_fx_slots.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/al/eax_fx_slots.h b/al/eax_fx_slots.h new file mode 100644 index 00000000..6abe61b6 --- /dev/null +++ b/al/eax_fx_slots.h @@ -0,0 +1,46 @@ +#ifndef EAX_FX_SLOTS_INCLUDED +#define EAX_FX_SLOTS_INCLUDED + + +#include <array> + +#include "al/auxeffectslot.h" + +#include "eax_api.h" + +#include "eax_fx_slot_index.h" + + +class EaxFxSlots +{ +public: + void initialize( + ALCcontext& al_context); + + void uninitialize() noexcept; + + + const ALeffectslot& get( + EaxFxSlotIndex index) const; + + ALeffectslot& get( + EaxFxSlotIndex index); + + +private: + using Items = std::array<EaxAlEffectSlotUPtr, EAX_MAX_FXSLOTS>; + + + Items fx_slots_{}; + + + [[noreturn]] + static void fail( + const char* message); + + void initialize_fx_slots( + ALCcontext& al_context); +}; // EaxFxSlots + + +#endif // !EAX_FX_SLOTS_INCLUDED |