Check for a minimum PipeWire version
[openal-soft.git] / al / eax_fx_slots.h
bloba104c6ab63cf1a66e11764ab7147a2cbe118e401
1 #ifndef EAX_FX_SLOTS_INCLUDED
2 #define EAX_FX_SLOTS_INCLUDED
5 #include <array>
7 #include "al/auxeffectslot.h"
9 #include "eax_api.h"
11 #include "eax_fx_slot_index.h"
14 class EaxFxSlots
16 public:
17 void initialize(
18 ALCcontext& al_context);
20 void uninitialize() noexcept;
22 void commit()
24 for(auto& fx_slot : fx_slots_)
25 fx_slot->eax_commit();
29 const ALeffectslot& get(
30 EaxFxSlotIndex index) const;
32 ALeffectslot& get(
33 EaxFxSlotIndex index);
35 void unlock_legacy() noexcept;
38 private:
39 using Items = std::array<EaxAlEffectSlotUPtr, EAX_MAX_FXSLOTS>;
42 Items fx_slots_{};
45 [[noreturn]]
46 static void fail(
47 const char* message);
49 void initialize_fx_slots(
50 ALCcontext& al_context);
51 }; // EaxFxSlots
54 #endif // !EAX_FX_SLOTS_INCLUDED