]> git.tdb.fi Git - libs/al.git/blobdiff - source/oggdecoder.h
Fix sound file signature comparisons
[libs/al.git] / source / oggdecoder.h
index a3f5504c4c00bac79a4d46f61ea703c13e6eabc0..e194736a40207a09710fccec8ce37a72d4b512cc 100644 (file)
@@ -1,11 +1,27 @@
 #ifndef MSP_AL_OGGDECODER_H_
 #define MSP_AL_OGGDECODER_H_
 
+#include <stdexcept>
 #include "sounddecoder.h"
 
 namespace Msp {
 namespace AL {
 
+class ogg_error: public std::runtime_error
+{
+public:
+       ogg_error(const std::string &, int);
+       virtual ~ogg_error() throw() { }
+
+private:
+       static std::string get_message(int);
+};
+
+
+/**
+Decoder for Ogg Vorbis files.  Normally you should use one of the
+SoundDecoder::open_* functions to create a decoder.
+*/
 class OggDecoder: public SoundDecoder
 {
 private:
@@ -17,7 +33,9 @@ public:
        OggDecoder(IO::Seekable &);
        ~OggDecoder();
 
-       virtual void rewind();
+       static bool detect(const std::string &);
+
+       virtual void seek(unsigned);
        virtual unsigned read(char *, unsigned);
 };