]> git.tdb.fi Git - libs/al.git/blob - source/source.h
Add more methods to Source
[libs/al.git] / source / source.h
1 /* $Id$
2
3 This file is part of libmspal
4 Copyright © 2008 Mikko Rasa, Mikkosoft Productions
5 Diestributed under the LGPL
6 */
7
8 #ifndef MSP_AL_SOURCE_H_
9 #define MSP_AL_SOURCE_H_
10
11 #include <vector>
12 #include <AL/al.h>
13
14 namespace Msp {
15 namespace AL {
16
17 class Buffer;
18
19 enum SourceState
20 {
21         INITIAL = AL_INITIAL,
22         PLAYING = AL_PLAYING,
23         PAUSED  = AL_PAUSED,
24         STOPPED = AL_STOPPED
25 };
26
27 class Source
28 {
29 private:
30         uint id;
31
32 public:
33         Source();
34         ~Source();
35
36         void attribute(ALenum, int);
37         void attribute(ALenum, float);
38         void attribute(ALenum, float, float, float);
39         void attribute(ALenum, const float *);
40         void get_attr(ALenum, int *) const;
41         void get_attr(ALenum, float *) const;
42         SourceState get_state() const;
43         void set_position(float, float, float);
44         void set_looping(bool);
45         void set_buffer(const Buffer &);
46         void queue_buffers(const std::vector<const Buffer *> &);
47         void queue_buffer(const Buffer &);
48         void play();
49         void pause();
50         void stop();
51         void rewind();
52 };
53
54 } // namespace AL
55 } // namespace Msp
56
57 #endif