New cdrskin option use_immed_bit=
This commit is contained in:
parent
740e726ffe
commit
0731eaa3e0
@ -2,7 +2,7 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH CDRSKIN 1 "Version 1.4.5, Jul 03, 2016"
|
||||
.TH CDRSKIN 1 "Version 1.4.5, Jul 30, 2016"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -618,7 +618,8 @@ modesty_on_drive=1:min_percent=75:max_percent=95
|
||||
The name of this cdrecord option stems from the "Immed" bit which can make some
|
||||
long running drive commands asynchronous and thus eases the load on some
|
||||
wiring hardware types. Regardless of option -immed, cdrskin uses asynchronous
|
||||
commands where possible and appropriate.
|
||||
commands where possible and appropriate. To really disable asynchronous command
|
||||
execution, use option use_immed_bit=off .
|
||||
.TP
|
||||
.BI index= list
|
||||
Set a comma separated list of index start address numbers for the next track.
|
||||
@ -1633,6 +1634,16 @@ This setting affects only CD SAO write runs.
|
||||
The first track automatically gets a pre-gap of at least 150 sectors. Its
|
||||
size can only be enlarged by this call.
|
||||
.TP
|
||||
.BI use_immed_bit= on|off|default
|
||||
Control whether several long lasting SCSI commands shall be executed with the
|
||||
Immed bit, which makes the commands end early while the drive operation is
|
||||
still going on. cdrskin then inquires progress indication until the drive
|
||||
reports to be ready again. If this feature is turned off, then blanking and
|
||||
formatting will show no progress indication.
|
||||
.br
|
||||
It may depend on the operating system whether use_immed_bit= is set to "off"
|
||||
by default.
|
||||
.TP
|
||||
.BI --xa1-ignore
|
||||
Silently interpret option -xa1 as -data. This may be necessary if a frontend
|
||||
does not prepare -xa1 block headers but insists in using option -xa1.
|
||||
|
@ -2949,6 +2949,8 @@ set_dev:;
|
||||
printf(
|
||||
" print CD-TEXT file in Sony format and exit.\n");
|
||||
printf(" --two_channel indicate that audio tracks have 2 channels\n");
|
||||
printf(
|
||||
" use_immed_bit=on|off|default real control over SCSI Immed bit\n");
|
||||
printf(
|
||||
" write_start_address=<num> write to given byte address (DVD+RW)\n");
|
||||
printf(
|
||||
@ -3387,6 +3389,7 @@ struct CdrskiN {
|
||||
int stdio_sync; /* stdio fsync interval: -1, 0, >=32 */
|
||||
int single_track;
|
||||
int prodvd_cli_compatible;
|
||||
int use_immed; /* 1= yes, 0= libburn default, -1= no */
|
||||
|
||||
int do_devices; /* 1= --devices , 2= --device_links */
|
||||
|
||||
@ -3659,6 +3662,7 @@ int Cdrskin_new(struct CdrskiN **skin, struct CdrpreskiN *preskin, int flag)
|
||||
o->stdio_sync= 0;
|
||||
o->single_track= 0;
|
||||
o->prodvd_cli_compatible= 0;
|
||||
o->use_immed= 0;
|
||||
o->do_devices= 0;
|
||||
o->do_scanbus= 0;
|
||||
o->do_load= 0;
|
||||
@ -4169,6 +4173,8 @@ aborted:;
|
||||
goto ex;
|
||||
}
|
||||
}
|
||||
if(skin->use_immed != 0)
|
||||
burn_drive_set_immed(drive, skin->use_immed > 0);
|
||||
skin->drive_is_grabbed= 1;
|
||||
|
||||
s= burn_disc_get_status(drive);
|
||||
@ -6163,12 +6169,12 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
||||
struct burn_progress p;
|
||||
struct burn_drive *drive;
|
||||
int ret,loop_counter= 0,hint_force= 0,do_format= 0, profile_number= -1;
|
||||
int wrote_well= 1, format_flag= 0, status, num_formats;
|
||||
int wrote_well= 1, format_flag= 0, status, num_formats, using_immed= 1;
|
||||
off_t size;
|
||||
unsigned dummy;
|
||||
double start_time;
|
||||
char *verb= "blank", *presperf="blanking", *fmt_text= "...";
|
||||
char profile_name[80];
|
||||
char profile_name[80], progress_text[40];
|
||||
static char fmtp[][40]= {
|
||||
"...", "format_overwrite", "deformat_sequential",
|
||||
"(-format)", "format_defectmgt", "format_by_index",
|
||||
@ -6379,6 +6385,7 @@ unsupported_format_type:;
|
||||
|
||||
if(Cdrskin__is_aborting(0))
|
||||
{ret= 0; goto ex;}
|
||||
using_immed= burn_drive_get_immed(drive);
|
||||
skin->drive_is_busy= 1;
|
||||
if(do_format==0 || do_format==2) {
|
||||
burn_disc_erase(drive,skin->blank_fast);
|
||||
@ -6401,6 +6408,8 @@ unsupported_format_type:;
|
||||
|
||||
loop_counter= 0;
|
||||
start_time= Sfile_microtime(0);
|
||||
if(!using_immed)
|
||||
sprintf(progress_text, "synchronous");
|
||||
while(burn_drive_get_status(drive, &p) != BURN_DRIVE_IDLE) {
|
||||
if(loop_counter>0)
|
||||
if(skin->verbosity>=Cdrskin_verbose_progresS) {
|
||||
@ -6408,10 +6417,14 @@ unsupported_format_type:;
|
||||
|
||||
if(p.sectors>0) /* i want a display of 1 to 99 percent */
|
||||
percent= 1.0+((double) p.sector+1.0)/((double) p.sectors)*98.0;
|
||||
if(using_immed)
|
||||
sprintf(progress_text, "done %.1f%%", percent);
|
||||
fprintf(stderr,
|
||||
"%scdrskin: %s ( done %.1f%% , %lu seconds elapsed ) %s",
|
||||
"%scdrskin: %s ( %s , %lu seconds elapsed ) %s",
|
||||
skin->pacifier_with_newline ? "" : "\r",
|
||||
presperf,percent,(unsigned long) (Sfile_microtime(0)-start_time),
|
||||
presperf,
|
||||
progress_text,
|
||||
(unsigned long) (Sfile_microtime(0)-start_time),
|
||||
skin->pacifier_with_newline ? "\n" : "");
|
||||
}
|
||||
sleep(1);
|
||||
@ -9212,6 +9225,18 @@ track_too_large:;
|
||||
} else if(strcmp(argv[i],"--two_channel")==0) {
|
||||
skin->track_modemods&= ~BURN_4CH;
|
||||
|
||||
} else if(strncmp(argv[i], "use_immed_bit=", 14) == 0) {
|
||||
if(strcmp(argv[i] + 14, "on") == 0) {
|
||||
skin->use_immed= 1;
|
||||
} else if(strcmp(argv[i] + 14, "off") == 0) {
|
||||
skin->use_immed= -1;
|
||||
} else if(strcmp(argv[i] + 14, "default") == 0) {
|
||||
skin->use_immed= 0;
|
||||
} else {
|
||||
fprintf(stderr, "cdrskin: FATAL : use_immed_bits= must be \"on\", \"off\", or \"default\"\n");
|
||||
return(0);
|
||||
}
|
||||
|
||||
} else if(strcmp(argv[i],"-V")==0 || strcmp(argpt, "-Verbose")==0) {
|
||||
/* is handled in Cdrpreskin_setup() */;
|
||||
} else if(strcmp(argv[i],"-v")==0 || strcmp(argpt,"-verbose")==0) {
|
||||
|
@ -1 +1 @@
|
||||
#define Cdrskin_timestamP "2016.07.30.140328"
|
||||
#define Cdrskin_timestamP "2016.07.30.140859"
|
||||
|
Loading…
Reference in New Issue
Block a user