1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
#ifndef MUSIC_H
#define MUSIC_H
#include <string>
#include "AudioChannel.h"
class SoundSource;
class MusicChannel : public AudioChannel
{
public:
MusicChannel();
~MusicChannel();
void SetVolume(float volume);
void Enable(bool newState);
/**
* @brief Start playing an ogg-file
*
* NOT threadsafe, unlike the other functions!
* If another file is playing, it will stop it and play the new one instead.
*/
void Play(const std::string& path, float volume = 1.0f, bool enqueue = false);
void Pause();
/**
* @brief Stop playback
*
* Don't call this if you just want to play another file (for performance).
*/
void Stop();
float GetTime();
float GetPlayTime();
private:
SoundSource* current;
};
namespace Channels
{
extern MusicChannel BGMusic;
};
#endif
|