ES-DE/src/AudioManager.h
Bim Overbohm edc26aa4e1 Add Volume control in Windows and Linux
Add volume control int Windows through the mixer API (until XP) and the
EndpointVolume API (Vista and above). Add volume control in Linux
through ALSA.
Convert AudioManager to use shared_ptrs.
2013-05-22 19:11:10 +02:00

38 lines
648 B
C++

#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