36 lines
762 B
C++
36 lines
762 B
C++
#ifndef UTIL_SOUND_MIXER_H
|
|
#define UTIL_SOUND_MIXER_H
|
|
|
|
#include <SDL_sound.h>
|
|
#include <SDL_mixer.h>
|
|
#include "sound_device.h"
|
|
#include "Singleton.h"
|
|
|
|
namespace Audio {
|
|
class Mixer {
|
|
public:
|
|
Mixer();
|
|
~Mixer();
|
|
|
|
Audio::SoundDevice device;
|
|
|
|
int setVolume(int channel, int volume);
|
|
int setVolumeMusic();
|
|
int getVolume(int channel);
|
|
int getVolumeMusic();
|
|
|
|
void playSample(const size_t & sampleId);
|
|
|
|
void pause(int channel);
|
|
void pauseMusic();
|
|
private:
|
|
inline bool checkDeviceOK() { return (device.getStatus() ==
|
|
Audio::SoundDevice::OPEN); }
|
|
};
|
|
|
|
typedef Loki::SingletonHolder<Mixer, Loki::CreateUsingNew,
|
|
Loki::DefaultLifetime, Loki::SingleThreaded> MixerHolder;
|
|
}
|
|
|
|
#endif
|