File indexing completed on 2024-05-12 04:51:01
0001 /* 0002 SPDX-FileCopyrightText: 1998-2007 Sebastian Trueg <trueg@k3b.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "k3baudiojobtempdata.h" 0007 #include "k3baudiodoc.h" 0008 #include "k3baudiotrack.h" 0009 #include "k3bglobals.h" 0010 #include "k3bversion.h" 0011 #include "k3bmsf.h" 0012 #include "k3bcore.h" 0013 0014 #include <QDebug> 0015 #include <QFile> 0016 0017 0018 class K3b::AudioJobTempData::Private 0019 { 0020 public: 0021 Private( K3b::AudioDoc* _doc ) 0022 : doc(_doc) { 0023 } 0024 0025 QVector<QString> bufferFiles; 0026 QVector<QString> infFiles; 0027 QString tocFile; 0028 0029 K3b::AudioDoc* doc; 0030 }; 0031 0032 0033 K3b::AudioJobTempData::AudioJobTempData( K3b::AudioDoc* doc, QObject* parent ) 0034 : QObject( parent ) 0035 { 0036 d = new Private( doc ); 0037 } 0038 0039 0040 K3b::AudioJobTempData::~AudioJobTempData() 0041 { 0042 delete d; 0043 } 0044 0045 0046 QString K3b::AudioJobTempData::bufferFileName( int track ) 0047 { 0048 if( (int)d->bufferFiles.count() < track ) 0049 prepareTempFileNames(); 0050 return d->bufferFiles.at(track-1); 0051 } 0052 0053 QString K3b::AudioJobTempData::bufferFileName( K3b::AudioTrack* track ) 0054 { 0055 return bufferFileName( track->trackNumber() ); 0056 } 0057 0058 0059 QString K3b::AudioJobTempData::tocFileName() 0060 { 0061 if( d->tocFile.isEmpty() ) 0062 prepareTempFileNames(); 0063 return d->tocFile; 0064 } 0065 0066 0067 QString K3b::AudioJobTempData::infFileName( int track ) 0068 { 0069 if( (int)d->infFiles.count() < track ) 0070 prepareTempFileNames(); 0071 return d->infFiles.at( track - 1 ); 0072 } 0073 0074 QString K3b::AudioJobTempData::infFileName( K3b::AudioTrack* track ) 0075 { 0076 return infFileName( track->trackNumber() ); 0077 } 0078 0079 0080 K3b::AudioDoc* K3b::AudioJobTempData::doc() const 0081 { 0082 return d->doc; 0083 } 0084 0085 0086 void K3b::AudioJobTempData::prepareTempFileNames( const QString& path ) 0087 { 0088 d->bufferFiles.clear(); 0089 d->infFiles.clear(); 0090 0091 QString prefix = K3b::findUniqueFilePrefix( "k3b_audio_", path ) + '_'; 0092 0093 for( int i = 0; i < d->doc->numOfTracks(); i++ ) { 0094 d->bufferFiles.append( prefix + QString::number( i+1 ).rightJustified( 2, '0' ) + ".wav" ); 0095 d->infFiles.append( prefix + QString::number( i+1 ).rightJustified( 2, '0' ) + ".inf" ); 0096 } 0097 0098 d->tocFile = prefix + ".toc"; 0099 } 0100 0101 0102 void K3b::AudioJobTempData::cleanup() 0103 { 0104 for( int i = 0; i < d->infFiles.count(); ++i ) { 0105 if( QFile::exists( d->infFiles[i] ) ) 0106 QFile::remove( d->infFiles[i] ); 0107 } 0108 0109 for( int i = 0; i < d->bufferFiles.count(); ++i ) { 0110 if( QFile::exists( d->bufferFiles[i] ) ) 0111 QFile::remove( d->bufferFiles[i] ); 0112 } 0113 0114 if( QFile::exists( d->tocFile ) ) 0115 QFile::remove( d->tocFile ); 0116 } 0117 0118 #include "moc_k3baudiojobtempdata.cpp"