22 #ifndef FIFE_SOUNDEFFECTMANAGER_H 23 #define FIFE_SOUNDEFFECTMANAGER_H 58 void init(ALCdevice* device);
177 std::map<SoundEffectPreset, EFXEAXREVERBPROPERTIES>
m_presets;
void enableDirectSoundFilter(SoundFilter *filter)
Enables given direct SoundFilter.
SoundFilterEmitterMap m_filterdEmitters
void removeEmitterFromSoundEffect(SoundEffect *effect, SoundEmitter *emitter)
Removes given SoundEmitter from the specific SoundEffect.
void init(ALCdevice *device)
Initializes the effect system.
void deactivateFilter(SoundFilter *filter, SoundEmitter *emitter)
Internal function to do the OpenAL calls to deactivate the SoundFilter for the SoundEmitter.
SoundEffectPreset
Presets for EAX Reverb.
void activateEffect(SoundEffect *effect, SoundEmitter *emitter)
Internal function to do the OpenAL calls to activate the SoundEffect for the SoundEmitter.
bool m_active
If sound effect module is active.
void deleteSoundFilter(SoundFilter *filter)
Deletes given SoundFilter.
ALCdevice * m_device
OpenAL device.
ALint m_maxSlots
Maximal effect slots per Source.
SoundEffect * createSoundEffect(SoundEffectType type)
Creates SoundEffect of the specific type.
Base class for Efx sound effects.
The class defines filters.
void addSoundFilterToSoundEffect(SoundEffect *effect, SoundFilter *filter)
Adds given SoundFilter to the SoundEffect.
void disableSoundEffect(SoundEffect *effect)
Disables given SoundEffect.
void createPresets()
Inital the presets.
SoundEffectEmitterMap m_effectEmitters
SoundFilterEffectMap m_filterdEffects
void addEmitterToDirectSoundFilter(SoundFilter *filter, SoundEmitter *emitter)
Adds given SoundEmitter to the specific direct SoundFilter Note: A SoundEmitter can only have one dir...
void removeSoundFilterFromSoundEffect(SoundEffect *effect, SoundFilter *filter)
Removes given SoundFilter from the SoundEffect.
void disableDirectSoundFilter(SoundFilter *filter)
Disables given SoundFilter.
uint16_t m_createdSlots
Maximal created effect slots, can be different to MAX_EFFECT_SLOTS.
std::vector< SoundEffect * > m_effects
Holds all SoundEffects.
SoundFilter * createSoundFilter(SoundFilterType type)
Creates SoundFilter of the specific type.
void deleteSoundEffect(SoundEffect *effect)
Deletes given SoundEffect.
void removeEmitterFromDirectSoundFilter(SoundFilter *filter, SoundEmitter *emitter)
Removes given SoundEmitter from the specific direct SoundFilter.
SoundEffect * createSoundEffectPreset(SoundEffectPreset type)
Creates EaxReverb SoundEffect and loads the specific preset type.
bool isActive() const
Returns true if sound effect module is active.
The class for playing audio files.
SoundEffectType
Sound effect type.
const uint16_t MAX_EFFECT_SLOTS
void deactivateEffect(SoundEffect *effect, SoundEmitter *emitter)
Internal function to do the OpenAL calls to deactivate the SoundEffect for the SoundEmitter.
std::map< SoundEffect *, std::vector< SoundEmitter * > > SoundEffectEmitterMap
Holds SoundEffects together with the added SoundEmitters.
std::queue< ALuint > m_freeSlots
Holds free handles for effect slots.
void activateFilter(SoundFilter *filter, SoundEmitter *emitter)
Internal function to do the OpenAL calls to activate the SoundFilter for the SoundEmitter.
void enableSoundEffect(SoundEffect *effect)
Enables given SoundEffect.
SoundFilterType
Sound filter type.
ALuint m_effectSlots[MAX_EFFECT_SLOTS]
Holds handles for effects.
~SoundEffectManager()
Destructor.
std::vector< SoundFilter * > m_filters
Holds all SoundFilters.
std::map< SoundFilter *, std::vector< SoundEmitter * > > SoundFilterEmitterMap
Holds SoundFilters together with the added SoundEmitters.
void addEmitterToSoundEffect(SoundEffect *effect, SoundEmitter *emitter)
Adds given SoundEmitter to the specific SoundEffect.
std::map< SoundFilter *, std::vector< SoundEffect * > > SoundFilterEffectMap
Holds SoundFilters together with the added SoundEffects.
SoundEffectManager()
Constructor.
std::map< SoundEffectPreset, EFXEAXREVERBPROPERTIES > m_presets
Establishes the relationship between SoundEffectPreset and EFXEAXREVERBPROPERTIES.