X-Git-Url: http://git.tdb.fi/?p=libs%2Fal.git;a=blobdiff_plain;f=source%2Flistener.h;h=ae222ae7bf7e5233ab8a06140dbe3a1f398807a1;hp=63f6ccf25e10fe9b50e195dd4536dc0db5f739ac;hb=635bc62fa1795f910b7e95aed6592856e17118d8;hpb=14008b157c64752ba7c1cef831124992c35c4646 diff --git a/source/listener.h b/source/listener.h index 63f6ccf..ae222ae 100644 --- a/source/listener.h +++ b/source/listener.h @@ -1,25 +1,28 @@ -#ifndef MSP_AL_LIStENER_H_ +#ifndef MSP_AL_LISTENER_H_ #define MSP_AL_LISTENER_H_ -#include +#include "al.h" 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