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