diff options
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 |