MOS
source.hpp
1 #pragma once
2 
3 #include <atomic>
4 #include <glm/vec3.hpp>
5 
6 namespace mos::aud {
7 
9 class Source final {
10 public:
11  Source(const glm::vec3 &position = glm::vec3(0.0f),
12  const glm::vec3 &velocity = glm::vec3(0.0f), float pitch = 1.0f,
13  float gain = 1.0f, bool loop = false, bool playing = false,
14  float obstructed = 0.0f);
15 
17  auto id() const -> unsigned int;
18 
20  glm::vec3 position{glm::vec3(0.0f)};
21 
23  glm::vec3 velocity{glm::vec3(0.0f)};
24 
26  float pitch{1.0f};
27 
29  float gain{1.0f};
30 
32  bool loop{false};
33 
35  bool playing{false};
36 
38  float obstructed{0.0f};
39 
40 private:
41  static std::atomic_uint current_id_;
42  unsigned int id_;
43 };
44 } // namespace mos::aud
glm::vec3 velocity
Velocity.
Definition: source.hpp:23
bool playing
The source is playing.
Definition: source.hpp:35
bool loop
The source is looping.
Definition: source.hpp:32
glm::vec3 position
Position.
Definition: source.hpp:20
Base class for the audio source.
Definition: source.hpp:9
float gain
Volume.
Definition: source.hpp:29
auto id() const -> unsigned int
Unique id.
float obstructed
How much the source is obstructed.
Definition: source.hpp:38
float pitch
Pitch.
Definition: source.hpp:26
Definition: filter.hpp:13