X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsound.h;h=1bc043bfe5c127a89d9ab636d3a4ac5c72ff4ec6;hb=2ff6e1cc7fcae3099b127a886360d7919a4b3efa;hp=e903bcb395acf185df355f444793557a4c590b2f;hpb=8e69eba7dc53233c169152bdf654f032fcd0629f;p=libs%2Fal.git diff --git a/source/sound.h b/source/sound.h index e903bcb..1bc043b 100644 --- a/source/sound.h +++ b/source/sound.h @@ -8,12 +8,17 @@ Distributed under the LGPL #ifndef MSP_AL_SOUND_H_ #define MSP_AL_SOUND_H_ +#include #include #include "format.h" namespace Msp { namespace AL { +/** +This class facilitates loading sound files. Currently only Ogg Vorbis is +supported. +*/ class Sound { private: @@ -22,19 +27,29 @@ private: unsigned size; char *data; Format format; + unsigned read_pos; + bool eof_flag; public: Sound(); ~Sound(); - void open(const std::string &); + void open_file(const std::string &); + void open_memory(const void *, unsigned); void load_data(); - void load(const std::string &); + void load_file(const std::string &); + void load_memory(const void *, unsigned); + void close(); + void rewind(); + unsigned read(char *, unsigned); + bool eof() const { return eof_flag; } + Format get_format() const { return format; } unsigned get_frequency() const { return freq; } unsigned get_size() const { return size; } const char *get_data() const; - unsigned read(char *, unsigned); +private: + void open_common(); }; } // namespace AL