New -as cdrecord option --multi_if_possible

This commit is contained in:
2013-10-28 15:15:39 +00:00
parent baedbd5379
commit b587178ff1
5 changed files with 111 additions and 68 deletions

View File

@ -67,6 +67,7 @@ int Xorriso_cdrskin_help(struct XorrisO *xorriso, int flag)
"\t-toc\t\tretrieve and print TOC/PMA data",
"\t-atip\t\tretrieve media state, print \"Is *erasable\"",
"\t-multi\t\tgenerate a TOC that allows multi session",
"\t--multi_if_possible\tapply -multi if the medium supports it",
"\t-waiti\t\twait until input is available before opening SCSI",
"\t-tao\t\tWrite disk in TAO mode.",
"\t-dao\t\tWrite disk in SAO mode.",
@ -108,6 +109,7 @@ int Xorriso_cdrskin(struct XorrisO *xorriso, char *whom, int argc, char **argv,
int do_atip= 0, do_checkdrive= 0, do_eject= 0, do_scanbus= 0;
int do_toc= 0, do_verbous= 0, do_version= 0, do_help= 0, do_waiti= 0;
int do_multi= 0, do_msinfo= 0, do_grow= 0, do_isosize= 0, do_xa1= 0;
int do_auto_close= 0;
double write_start_address= -1.0, tsize= -1.0, mem_auto_close;
char *track_source= NULL, *dev_adr= NULL, *cpt;
char mem_report_about_text[80], *report_about= "SORRY", blank_mode[80];
@ -298,6 +300,10 @@ no_volunteer:;
do_msinfo= 1;
} else if(strcmp(argpt, "-multi")==0) {
do_multi= 1;
do_auto_close= 0;
} else if(strcmp(argv[i], "--multi_if_possible") == 0) {
do_multi= 1;
do_auto_close= 1;
} else if(strcmp(argpt, "-nopad")==0) {
xorriso->padding= 0;
} else if(strcmp(argv[i], "--no_rc")==0) { /* intentional: argv[i] */
@ -511,10 +517,15 @@ no_volunteer:;
}
if(track_source[0]) {
xorriso->do_close= !do_multi;
xorriso->auto_close= 0;
xorriso->auto_close= do_auto_close;
ret= Xorriso_burn_track(xorriso, (off_t) write_start_address,
track_source, (off_t) tsize,
(!!do_grow) | ((!!do_isosize) << 1) | ((do_xa1 == 1) << 2));
if(ret == 2) {
ret= Xorriso_retry_burn_track(xorriso, (off_t) write_start_address,
track_source, (off_t) tsize,
(!!do_grow) | ((!!do_isosize) << 1) | ((do_xa1 == 1) << 2));
}
aq_ret= Xorriso_reaquire_outdev(xorriso, 2*(ret>0));
if(ret<=0 && ret<aq_ret)
goto ex;