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
|
.\" First parameter, NAME, should be all caps
|
||||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
.\" other parameters are allowed: see man(7), man(1)
|
.\" 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.
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
.\"
|
.\"
|
||||||
.\" Some roff macros, for reference:
|
.\" 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
|
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
|
long running drive commands asynchronous and thus eases the load on some
|
||||||
wiring hardware types. Regardless of option -immed, cdrskin uses asynchronous
|
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
|
.TP
|
||||||
.BI index= list
|
.BI index= list
|
||||||
Set a comma separated list of index start address numbers for the next track.
|
Set a comma separated list of index start address numbers for the next track.
|
||||||
@ -1632,6 +1633,16 @@ This setting affects only CD SAO write runs.
|
|||||||
.br
|
.br
|
||||||
The first track automatically gets a pre-gap of at least 150 sectors. Its
|
The first track automatically gets a pre-gap of at least 150 sectors. Its
|
||||||
size can only be enlarged by this call.
|
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
|
.TP
|
||||||
.BI --xa1-ignore
|
.BI --xa1-ignore
|
||||||
Silently interpret option -xa1 as -data. This may be necessary if a frontend
|
Silently interpret option -xa1 as -data. This may be necessary if a frontend
|
||||||
|
@ -2949,6 +2949,8 @@ set_dev:;
|
|||||||
printf(
|
printf(
|
||||||
" print CD-TEXT file in Sony format and exit.\n");
|
" print CD-TEXT file in Sony format and exit.\n");
|
||||||
printf(" --two_channel indicate that audio tracks have 2 channels\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(
|
printf(
|
||||||
" write_start_address=<num> write to given byte address (DVD+RW)\n");
|
" write_start_address=<num> write to given byte address (DVD+RW)\n");
|
||||||
printf(
|
printf(
|
||||||
@ -3387,6 +3389,7 @@ struct CdrskiN {
|
|||||||
int stdio_sync; /* stdio fsync interval: -1, 0, >=32 */
|
int stdio_sync; /* stdio fsync interval: -1, 0, >=32 */
|
||||||
int single_track;
|
int single_track;
|
||||||
int prodvd_cli_compatible;
|
int prodvd_cli_compatible;
|
||||||
|
int use_immed; /* 1= yes, 0= libburn default, -1= no */
|
||||||
|
|
||||||
int do_devices; /* 1= --devices , 2= --device_links */
|
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->stdio_sync= 0;
|
||||||
o->single_track= 0;
|
o->single_track= 0;
|
||||||
o->prodvd_cli_compatible= 0;
|
o->prodvd_cli_compatible= 0;
|
||||||
|
o->use_immed= 0;
|
||||||
o->do_devices= 0;
|
o->do_devices= 0;
|
||||||
o->do_scanbus= 0;
|
o->do_scanbus= 0;
|
||||||
o->do_load= 0;
|
o->do_load= 0;
|
||||||
@ -4169,6 +4173,8 @@ aborted:;
|
|||||||
goto ex;
|
goto ex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(skin->use_immed != 0)
|
||||||
|
burn_drive_set_immed(drive, skin->use_immed > 0);
|
||||||
skin->drive_is_grabbed= 1;
|
skin->drive_is_grabbed= 1;
|
||||||
|
|
||||||
s= burn_disc_get_status(drive);
|
s= burn_disc_get_status(drive);
|
||||||
@ -6163,12 +6169,12 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
struct burn_progress p;
|
struct burn_progress p;
|
||||||
struct burn_drive *drive;
|
struct burn_drive *drive;
|
||||||
int ret,loop_counter= 0,hint_force= 0,do_format= 0, profile_number= -1;
|
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;
|
off_t size;
|
||||||
unsigned dummy;
|
unsigned dummy;
|
||||||
double start_time;
|
double start_time;
|
||||||
char *verb= "blank", *presperf="blanking", *fmt_text= "...";
|
char *verb= "blank", *presperf="blanking", *fmt_text= "...";
|
||||||
char profile_name[80];
|
char profile_name[80], progress_text[40];
|
||||||
static char fmtp[][40]= {
|
static char fmtp[][40]= {
|
||||||
"...", "format_overwrite", "deformat_sequential",
|
"...", "format_overwrite", "deformat_sequential",
|
||||||
"(-format)", "format_defectmgt", "format_by_index",
|
"(-format)", "format_defectmgt", "format_by_index",
|
||||||
@ -6379,6 +6385,7 @@ unsupported_format_type:;
|
|||||||
|
|
||||||
if(Cdrskin__is_aborting(0))
|
if(Cdrskin__is_aborting(0))
|
||||||
{ret= 0; goto ex;}
|
{ret= 0; goto ex;}
|
||||||
|
using_immed= burn_drive_get_immed(drive);
|
||||||
skin->drive_is_busy= 1;
|
skin->drive_is_busy= 1;
|
||||||
if(do_format==0 || do_format==2) {
|
if(do_format==0 || do_format==2) {
|
||||||
burn_disc_erase(drive,skin->blank_fast);
|
burn_disc_erase(drive,skin->blank_fast);
|
||||||
@ -6401,6 +6408,8 @@ unsupported_format_type:;
|
|||||||
|
|
||||||
loop_counter= 0;
|
loop_counter= 0;
|
||||||
start_time= Sfile_microtime(0);
|
start_time= Sfile_microtime(0);
|
||||||
|
if(!using_immed)
|
||||||
|
sprintf(progress_text, "synchronous");
|
||||||
while(burn_drive_get_status(drive, &p) != BURN_DRIVE_IDLE) {
|
while(burn_drive_get_status(drive, &p) != BURN_DRIVE_IDLE) {
|
||||||
if(loop_counter>0)
|
if(loop_counter>0)
|
||||||
if(skin->verbosity>=Cdrskin_verbose_progresS) {
|
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 */
|
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;
|
percent= 1.0+((double) p.sector+1.0)/((double) p.sectors)*98.0;
|
||||||
|
if(using_immed)
|
||||||
|
sprintf(progress_text, "done %.1f%%", percent);
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%scdrskin: %s ( done %.1f%% , %lu seconds elapsed ) %s",
|
"%scdrskin: %s ( %s , %lu seconds elapsed ) %s",
|
||||||
skin->pacifier_with_newline ? "" : "\r",
|
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" : "");
|
skin->pacifier_with_newline ? "\n" : "");
|
||||||
}
|
}
|
||||||
sleep(1);
|
sleep(1);
|
||||||
@ -9212,6 +9225,18 @@ track_too_large:;
|
|||||||
} else if(strcmp(argv[i],"--two_channel")==0) {
|
} else if(strcmp(argv[i],"--two_channel")==0) {
|
||||||
skin->track_modemods&= ~BURN_4CH;
|
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) {
|
} else if(strcmp(argv[i],"-V")==0 || strcmp(argpt, "-Verbose")==0) {
|
||||||
/* is handled in Cdrpreskin_setup() */;
|
/* is handled in Cdrpreskin_setup() */;
|
||||||
} else if(strcmp(argv[i],"-v")==0 || strcmp(argpt,"-verbose")==0) {
|
} 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