X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flistener.h;h=0876815ce6ecaec3b8e52bac158786a6bf63a4b3;hb=2964e0cbc2fd4d6b838cc5f0598db1318fb4c529;hp=63f6ccf25e10fe9b50e195dd4536dc0db5f739ac;hpb=14008b157c64752ba7c1cef831124992c35c4646;p=libs%2Fal.git diff --git a/source/listener.h b/source/listener.h index 63f6ccf..0876815 100644 --- a/source/listener.h +++ b/source/listener.h @@ -7,19 +7,22 @@ namespace Msp { namespace AL { /** -Represents the listener in the 3D environment. There is only one listener in -OpenAL - this class is not instantiable and all of its functions are static. +Represents the listener in the 3D environment. This class is a singleton. */ class Listener { private: + float orientation[6]; + Listener(); public: - static void attribute(ALenum, float); - static void attribute(ALenum, float, float, float); - static void attribute(ALenum, const float *); - static void set_position(float, float, float); - static void set_gain(float); + static Listener &instance(); + + void set_position(float, float, float); + void set_forward_direction(float, float, float); + void set_up_direction(float, float, float); + void set_velocity(float, float, float); + void set_gain(float); }; } // namespace AL