diff --git a/src/ChargeAudio.hpp b/src/ChargeAudio.hpp index 418d2e2..1cd5938 100644 --- a/src/ChargeAudio.hpp +++ b/src/ChargeAudio.hpp @@ -40,6 +40,8 @@ class Listener { public: void SetEnabled(bool isEnabled); bool GetEnabled(); + void SetDirection(Magnum::Vector3 position); + Magnum::Vector3 GetDirection(); void SetPosition(Magnum::Vector3 position); Magnum::Vector3 GetPosition(); diff --git a/src/Listener.cpp b/src/Listener.cpp index 56c78d7..5ba991c 100644 --- a/src/Listener.cpp +++ b/src/Listener.cpp @@ -1,4 +1,5 @@ #include "ChargeAudio.hpp" +#include #include using namespace ChargeAudio; @@ -13,6 +14,18 @@ void Listener::SetEnabled(bool isEnabled) { bool Listener::GetEnabled() { return ma_engine_listener_is_enabled(&baseEngine->maEngine, listenerID); } + +void Listener::SetDirection(Magnum::Vector3 position) { + ma_engine_listener_set_direction(&baseEngine->maEngine, listenerID, + position.x(), position.y(), position.z()); +} + +Magnum::Vector3 Listener::GetDirection() { + ma_vec3f dir = + ma_engine_listener_get_direction(&baseEngine->maEngine, listenerID); + return Magnum::Vector3{dir.x, dir.y, dir.z}; +} + void Listener::SetPosition(Magnum::Vector3 position) { ma_engine_listener_set_position(&baseEngine->maEngine, listenerID, position.x(), position.y(), position.z());