]> git.tdb.fi Git - libs/al.git/blob - source/buffer.h
Plug a memory leak in Mp3Decoder
[libs/al.git] / source / buffer.h
1 #ifndef MSP_AL_BUFFER_H_
2 #define MSP_AL_BUFFER_H_
3
4 #include <string>
5 #include <msp/datafile/loader.h>
6 #include "al.h"
7 #include "format.h"
8 #include "types.h"
9
10 namespace Msp {
11 namespace AL {
12
13 class Waveform;
14
15 /**
16 Buffers are used to store audio data and feed it into a Source.
17 */
18 class Buffer
19 {
20 public:
21         class Loader: public DataFile::Loader
22         {
23         private:
24                 Buffer &buf;
25
26         public:
27                 Loader(Buffer &);
28         private:
29                 void sound_data(const std::string &);
30         };
31
32 private:
33         uint id;
34
35 public:
36         Buffer();
37         ~Buffer();
38
39         uint get_id() const { return id; }
40         void data(Format, const void *, sizei, sizei);
41         void data(const Waveform &);
42         void load_data(const std::string &);
43 };
44
45 } // namespace AL
46 } // namespace Msp
47
48 #endif