]> git.tdb.fi Git - libs/al.git/blobdiff - source/sounddecoder.h
Improve documentation of SoundDecoder
[libs/al.git] / source / sounddecoder.h
index 37fddac2ee34c8881163c30a875d451c7429d473..20b9d0fb7f4e3d6afa4bd2d9a3dc8806e5477c5e 100644 (file)
@@ -17,8 +17,7 @@ public:
 
 
 /**
-This class facilitates loading sound files.  Currently only Ogg Vorbis is
-supported.
+Base class for sound decoders.
 */
 class SoundDecoder
 {
@@ -34,16 +33,29 @@ protected:
 public:
        virtual ~SoundDecoder();
 
+       /** Opens a file and creates a decoder of an appropriate type for it. */
        static SoundDecoder *open_file(const std::string &);
+
+       /** Creates a decoder for an already-opened audio file. */
        static SoundDecoder *open_io(IO::Seekable &);
 
+       /** Restarts decoding from the beginning of the file. */
        virtual void rewind() { seek(0); }
+
+       /** Sets decoding position expressed in PCM bytes.  This may involve seeking
+       to the beginning and skipping until the desired position is reached.*/
        virtual void seek(unsigned) = 0;
+
+       /** Reads decoded sound data.  Length is specified in bytes. */
        virtual unsigned read(char *, unsigned) = 0;
+
        bool eof() const { return eof_flag; }
 
        Format get_format() const { return format; }
        unsigned get_frequency() const { return freq; }
+
+       /** Returns the total length of the sound data in bytes.  Some decoders may
+       not be able to provide this information. */
        unsigned get_size() const { return size; }
 };