New -as cdrecord option --multi_if_possible
This commit is contained in:
@ -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;
|
||||
|
Reference in New Issue
Block a user