X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Faudio%2FAudio.hpp;fp=src%2Faudio%2FAudio.hpp;h=fe5364db45c787285ef53a8be42a2eeffa2a4c1d;hb=7c2a8b8285278b8a3077b311d82f05ea0463a96e;hp=0000000000000000000000000000000000000000;hpb=0e3f96ecb9ade07a7b831078fee025aff44d44d4;p=blank.git diff --git a/src/audio/Audio.hpp b/src/audio/Audio.hpp new file mode 100644 index 0000000..fe5364d --- /dev/null +++ b/src/audio/Audio.hpp @@ -0,0 +1,43 @@ +#ifndef BLANK_AUDIO_AUDIO_HPP_ +#define BLANK_AUDIO_AUDIO_HPP_ + +#include +#include + + +namespace blank { + +class Sound; + +class Audio { + +public: + Audio(); + ~Audio(); + + Audio(const Audio &) = delete; + Audio &operator =(const Audio &) = delete; + +public: + void Position(const glm::vec3 &) noexcept; + void Velocity(const glm::vec3 &) noexcept; + void Orientation(const glm::vec3 &dir, const glm::vec3 &up) noexcept; + + void Play( + const Sound &, + const glm::vec3 &pos = glm::vec3(0.0f), + const glm::vec3 &vel = glm::vec3(0.0f), + const glm::vec3 &dir = glm::vec3(0.0f) + ) noexcept; + + void StopAll() noexcept; + +private: + static constexpr std::size_t NUM_SRC = 1; + ALuint source[NUM_SRC]; + +}; + +} + +#endif