X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsound.h;h=60bdf456319d4cf3298d74176c879aa62adb13fe;hb=17948408eafd48ea529acd0a70cc45fc5973cb10;hp=e903bcb395acf185df355f444793557a4c590b2f;hpb=8e69eba7dc53233c169152bdf654f032fcd0629f;p=libs%2Fal.git diff --git a/source/sound.h b/source/sound.h index e903bcb..60bdf45 100644 --- a/source/sound.h +++ b/source/sound.h @@ -1,19 +1,17 @@ -/* $Id$ - -This file is part of libmspal -Copyright © 2008 Mikko Rasa, Mikkosoft Productions -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 +20,30 @@ 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); +private: + void open_common(); +public: 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); }; } // namespace AL