]> git.tdb.fi Git - libs/al.git/blobdiff - source/listener.h
Make Listener a singleton instead of all-static
[libs/al.git] / source / listener.h
index 63f6ccf25e10fe9b50e195dd4536dc0db5f739ac..98e16388236c01e3e5a43138e465b8e0fe150b94 100644 (file)
@@ -7,19 +7,20 @@ 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:
-       Listener();
+       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 attribute(ALenum, float);
+       void attribute(ALenum, float, float, float);
+       void attribute(ALenum, const float *);
+       void set_position(float, float, float);
+       void set_gain(float);
 };
 
 } // namespace AL