| Chris@148 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */ | 
| Chris@148 | 2 | 
| Chris@148 | 3 /* | 
| Chris@148 | 4     Sonic Visualiser | 
| Chris@148 | 5     An audio file viewer and annotation editor. | 
| Chris@148 | 6     Centre for Digital Music, Queen Mary, University of London. | 
| Chris@148 | 7     This file copyright 2006 Chris Cannam. | 
| Chris@148 | 8 | 
| Chris@148 | 9     This program is free software; you can redistribute it and/or | 
| Chris@148 | 10     modify it under the terms of the GNU General Public License as | 
| Chris@148 | 11     published by the Free Software Foundation; either version 2 of the | 
| Chris@148 | 12     License, or (at your option) any later version.  See the file | 
| Chris@148 | 13     COPYING included with this distribution for more information. | 
| Chris@148 | 14 */ | 
| Chris@148 | 15 | 
| Chris@148 | 16 #ifndef _OGG_VORBIS_FILE_READER_H_ | 
| Chris@148 | 17 #define _OGG_VORBIS_FILE_READER_H_ | 
| Chris@148 | 18 | 
| Chris@148 | 19 #ifdef HAVE_OGGZ | 
| Chris@148 | 20 #ifdef HAVE_FISHSOUND | 
| Chris@148 | 21 | 
| Chris@148 | 22 #include "CodedAudioFileReader.h" | 
| Chris@148 | 23 | 
| Chris@148 | 24 #include <oggz/oggz.h> | 
| Chris@148 | 25 #include <fishsound/fishsound.h> | 
| Chris@148 | 26 | 
| Chris@157 | 27 #include <set> | 
| Chris@157 | 28 | 
| Chris@148 | 29 class QProgressDialog; | 
| Chris@148 | 30 | 
| Chris@148 | 31 class OggVorbisFileReader : public CodedAudioFileReader | 
| Chris@148 | 32 { | 
| Chris@148 | 33 public: | 
| Chris@148 | 34     OggVorbisFileReader(QString path, bool showProgress, CacheMode cacheMode); | 
| Chris@148 | 35     virtual ~OggVorbisFileReader(); | 
| Chris@148 | 36 | 
| Chris@148 | 37     virtual QString getError() const { return m_error; } | 
| Chris@148 | 38 | 
| Chris@157 | 39     static void getSupportedExtensions(std::set<QString> &extensions); | 
| Chris@157 | 40 | 
| Chris@148 | 41 protected: | 
| Chris@148 | 42     QString m_path; | 
| Chris@148 | 43     QString m_error; | 
| Chris@148 | 44 | 
| Chris@148 | 45     FishSound *m_fishSound; | 
| Chris@148 | 46     QProgressDialog *m_progress; | 
| Chris@148 | 47     size_t m_fileSize; | 
| Chris@148 | 48     size_t m_bytesRead; | 
| Chris@148 | 49     bool m_cancelled; | 
| Chris@148 | 50 | 
| Chris@148 | 51     static int readPacket(OGGZ *, ogg_packet *, long, void *); | 
| Chris@148 | 52     static int acceptFrames(FishSound *, float **, long, void *); | 
| Chris@148 | 53 }; | 
| Chris@148 | 54 | 
| Chris@148 | 55 #endif | 
| Chris@148 | 56 #endif | 
| Chris@148 | 57 | 
| Chris@148 | 58 #endif |