File indexing completed on 2024-05-12 04:51:01

0001 /*
0002     SPDX-FileCopyrightText: 2010 Michal Malek <michalm@jabster.pl>
0003     SPDX-FileCopyrightText: 1998-2010 Sebastian Trueg <trueg@k3b.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef _K3B_AUDIO_FILE_READER_H_
0009 #define _K3B_AUDIO_FILE_READER_H_
0010 
0011 #include "k3b_export.h"
0012 
0013 #include <QIODevice>
0014 #include <QScopedPointer>
0015 
0016 namespace K3b {
0017 
0018     class AudioFile;
0019 
0020     class LIBK3B_EXPORT AudioFileReader : public QIODevice
0021     {
0022     public:
0023         explicit AudioFileReader( AudioFile& source, QObject* parent = 0 );
0024         ~AudioFileReader() override;
0025 
0026         bool open( OpenMode mode ) override;
0027         void close() override;
0028         bool isSequential() const override;
0029         qint64 size() const override;
0030         bool seek( qint64 pos ) override;
0031 
0032     protected:
0033         qint64 writeData( const char* data, qint64 len ) override;
0034         qint64 readData( char* data, qint64 maxlen ) override;
0035 
0036     private:
0037         class Private;
0038         QScopedPointer<Private> d;
0039         Q_DISABLE_COPY(AudioFileReader)
0040     };
0041 
0042 } // namespace K3b
0043 
0044 #endif // _K3B_AUDIO_FILE_READER_H_