From f1a52d5d9a8f77e590193983d31b491663255477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Honza=20Hor=C3=A1k?= Date: Thu, 2 Jun 2011 17:15:40 +0200 Subject: [PATCH] Added a patch file forgot in pre-pre-previous commit. --- cdrkit-1.1.11-format.patch | 129 +++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 cdrkit-1.1.11-format.patch diff --git a/cdrkit-1.1.11-format.patch b/cdrkit-1.1.11-format.patch new file mode 100644 index 0000000..983ed23 --- /dev/null +++ b/cdrkit-1.1.11-format.patch @@ -0,0 +1,129 @@ +diff -up cdrkit-1.1.11/wodim/drv_mmc.c.format cdrkit-1.1.11/wodim/drv_mmc.c +--- cdrkit-1.1.11/wodim/drv_mmc.c.format 2011-05-18 16:49:14.591822130 +0200 ++++ cdrkit-1.1.11/wodim/drv_mmc.c 2011-05-18 16:49:14.596822130 +0200 +@@ -1507,6 +1507,11 @@ getdisktype_mdvd(SCSI *usalp, cdr_t *dp) + dstat_t *dsp = dp->cdr_dstat; + + struct track_info track_info; ++ ++ extern char *buf; ++ struct disk_info *dip; ++ int profile; ++ + if(lverbose) + printf("HINT: use dvd+rw-mediainfo from dvd+rw-tools for information extraction.\n"); + /* if(getdisktype_mmc(usalp, dp)<0) +@@ -1521,6 +1526,18 @@ getdisktype_mdvd(SCSI *usalp, cdr_t *dp) + dsp->ds_disktype&= ~DT_CD; + dsp->ds_disktype|= DT_DVD; + ++ profile = get_curprofile(usalp); ++ if (profile == 0x1A) { ++ dip = (struct disk_info *)buf; ++ if (get_diskinfo(usalp, dip) < 0) ++ return (-1); ++ if (dip->disk_status == DS_EMPTY) { /* Unformatted */ ++ dsp->ds_flags |= DSF_NEED_FORMAT; ++ if(lverbose) ++ printf("The medium is empty, it will be auto formatted.\n"); ++ } ++ } ++ + return (ret); + + } +diff -up cdrkit-1.1.11/wodim/scsi_cdr.c.format cdrkit-1.1.11/wodim/scsi_cdr.c +--- cdrkit-1.1.11/wodim/scsi_cdr.c.format 2011-05-18 16:49:14.601822130 +0200 ++++ cdrkit-1.1.11/wodim/scsi_cdr.c 2011-05-18 16:49:14.600822130 +0200 +@@ -1328,7 +1328,7 @@ scsi_format(SCSI *usalp, caddr_t addr, i + } + sleep(10); + printf("\rFormating in progress: 100.00 %% done. \n"); +- if (pid) exit (0); ++ if (pid > 0) exit (0); + return ret; + } + +diff -up cdrkit-1.1.11/wodim/wodim.c.format cdrkit-1.1.11/wodim/wodim.c +--- cdrkit-1.1.11/wodim/wodim.c.format 2011-05-18 16:49:14.584822130 +0200 ++++ cdrkit-1.1.11/wodim/wodim.c 2011-05-18 17:21:59.510821630 +0200 +@@ -946,6 +946,40 @@ int main(int argc, char *argv[]) + print_toc(usalp, dp); + comexit(0); + } ++ ++ if ((flags & F_FORMAT) || (dp->cdr_dstat->ds_flags & DSF_NEED_FORMAT)) { ++ printf("wodim: media format asked\n"); ++ /* ++ * Do not abort if OPC failes. Just give it a chance ++ * for better laser power calibration than without OPC. ++ * ++ * Ricoh drives return with a vendor unique sense code. ++ * This is most likely because they refuse to do OPC ++ * on a non blank media. ++ */ ++ usalp->silent++; ++ do_opc(usalp, dp, flags); ++ usalp->silent--; ++ wait_unit_ready(usalp, 120); ++ if (gettimeofday(&starttime, (struct timezone *)0) < 0) ++ errmsg("Cannot get start time\n"); ++ ++ if ((*dp->cdr_format)(usalp, dp, formattype) < 0) { ++ errmsgno(EX_BAD, "Cannot format disk, aborting.\n"); ++ comexit(EX_BAD); ++ } ++ if (gettimeofday(&fixtime, (struct timezone *)0) < 0) ++ errmsg("Cannot get format time\n"); ++ if (lverbose) ++ prtimediff("Formatting time: ", &starttime, &fixtime); ++ ++ if (!wait_unit_ready(usalp, 240) || tracks == 0) { ++ comexit(0); ++ } ++ if (gettimeofday(&starttime, (struct timezone *)0) < 0) ++ errmsg("Cannot get start time\n"); ++ } ++ + #ifdef XXX + if ((*dp->cdr_check_session)() < 0) { + comexit(EX_BAD); +@@ -1230,38 +1264,6 @@ int main(int argc, char *argv[]) + comexit(0); + } + } +- if (flags & F_FORMAT) { +- printf("wodim: media format asked\n"); +- /* +- * Do not abort if OPC failes. Just give it a chance +- * for better laser power calibration than without OPC. +- * +- * Ricoh drives return with a vendor unique sense code. +- * This is most likely because they refuse to do OPC +- * on a non blank media. +- */ +- usalp->silent++; +- do_opc(usalp, dp, flags); +- usalp->silent--; +- wait_unit_ready(usalp, 120); +- if (gettimeofday(&starttime, (struct timezone *)0) < 0) +- errmsg("Cannot get start time\n"); +- +- if ((*dp->cdr_format)(usalp, dp, formattype) < 0) { +- errmsgno(EX_BAD, "Cannot format disk, aborting.\n"); +- comexit(EX_BAD); +- } +- if (gettimeofday(&fixtime, (struct timezone *)0) < 0) +- errmsg("Cannot get format time\n"); +- if (lverbose) +- prtimediff("Formatting time: ", &starttime, &fixtime); +- +- if (!wait_unit_ready(usalp, 240) || tracks == 0) { +- comexit(0); +- } +- if (gettimeofday(&starttime, (struct timezone *)0) < 0) +- errmsg("Cannot get start time\n"); +- } + /* + * Reset start time so we will not see blanking time and + * writing time counted together.