[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