#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:
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_attr(ALenum, int *) const;
+ void get_attr(ALenum, float *) const;
+ SourceState get_state() 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 play();
+ void pause();
+ void stop();
+ void rewind();
};
} // namespace AL