Blob Blame History Raw
--- 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;
-      }
     }