File indexing completed on 2024-05-12 04:50:59
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_CD_TRACK_READER_H_ 0009 #define _K3B_AUDIO_CD_TRACK_READER_H_ 0010 0011 #include "k3b_export.h" 0012 0013 #include <QIODevice> 0014 #include <QScopedPointer> 0015 0016 namespace K3b { 0017 0018 class AudioCdTrackSource; 0019 0020 class LIBK3B_EXPORT AudioCdTrackReader : public QIODevice 0021 { 0022 public: 0023 explicit AudioCdTrackReader( AudioCdTrackSource& source, QObject* parent = 0 ); 0024 ~AudioCdTrackReader() 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(AudioCdTrackReader) 0040 }; 0041 0042 } // namespace K3b 0043 0044 #endif // _K3B_AUDIO_CD_TRACK_READER_H_