From 65e4c20c27f2acf853e58fd4c26ebc0e3eb926c6 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Mon, 16 May 2022 02:08:18 -0700 Subject: Move EAX files to their own sub-directory --- al/eax/fx_slot_index.cpp | 71 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 al/eax/fx_slot_index.cpp (limited to 'al/eax/fx_slot_index.cpp') diff --git a/al/eax/fx_slot_index.cpp b/al/eax/fx_slot_index.cpp new file mode 100644 index 00000000..28b11882 --- /dev/null +++ b/al/eax/fx_slot_index.cpp @@ -0,0 +1,71 @@ +#include "config.h" + +#include "fx_slot_index.h" + +#include "exception.h" + + +namespace +{ + + +class EaxFxSlotIndexException : + public EaxException +{ +public: + explicit EaxFxSlotIndexException( + const char* message) + : + EaxException{"EAX_FX_SLOT_INDEX", message} + { + } +}; // EaxFxSlotIndexException + + +} // namespace + + +void EaxFxSlotIndex::set(EaxFxSlotIndexValue index) +{ + if(index >= EaxFxSlotIndexValue{EAX_MAX_FXSLOTS}) + fail("Index out of range."); + + emplace(index); +} + +void EaxFxSlotIndex::set(const GUID &guid) +{ + if (false) + { + } + else if (guid == EAX_NULL_GUID) + { + reset(); + } + else if (guid == EAXPROPERTYID_EAX40_FXSlot0 || guid == EAXPROPERTYID_EAX50_FXSlot0) + { + emplace(0u); + } + else if (guid == EAXPROPERTYID_EAX40_FXSlot1 || guid == EAXPROPERTYID_EAX50_FXSlot1) + { + emplace(1u); + } + else if (guid == EAXPROPERTYID_EAX40_FXSlot2 || guid == EAXPROPERTYID_EAX50_FXSlot2) + { + emplace(2u); + } + else if (guid == EAXPROPERTYID_EAX40_FXSlot3 || guid == EAXPROPERTYID_EAX50_FXSlot3) + { + emplace(3u); + } + else + { + fail("Unsupported GUID."); + } +} + +[[noreturn]] +void EaxFxSlotIndex::fail(const char* message) +{ + throw EaxFxSlotIndexException{message}; +} -- cgit v1.2.3