KlassischeKeplerKriege/game/sound/sound_effects.hpp

44 lines
1 KiB
C++
Raw Normal View History

#pragma once
#include <list>
2016-10-03 16:45:24 +00:00
#include <map>
#include "state/state.hpp"
namespace sound {
2016-10-03 16:45:24 +00:00
struct SoundHandle;
2016-10-03 16:45:24 +00:00
#if 0
class SoundEffect {
public:
virtual ~SoundEffects()
{
}
// return false if it can be deleted
virtual bool advance(float dt) = 0;
};
2016-10-03 16:45:24 +00:00
#endif
class SoundEffects {
public:
SoundEffects()
{
}
void advance(float dt, const std::list<game::StateUpdateEvent*> &updates);
private:
2016-10-03 16:45:24 +00:00
void fadeIn(SoundHandle *handle, float fadeInTime=0.3f);
void fadeOut(SoundHandle *handle, float fadeOutTime=0.3f);
void addSoundHandleForObject(game::Object *obj, SoundHandle *handle);
void fadeOutSoundHandlesForObject(game::Object *obj, float fadeOutTime=0.3f);
private:
std::list<SoundHandle*> m_soundHandles;
std::multimap<size_t, SoundHandle*> m_mapObjectToSoundHandle;
//std::list<SoundEffect*> m_effects;
};
}