--- k3b-0.11.20/src/cdcopy/k3bcdcopyjob.cpp.dao 2005-02-04 09:46:38.000000000 +0100
+++ k3b-0.11.20/src/cdcopy/k3bcdcopyjob.cpp 2005-03-02 14:06:53.000000000 +0100
@@ -824,10 +824,10 @@
bool multi = d->doNotCloseLastSession || (d->numSessions > 1 && d->currentWrittenSession < d->toc.count());
int usedWritingMode = m_writingMode;
if( usedWritingMode == K3b::WRITING_MODE_AUTO ) {
- // a lot of writers have problems to write pure Data CDs in DAO mode with cdrecord.
- // So we simply always use TAO. I don't like it that much but maybe this will finally
- // get rid of the bug reports...
- usedWritingMode = K3b::TAO;
+ if( !m_writerDevice->dao() || d->toc.count() > 1 || multi )
+ usedWritingMode = K3b::TAO;
+ else
+ usedWritingMode = K3b::DAO;
}
d->cdrecordWriter->setWritingMode( usedWritingMode );
--- k3b-0.11.20/src/projects/datacd/k3bdatajob.cpp.dao 2005-02-04 09:46:39.000000000 +0100
+++ k3b-0.11.20/src/projects/datacd/k3bdatajob.cpp 2005-03-02 14:09:21.000000000 +0100
@@ -586,12 +586,7 @@
// which is basicly to always use TAO since so many writers have problems to write Data CDs in DAO
// mode. Is there any drawback?
if( d->doc->writingMode() == K3b::WRITING_MODE_AUTO ) {
- // use DAO for overburned CDs
- // TODO: put this into the cdreocrdwriter and decide based on the size of the
- // track
- k3bcore->config()->setGroup("General Options");
- if( k3bcore->config()->readBoolEntry( "Allow overburning", false ) &&
- writer()->dao() &&
+ if( writer()->dao() &&
d->doc->multiSessionMode() == K3bDataDoc::NONE )
d->usedWritingMode = K3b::DAO;
else
--- k3b-0.11.20/src/images/k3biso9660imagewritingjob.cpp.dao 2005-02-04 09:46:38.000000000 +0100
+++ k3b-0.11.20/src/images/k3biso9660imagewritingjob.cpp 2005-03-02 14:06:53.000000000 +0100
@@ -272,18 +272,19 @@
if( usedWriteMode == K3b::WRITING_MODE_AUTO ) {
// cdrecord seems to have problems when writing in mode2 in dao mode
// so with cdrecord we use TAO
- // and many writers fail to write DAO with cdrecord.
- // Is there any backdraw? Except that the track will contain two bogus sectors?
- usedWriteMode = K3b::TAO;
+ if( m_noFix || m_dataMode == K3b::MODE2 || !m_device->dao() )
+ usedWriteMode = K3b::TAO;
+ else
+ usedWriteMode = K3b::DAO;
}
int usedApp = writingApp();
if( usedApp == K3b::DEFAULT ) {
- if( usedWriteMode == K3b::DAO && ( m_dataMode == K3b::MODE2 || m_noFix ) )
+ if( usedWriteMode == K3b::DAO &&
+ ( m_dataMode == K3b::MODE2 || m_noFix ) )
usedApp = K3b::CDRDAO;
- else {
+ else
usedApp = K3b::CDRECORD;
- }
}