ES-DE/es-core/src/AudioManager.h

38 lines
648 B
C
Raw Normal View History

#ifndef _AUDIOMANAGER_H_
#define _AUDIOMANAGER_H_
#include <vector>
#include <memory>
#include "SDL_audio.h"
#include "Sound.h"
class AudioManager
{
static SDL_AudioSpec sAudioFormat;
static std::vector<std::shared_ptr<Sound>> sSoundVector;
static std::shared_ptr<AudioManager> sInstance;
static void mixAudio(void *unused, Uint8 *stream, int len);
AudioManager();
public:
static std::shared_ptr<AudioManager> & getInstance();
void init();
void deinit();
void registerSound(std::shared_ptr<Sound> & sound);
void unregisterSound(std::shared_ptr<Sound> & sound);
void play();
void stop();
virtual ~AudioManager();
};
#endif