|
|
|
@ -46,7 +46,7 @@
|
|
|
|
|
#include <tqstringlist.h>
|
|
|
|
|
#include <tqfile.h>
|
|
|
|
|
#include <tqregexp.h>
|
|
|
|
|
#include <tqtextstream.h>
|
|
|
|
|
#include <textstream.h>
|
|
|
|
|
#include <tqcstring.h>
|
|
|
|
|
#include <tqfileinfo.h>
|
|
|
|
|
#include <tqdir.h>
|
|
|
|
@ -313,7 +313,7 @@ void K3bCdCopyJob::slotDiskInfoReady( K3bDevice::DeviceHandler* dh )
|
|
|
|
|
unsigned long avail, size;
|
|
|
|
|
TQString pathToTest = m_tempPath.left( m_tempPath.findRev( '/' ) );
|
|
|
|
|
if( !K3b::kbFreeOnFs( pathToTest, size, avail ) ) {
|
|
|
|
|
emit infoMessage( i18n("Unable to determine free space in temporary directory '%1'.").tqarg(pathToTest), ERROR );
|
|
|
|
|
emit infoMessage( i18n("Unable to determine free space in temporary directory '%1'.").arg(pathToTest), ERROR );
|
|
|
|
|
d->error = true;
|
|
|
|
|
canCopy = false;
|
|
|
|
|
}
|
|
|
|
@ -379,7 +379,7 @@ void K3bCdCopyJob::slotCdTextReady( K3bDevice::DeviceHandler* dh )
|
|
|
|
|
if( dh->success() ) {
|
|
|
|
|
if( K3bDevice::CdText::checkCrc( dh->cdTextRaw() ) ) {
|
|
|
|
|
K3bDevice::CdText cdt( dh->cdTextRaw() );
|
|
|
|
|
emit infoMessage( i18n("Found CD-TEXT (%1 - %2).").tqarg(cdt.performer()).tqarg(cdt.title()), SUCCESS );
|
|
|
|
|
emit infoMessage( i18n("Found CD-TEXT (%1 - %2).").arg(cdt.performer()).arg(cdt.title()), SUCCESS );
|
|
|
|
|
d->haveCdText = true;
|
|
|
|
|
d->cdTextRaw = dh->cdTextRaw();
|
|
|
|
|
}
|
|
|
|
@ -429,7 +429,7 @@ void K3bCdCopyJob::slotCddbQueryFinished( int error )
|
|
|
|
|
d->cddbInfo = d->cddb->result();
|
|
|
|
|
d->haveCddb = true;
|
|
|
|
|
|
|
|
|
|
emit infoMessage( i18n("Found Cddb entry (%1 - %2).").tqarg(d->cddbInfo.cdArtist).tqarg(d->cddbInfo.cdTitle), SUCCESS );
|
|
|
|
|
emit infoMessage( i18n("Found Cddb entry (%1 - %2).").arg(d->cddbInfo.cdArtist).arg(d->cddbInfo.cdTitle), SUCCESS );
|
|
|
|
|
|
|
|
|
|
// save the entry locally
|
|
|
|
|
KConfig* c = k3bcore->config();
|
|
|
|
@ -441,7 +441,7 @@ void K3bCdCopyJob::slotCddbQueryFinished( int error )
|
|
|
|
|
emit infoMessage( i18n("No Cddb entry found."), WARNING );
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
emit infoMessage( i18n("Cddb error (%1).").tqarg(d->cddb->errorString()), ERROR );
|
|
|
|
|
emit infoMessage( i18n("Cddb error (%1).").arg(d->cddb->errorString()), ERROR );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
startCopy();
|
|
|
|
@ -524,24 +524,24 @@ bool K3bCdCopyJob::prepareImageFiles()
|
|
|
|
|
m_tempPath = K3b::findUniqueFilePrefix( "k3bCdCopy", m_tempPath );
|
|
|
|
|
kdDebug() << "(K3bCdCopyJob) creating temp dir: " << m_tempPath << endl;
|
|
|
|
|
if( !dir.mkdir( m_tempPath, true ) ) {
|
|
|
|
|
emit infoMessage( i18n("Unable to create temporary directory '%1'.").tqarg(m_tempPath), ERROR );
|
|
|
|
|
emit infoMessage( i18n("Unable to create temporary directory '%1'.").arg(m_tempPath), ERROR );
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
d->deleteTempDir = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_tempPath = K3b::prepareDir( m_tempPath );
|
|
|
|
|
emit infoMessage( i18n("Using temporary directory %1.").tqarg(m_tempPath), INFO );
|
|
|
|
|
emit infoMessage( i18n("Using temporary directory %1.").arg(m_tempPath), INFO );
|
|
|
|
|
|
|
|
|
|
// create temp filenames
|
|
|
|
|
int i = 1;
|
|
|
|
|
for( K3bDevice::Toc::const_iterator it = d->toc.begin(); it != d->toc.end(); ++it ) {
|
|
|
|
|
if( (*it).type() == K3bDevice::Track::AUDIO ) {
|
|
|
|
|
d->imageNames.append( m_tempPath + TQString("Track%1.wav").tqarg(TQString::number(i).rightJustify(2, '0')) );
|
|
|
|
|
d->infNames.append( m_tempPath + TQString("Track%1.inf").tqarg(TQString::number(i).rightJustify(2, '0')) );
|
|
|
|
|
d->imageNames.append( m_tempPath + TQString("Track%1.wav").arg(TQString::number(i).rightJustify(2, '0')) );
|
|
|
|
|
d->infNames.append( m_tempPath + TQString("Track%1.inf").arg(TQString::number(i).rightJustify(2, '0')) );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
d->imageNames.append( m_tempPath + TQString("Track%1.iso").tqarg(TQString::number(i).rightJustify(2, '0')) );
|
|
|
|
|
d->imageNames.append( m_tempPath + TQString("Track%1.iso").arg(TQString::number(i).rightJustify(2, '0')) );
|
|
|
|
|
++i;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -554,7 +554,7 @@ bool K3bCdCopyJob::prepareImageFiles()
|
|
|
|
|
else {
|
|
|
|
|
// we only need a single image file
|
|
|
|
|
if( !fi.isFile() ||
|
|
|
|
|
questionYesNo( i18n("Do you want to overwrite %1?").tqarg(m_tempPath),
|
|
|
|
|
questionYesNo( i18n("Do you want to overwrite %1?").arg(m_tempPath),
|
|
|
|
|
i18n("File Exists") ) ) {
|
|
|
|
|
if( fi.isDir() )
|
|
|
|
|
m_tempPath = K3b::findTempFile( "iso", m_tempPath );
|
|
|
|
@ -564,7 +564,7 @@ bool K3bCdCopyJob::prepareImageFiles()
|
|
|
|
|
}
|
|
|
|
|
// else the user specified a file in an existing dir
|
|
|
|
|
|
|
|
|
|
emit infoMessage( i18n("Writing image file to %1.").tqarg(m_tempPath), INFO );
|
|
|
|
|
emit infoMessage( i18n("Writing image file to %1.").arg(m_tempPath), INFO );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
return false;
|
|
|
|
@ -580,12 +580,12 @@ void K3bCdCopyJob::readNextSession()
|
|
|
|
|
{
|
|
|
|
|
if( !m_onTheFly || m_onlyCreateImages ) {
|
|
|
|
|
if( d->numSessions > 1 )
|
|
|
|
|
emit newTask( i18n("Reading Session %1").tqarg(d->currentReadSession) );
|
|
|
|
|
emit newTask( i18n("Reading Session %1").arg(d->currentReadSession) );
|
|
|
|
|
else
|
|
|
|
|
emit newTask( i18n("Reading Source Medium") );
|
|
|
|
|
|
|
|
|
|
if( d->currentReadSession == 1 )
|
|
|
|
|
emit newSubTask( i18n("Reading track %1 of %2").tqarg(1).tqarg(d->toc.count()) );
|
|
|
|
|
emit newSubTask( i18n("Reading track %1 of %2").arg(1).arg(d->toc.count()) );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// there is only one situation where we need the audiosessionreader:
|
|
|
|
@ -677,17 +677,17 @@ bool K3bCdCopyJob::writeNextSession()
|
|
|
|
|
// we emit our own task since the cdrecord task is way too simple
|
|
|
|
|
if( d->numSessions > 1 ) {
|
|
|
|
|
if( m_simulate )
|
|
|
|
|
emit newTask( i18n("Simulating Session %1").tqarg(d->currentWrittenSession) );
|
|
|
|
|
emit newTask( i18n("Simulating Session %1").arg(d->currentWrittenSession) );
|
|
|
|
|
else if( m_copies > 1 )
|
|
|
|
|
emit newTask( i18n("Writing Copy %1 (Session %2)").tqarg(d->doneCopies+1).tqarg(d->currentWrittenSession) );
|
|
|
|
|
emit newTask( i18n("Writing Copy %1 (Session %2)").arg(d->doneCopies+1).arg(d->currentWrittenSession) );
|
|
|
|
|
else
|
|
|
|
|
emit newTask( i18n("Writing Copy (Session %2)").tqarg(d->currentWrittenSession) );
|
|
|
|
|
emit newTask( i18n("Writing Copy (Session %2)").arg(d->currentWrittenSession) );
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if( m_simulate )
|
|
|
|
|
emit newTask( i18n("Simulating") );
|
|
|
|
|
else if( m_copies > 1 )
|
|
|
|
|
emit newTask( i18n("Writing Copy %1").tqarg(d->doneCopies+1) );
|
|
|
|
|
emit newTask( i18n("Writing Copy %1").arg(d->doneCopies+1) );
|
|
|
|
|
else
|
|
|
|
|
emit newTask( i18n("Writing Copy") );
|
|
|
|
|
}
|
|
|
|
@ -713,7 +713,7 @@ bool K3bCdCopyJob::writeNextSession()
|
|
|
|
|
connect( d->cdrecordWriter, TQT_SIGNAL(subPercent(int)), this, TQT_SIGNAL(subPercent(int)) );
|
|
|
|
|
connect( d->cdrecordWriter, TQT_SIGNAL(processedSubSize(int, int)), this, TQT_SIGNAL(processedSubSize(int, int)) );
|
|
|
|
|
connect( d->cdrecordWriter, TQT_SIGNAL(nextTrack(int, int)), this, TQT_SLOT(slotWritingNextTrack(int, int)) );
|
|
|
|
|
connect( d->cdrecordWriter, TQT_SIGNAL(buffer(int)), this, TQT_SIGNAL(buffertqStatus(int)) );
|
|
|
|
|
connect( d->cdrecordWriter, TQT_SIGNAL(buffer(int)), this, TQT_SIGNAL(bufferStatus(int)) );
|
|
|
|
|
connect( d->cdrecordWriter, TQT_SIGNAL(deviceBuffer(int)), this, TQT_SIGNAL(deviceBuffer(int)) );
|
|
|
|
|
connect( d->cdrecordWriter, TQT_SIGNAL(writeSpeed(int, int)), this, TQT_SIGNAL(writeSpeed(int, int)) );
|
|
|
|
|
connect( d->cdrecordWriter, TQT_SIGNAL(finished(bool)), this, TQT_SLOT(slotWriterFinished(bool)) );
|
|
|
|
@ -923,7 +923,7 @@ bool K3bCdCopyJob::writeNextSession()
|
|
|
|
|
trackLen = trackLen * 2056; // see k3bdatatrackreader.h
|
|
|
|
|
else
|
|
|
|
|
trackLen = trackLen * 2332; // see k3bdatatrackreader.h
|
|
|
|
|
d->cdrecordWriter->addArgument( TQString("-tsize=%1").tqarg(trackLen) )->addArgument("-");
|
|
|
|
|
d->cdrecordWriter->addArgument( TQString("-tsize=%1").arg(trackLen) )->addArgument("-");
|
|
|
|
|
}
|
|
|
|
|
else if( d->toc.contentType() == K3bDevice::MIXED )
|
|
|
|
|
d->cdrecordWriter->addArgument( d->imageNames[d->toc.count()-1] );
|
|
|
|
@ -953,7 +953,7 @@ void K3bCdCopyJob::slotSessionReaderFinished( bool success )
|
|
|
|
|
|
|
|
|
|
if( success ) {
|
|
|
|
|
if( d->numSessions > 1 )
|
|
|
|
|
emit infoMessage( i18n("Successfully read session %1.").tqarg(d->currentReadSession), SUCCESS );
|
|
|
|
|
emit infoMessage( i18n("Successfully read session %1.").arg(d->currentReadSession), SUCCESS );
|
|
|
|
|
else
|
|
|
|
|
emit infoMessage( i18n("Successfully read source disk."), SUCCESS );
|
|
|
|
|
|
|
|
|
@ -987,7 +987,7 @@ void K3bCdCopyJob::slotSessionReaderFinished( bool success )
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if( !d->canceled ) {
|
|
|
|
|
emit infoMessage( i18n("Error while reading session %1.").tqarg(d->currentReadSession), ERROR );
|
|
|
|
|
emit infoMessage( i18n("Error while reading session %1.").arg(d->currentReadSession), ERROR );
|
|
|
|
|
if( m_onTheFly )
|
|
|
|
|
d->cdrecordWriter->setSourceUnreadable(true);
|
|
|
|
|
}
|
|
|
|
@ -1137,14 +1137,14 @@ void K3bCdCopyJob::slotWritingNextTrack( int t, int tt )
|
|
|
|
|
{
|
|
|
|
|
if( d->toc.contentType() == K3bDevice::MIXED ) {
|
|
|
|
|
if( d->currentWrittenSession == 1 )
|
|
|
|
|
emit newSubTask( i18n("Writing track %1 of %2").tqarg(t).tqarg(d->toc.count()) );
|
|
|
|
|
emit newSubTask( i18n("Writing track %1 of %2").arg(t).arg(d->toc.count()) );
|
|
|
|
|
else
|
|
|
|
|
emit newSubTask( i18n("Writing track %1 of %2").tqarg(d->toc.count()).tqarg(d->toc.count()) );
|
|
|
|
|
emit newSubTask( i18n("Writing track %1 of %2").arg(d->toc.count()).arg(d->toc.count()) );
|
|
|
|
|
}
|
|
|
|
|
else if( d->numSessions > 1 )
|
|
|
|
|
emit newSubTask( i18n("Writing track %1 of %2").tqarg(d->currentWrittenSession).tqarg(d->toc.count()) );
|
|
|
|
|
emit newSubTask( i18n("Writing track %1 of %2").arg(d->currentWrittenSession).arg(d->toc.count()) );
|
|
|
|
|
else
|
|
|
|
|
emit newSubTask( i18n("Writing track %1 of %2").tqarg(t).tqarg(tt) );
|
|
|
|
|
emit newSubTask( i18n("Writing track %1 of %2").arg(t).arg(tt) );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1159,7 +1159,7 @@ void K3bCdCopyJob::slotReadingNextTrack( int t, int )
|
|
|
|
|
else
|
|
|
|
|
track = d->currentReadSession;
|
|
|
|
|
|
|
|
|
|
emit newSubTask( i18n("Reading track %1 of %2").tqarg(track).tqarg(d->toc.count()) );
|
|
|
|
|
emit newSubTask( i18n("Reading track %1 of %2").arg(track).arg(d->toc.count()) );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|