File indexing completed on 2024-05-05 04:51:14
0001 /* 0002 0003 SPDX-FileCopyrightText: 2004-2009 Sebastian Trueg <trueg@k3b.org> 0004 SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #ifndef _K3B_TOC_FILE_WRITER_H_ 0010 #define _K3B_TOC_FILE_WRITER_H_ 0011 0012 #include "k3btoc.h" 0013 #include "k3bcdtext.h" 0014 0015 #include <QStringList> 0016 #include <QTextStream> 0017 0018 namespace K3b { 0019 namespace Device { 0020 class TrackCdText; 0021 } 0022 0023 class TocFileWriter 0024 { 0025 public: 0026 TocFileWriter(); 0027 0028 bool save( QTextStream& ); 0029 bool save( const QString& filename ); 0030 0031 void setData( const Device::Toc& toc ) { m_toc = toc; } 0032 void setCdText( const Device::CdText& text ) { m_cdText = text; } 0033 void setFilenames( const QStringList& names ) { m_filenames = names; } 0034 void setHideFirstTrack( bool b ) { m_hideFirstTrack = b; } 0035 0036 /** 0037 * The default is 1. 0038 */ 0039 void setSession( int s ) { m_sessionToWrite = s; } 0040 0041 private: 0042 void writeHeader( QTextStream& t ); 0043 void writeGlobalCdText( QTextStream& t ); 0044 void writeTrackCdText( const Device::TrackCdText& track, QTextStream& t ); 0045 void writeTrack( int index, const Msf& offset, QTextStream& t ); 0046 void writeDataSource( int trackNumber, QTextStream& t ); 0047 bool readFromStdin() const; 0048 0049 Device::Toc m_toc; 0050 Device::CdText m_cdText; 0051 QStringList m_filenames; 0052 bool m_hideFirstTrack; 0053 int m_sessionToWrite; 0054 }; 0055 } 0056 0057 #endif