]> git.tdb.fi Git - libs/al.git/blobdiff - source/source.h
Add Streamer class
[libs/al.git] / source / source.h
index 234dcb832f4a2d8e9b4ca0bf66af3e87ea3bbf37..090de0ff36b12e30666fdff8f55c2bd821122046 100644 (file)
@@ -2,7 +2,7 @@
 
 This file is part of libmspal
 Copyright © 2008 Mikko Rasa, Mikkosoft Productions
-Diestributed under the LGPL
+Distributed under the LGPL
 */
 
 #ifndef MSP_AL_SOURCE_H_
@@ -10,12 +10,21 @@ Diestributed under the LGPL
 
 #include <vector>
 #include <AL/al.h>
+#include "types.h"
 
 namespace Msp {
 namespace AL {
 
 class Buffer;
 
+enum SourceState
+{
+       INITIAL = AL_INITIAL,
+       PLAYING = AL_PLAYING,
+       PAUSED  = AL_PAUSED,
+       STOPPED = AL_STOPPED
+};
+
 class Source
 {
 private:
@@ -29,9 +38,23 @@ public:
        void attribute(ALenum, float);
        void attribute(ALenum, float, float, float);
        void attribute(ALenum, const float *);
-       void set_buffer(Buffer &);
-       void queue_buffers(const std::vector<Buffer *> &);
-       void queue_buffer(Buffer &);
+       void get_attribute(ALenum, int *) const;
+       void get_attribute(ALenum, float *) const;
+       SourceState get_state() const;
+       unsigned get_buffers_queued() const;
+       unsigned get_buffers_processed() const;
+       void set_position(float, float, float);
+       void set_looping(bool);
+       void set_buffer(const Buffer &);
+       void queue_buffers(const std::vector<const Buffer *> &);
+       void queue_buffer(const Buffer &);
+       void unqueue_buffers(const std::vector<const Buffer *> &);
+       void unqueue_buffer(const Buffer &);
+       void clear_buffers();
+       void play();
+       void pause();
+       void stop();
+       void rewind();
 };
 
 } // namespace AL