| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #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};
- }
|