]> git.localhorst.tv Git - blank.git/blob - src/audio/Audio.hpp
some experiments with sound
[blank.git] / src / audio / Audio.hpp
1 #ifndef BLANK_AUDIO_AUDIO_HPP_
2 #define BLANK_AUDIO_AUDIO_HPP_
3
4 #include <al.h>
5 #include <glm/glm.hpp>
6
7
8 namespace blank {
9
10 class Sound;
11
12 class Audio {
13
14 public:
15         Audio();
16         ~Audio();
17
18         Audio(const Audio &) = delete;
19         Audio &operator =(const Audio &) = delete;
20
21 public:
22         void Position(const glm::vec3 &) noexcept;
23         void Velocity(const glm::vec3 &) noexcept;
24         void Orientation(const glm::vec3 &dir, const glm::vec3 &up) noexcept;
25
26         void Play(
27                 const Sound &,
28                 const glm::vec3 &pos = glm::vec3(0.0f),
29                 const glm::vec3 &vel = glm::vec3(0.0f),
30                 const glm::vec3 &dir = glm::vec3(0.0f)
31         ) noexcept;
32
33         void StopAll() noexcept;
34
35 private:
36         static constexpr std::size_t NUM_SRC = 1;
37         ALuint source[NUM_SRC];
38
39 };
40
41 }
42
43 #endif