R-Type 0.1
Loading...
Searching...
No Matches
rtkAudiManagerAdapter.hpp
1#pragma once
2
3#include <string>
4#include <vector>
5
6#include <audio/soundManager.hpp>
7
8namespace rtype::client {
19private:
20 rtk::SoundManager _engineManager;
21
22 std::vector<rtk::Sound> _sounds;
23
24public:
25 RtkAudioAdapter() = default;
26 ~RtkAudioAdapter() = default;
27
33 size_t addSound(const std::string &path) {
34 rtk::Sound newSound = _engineManager.addSound(path);
35
36 if (!newSound.isValid()) {
37 return static_cast<size_t>(-1);
38 }
39
40 _sounds.push_back(newSound);
41 return _sounds.size() - 1;
42 }
43
48 void playSound(size_t id) {
49 if (id < _sounds.size()) {
50 _engineManager.playSound(_sounds[id]);
51 }
52 }
53
58 void removeSound(size_t id) {
59 if (id < _sounds.size()) {
60 _engineManager.removeSound(_sounds[id]);
61 }
62 }
63
67 void update() { _engineManager.update(); }
68};
69
71} // namespace rtype::client
Adapts the sound manager of the graphical library to the IsAudioManager concept.
Definition rtkAudiManagerAdapter.hpp:18
void update()
Ticks the underlying sound manager.
Definition rtkAudiManagerAdapter.hpp:67
void removeSound(size_t id)
Unloads a sound, unknown ids are ignored.
Definition rtkAudiManagerAdapter.hpp:58
void playSound(size_t id)
Plays a loaded sound, unknown ids are ignored.
Definition rtkAudiManagerAdapter.hpp:48
size_t addSound(const std::string &path)
Loads a sound file.
Definition rtkAudiManagerAdapter.hpp:33