blob: c651cd5167f721c66598d7cdb0888d37d7f8ebdf (
plain)
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
|
#pragma once
#include <soloud/soloud.h>
#include "../api/Config.h"
#include "Sound.h"
namespace crepe {
/**
* \brief Sound engine facade
*
* This class is a wrapper around a \c SoLoud::Soloud instance, which provides
* the methods for playing \c Sound instances. It is part of the sound facade.
*/
class SoundContext {
public:
SoundContext();
virtual ~SoundContext();
SoundContext(const SoundContext &) = delete;
SoundContext(SoundContext &&) = delete;
SoundContext & operator=(const SoundContext &) = delete;
SoundContext & operator=(SoundContext &&) = delete;
virtual Sound::Handle play(Sound & resource);
virtual void stop(Sound::Handle &);
virtual void set_volume(Sound &, Sound::Handle &, float);
virtual void set_loop(Sound &, Sound::Handle &, bool);
private:
SoLoud::Soloud engine;
float default_volume = 1.0f;
Config & config = Config::get_instance();
};
} // namespace crepe
|