[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [k3b/cdrskin] libk3b: Change features and arguments for Cdrskin
From:       Leslie Zhai <xiangzhai83 () gmail ! com>
Date:       2016-11-30 2:59:27
Message-ID: E1cBv7H-0004Ac-Ln () code ! kde ! org
[Download RAW message or body]

Git commit c17d307523a08c1e6042381bdbdfe1971fffc84a by Leslie Zhai.
Committed on 30/11/2016 at 02:52.
Pushed by lesliezhai into branch 'cdrskin'.

Change features and arguments for Cdrskin

Test plan1:
burn ArchLinux iso created by CDEmu with --allow_emulated_drives
FAILED! see debugging log attachment:
cdrskin-burn-archlinux-iso-debugging-output2.txt

Test plan2:
burn ArchLinux iso created by CDEmu with growisofs
SUCCESS! see debugging log attachment:
growisofs-burn-archlinux-iso-debugging-output1.txt

CCMAIL: scdbackup@gmx.net
CCBUG: 137436

M  +4    -24   libk3b/core/k3bdefaultexternalprograms.cpp
M  +1    -2    libk3b/jobs/k3bmetawriter.cpp
M  +23   -13   libk3b/projects/k3bcdrskinwriter.cpp

https://commits.kde.org/k3b/c17d307523a08c1e6042381bdbdfe1971fffc84a

diff --git a/libk3b/core/k3bdefaultexternalprograms.cpp \
b/libk3b/core/k3bdefaultexternalprograms.cpp index ba3795b..da3b971 100644
--- a/libk3b/core/k3bdefaultexternalprograms.cpp
+++ b/libk3b/core/k3bdefaultexternalprograms.cpp
@@ -559,9 +559,6 @@ bool K3b::CdrskinProgram::scanFeatures(ExternalBin& bin) const
             bin.addFeature("clone");
         if (output.contains("-tao"))
             bin.addFeature("tao");
-
-        if (output.contains("-xamix") || bin.version() >= K3b::Version(1, 1, 1))
-            bin.addFeature("xamix");
     }
 
 #ifdef K3B_DEBUG
@@ -575,28 +572,11 @@ bool K3b::CdrskinProgram::scanFeatures(ExternalBin& bin) const
         bin.setVersion(QString(bin.version().versionString()).remove("-dvd"));
     }
 
-    if (bin.version() < K3b::Version(1, 0))
-        bin.addFeature("outdated");
-
-    if (bin.version() >= K3b::Version(1, 1))
-        bin.addFeature("plain-atapi");
-    if (bin.version() > K3b::Version(1, 1))
-        bin.addFeature("hacked-atapi");
-
-    if (bin.version() >= K3b::Version(1, 1, 1))
-        bin.addFeature("short-track-raw");
+    bin.addFeature("plain-atapi");
+    bin.addFeature("hacked-atapi");
 
-    if (bin.version() >= K3b::Version(1, 1, 1))
-        bin.addFeature("audio-stdin");
-
-    if (bin.version() >= K3b::Version(1, 1, 1)) {
-#ifdef K3B_DEBUG
-        qDebug() << "DEBUG:" << __PRETTY_FUNCTION__ << "\"burnfree\" was supported \
                from start (and is default)."
-            "\"burnproof\" is accepted as alias of \"burnfree\".";
-#endif
-        bin.addFeature("burnfree");
-    } else
-        bin.addFeature("burnproof");
+    bin.addFeature("burnfree");
+    bin.addFeature("burnproof");
 
     if (bin.version() >= K3b::Version(0, 6, 2)) {
 #ifdef K3B_DEBUG
diff --git a/libk3b/jobs/k3bmetawriter.cpp b/libk3b/jobs/k3bmetawriter.cpp
index f814898..6aff359 100644
--- a/libk3b/jobs/k3bmetawriter.cpp
+++ b/libk3b/jobs/k3bmetawriter.cpp
@@ -787,8 +787,7 @@ bool K3b::MetaWriter::setupCdrskinJob()
                     return false;
 
                 if (image.isEmpty()) {
-                    // TODO: this is a companion of "-useinfo". Needs to become \
                conditional then.
-                    \
writer->addArgument(QFile::encodeName(d->infFileName(audioTrackCnt))); +              \
emit infoMessage(i18n("No version of cdrskin can do this yet."), MessageError);  } \
else {  writer->addArgument(QFile::encodeName(image));
                 }
diff --git a/libk3b/projects/k3bcdrskinwriter.cpp \
b/libk3b/projects/k3bcdrskinwriter.cpp index 30d02b1..a012368 100644
--- a/libk3b/projects/k3bcdrskinwriter.cpp
+++ b/libk3b/projects/k3bcdrskinwriter.cpp
@@ -212,7 +212,7 @@ bool K3b::CdrskinWriter::prepareProcess()
     d->process << "-v";
 
     if (d->cdrskinBinObject->hasFeature("gracetime"))
-        d->process << "gracetime=0";  // I am Thomas and i allow gracetime=0. :)
+        d->process << "gracetime=0";  // quote: I am Thomas and i allow gracetime=0. \
:)  // Further cdrskin's gracetime default is 0.
     // Only with undersized tracks (< 600 KB) the gracetime is at least 15 seconds
     // in order to let a command line user abort the run.
@@ -233,6 +233,9 @@ bool K3b::CdrskinWriter::prepareProcess()
     // Default is fastest speed.
     if (d->usedSpeed != 0) {
         // TODO: so does need to check formatWritingSpeedFactor?
+        // Obviously the emulated drive (CDEmu) does not honor the speed wishes \
issued +        // by libburn. (It is so fast that the watcher thread of cdrskin \
misses +        // several MB between its inquiries.)
         d->process << QString("speed=%1").arg(formatWritingSpeedFactor(d->usedSpeed, \
d->burnedMediaType, SpeedFormatInteger));  }
 
@@ -267,16 +270,16 @@ bool K3b::CdrskinWriter::prepareProcess()
             }
         }
         else if( d->writingMode == K3b::WritingModeRaw ) {
-            /* These write modes are not supported by cdrskin. They need to be made
-             * contitional.
-             * Then what about raw16 and raw96p?
-            if( burnDevice()->supportsWritingMode( K3b::Device::WRITINGMODE_RAW_R96R \
                ) )
-                d->process << "-raw96r";
-            else */if( burnDevice()->supportsWritingMode( \
                K3b::Device::WRITINGMODE_RAW_R16 ) )
-                d->process << "-raw16";
-            else if( burnDevice()->supportsWritingMode( \
                K3b::Device::WRITINGMODE_RAW_R96P ) )
-                d->process << "-raw96p";
-            else {
+            // These write modes are not supported by cdrskin. They need to be made
+            // contitional.
+            // cdrskin supports only -audio and -data.
+            // Options -xa1, -xa, -xa2, -mode2 do not lead to error but the payload \
is +            // nevertheless written as -data.
+            if (burnDevice()->supportsWritingMode(K3b::Device::WRITINGMODE_RAW_R96R) \
||  +                \
burnDevice()->supportsWritingMode(K3b::Device::WRITINGMODE_RAW_R16)  || +             \
burnDevice()->supportsWritingMode(K3b::Device::WRITINGMODE_RAW_R96P)) { +             \
d->process << "-data"; +            } else {
                 emit infoMessage( i18n("Writer does not support raw writing."), \
MessageWarning );  if( d->cdrskinBinObject->hasFeature( "tao" ) )
                     d->process << "-tao";
@@ -290,8 +293,14 @@ bool K3b::CdrskinWriter::prepareProcess()
         // FIXME: add a way to fail the whole thing here
     }
 
-    if( simulate() )
+    if (simulate())
         d->process << "-dummy";
+    // TODO: CDEmu
+#ifdef K3B_DEBUG
+    qDebug() << "DEBUG:" << __PRETTY_FUNCTION__ << burnDevice()->description();
+#endif
+    if (burnDevice()->description().contains("Virt"))
+        d->process << "--allow_emulated_drives";
 
     d->usingBurnfree = false;
     if (k3bcore->globalSettings()->burnfree()) {
@@ -329,7 +338,8 @@ bool K3b::CdrskinWriter::prepareProcess()
                 d->process << "blank=all";
                 break;
             case FormattingQuick:
-                d->process << "blank=deformat_sequential_quickest";
+                if (d->burnedMediaType & Device::MEDIA_DVD_PLUS_RW)
+                    d->process << "blank=deformat_sequential_quickest";
                 break;
         }
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic