]> git.tdb.fi Git - libs/al.git/blobdiff - source/sounddecoder.cpp
Seek back to beginning after reading signature
[libs/al.git] / source / sounddecoder.cpp
index a2cd51af4624154cca52312157cfb18f31a9b21e..e0a56d3a4fc1513d21e6b99eada7f26c262903db 100644 (file)
@@ -1,6 +1,7 @@
 #include <msp/core/refptr.h>
 #include <msp/io/file.h>
 #include <msp/strings/format.h>
+#include "mp3decoder.h"
 #include "oggdecoder.h"
 #include "sounddecoder.h"
 
@@ -39,9 +40,12 @@ SoundDecoder *SoundDecoder::open_io(IO::Seekable &io)
 {
        char sig_buf[8];
        io.read(sig_buf, sizeof(sig_buf));
+       io.seek(0, IO::S_BEG);
        string signature(sig_buf, sizeof(sig_buf));
        if(OggDecoder::detect(signature))
                return new OggDecoder(io);
+       else if(Mp3Decoder::detect(signature))
+               return new Mp3Decoder(io);
        else
        {
                string sig_hex;