New blank type as_needed
This commit is contained in:
parent
44368aef6c
commit
12b0fbf17c
@ -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 "April 26, 2008"
|
.TH CDRSKIN 1 "April 27, 2008"
|
||||||
.\" 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:
|
||||||
@ -168,7 +168,7 @@ Multiple cycles of blanking and overwriting with random numbers might be.
|
|||||||
Currently DVD-RW, DVD-R and DVD+R[/DL] can be used for the Sequential recording
|
Currently DVD-RW, DVD-R and DVD+R[/DL] can be used for the Sequential recording
|
||||||
model.
|
model.
|
||||||
.br
|
.br
|
||||||
DVD-RW must be in state "Sequential Recording".
|
This applies to DVD-RW only if they are in state "Sequential Recording".
|
||||||
The media must be either blank or appendable.
|
The media must be either blank or appendable.
|
||||||
Newly purchased DVD-RW and DVD-R media are in this state.
|
Newly purchased DVD-RW and DVD-R media are in this state.
|
||||||
Used DVD-RW get into blank sequential state by option
|
Used DVD-RW get into blank sequential state by option
|
||||||
@ -218,10 +218,6 @@ Best reader compatibility is achieved without it
|
|||||||
Currently types DVD+RW, DVD-RW, DVD-RAM and BD-RE can be overwritten via
|
Currently types DVD+RW, DVD-RW, DVD-RAM and BD-RE can be overwritten via
|
||||||
cdrskin. BD-RE is supported only with option --allow_untested_media.
|
cdrskin. BD-RE is supported only with option --allow_untested_media.
|
||||||
.br
|
.br
|
||||||
DVD+RW and DVD-RAM media need no special initial formatting. They offer a
|
|
||||||
single continuous data area for blockwise random access. BD-RE need
|
|
||||||
explicit formatting before use. See blank=format_defectmgt .
|
|
||||||
.br
|
|
||||||
Option -audio is not allowed. Only one track is allowed.
|
Option -audio is not allowed. Only one track is allowed.
|
||||||
Option -multi cannot mark a recognizeable end of overwriteable media.
|
Option -multi cannot mark a recognizeable end of overwriteable media.
|
||||||
Therefore -multi is banned unless ISO-9660 images shall be expandable by help
|
Therefore -multi is banned unless ISO-9660 images shall be expandable by help
|
||||||
@ -233,6 +229,12 @@ media get treated as blank regardless wether they hold data or not.
|
|||||||
.br
|
.br
|
||||||
Currently there is no difference between -sao and -tao. If ever, then -tao
|
Currently there is no difference between -sao and -tao. If ever, then -tao
|
||||||
will be the mode which preserves the current behavior.
|
will be the mode which preserves the current behavior.
|
||||||
|
.PP
|
||||||
|
DVD+RW and DVD-RAM media need no special initial formatting. They offer a
|
||||||
|
single continuous data area for blockwise random access. BD-RE need
|
||||||
|
explicit formatting before use. See
|
||||||
|
.B blank=as_needed
|
||||||
|
or blank=format_defectmgt .
|
||||||
.br
|
.br
|
||||||
DVD-RW are sold in state "Sequential Recording". To become suitable for the
|
DVD-RW are sold in state "Sequential Recording". To become suitable for the
|
||||||
Overwriteable DVD recording model they need to get formatted to state
|
Overwriteable DVD recording model they need to get formatted to state
|
||||||
@ -355,8 +357,16 @@ This is combinable with burning in the same run of cdrskin.
|
|||||||
The type given with blank= selects the particular behavior:
|
The type given with blank= selects the particular behavior:
|
||||||
.RS
|
.RS
|
||||||
.TP
|
.TP
|
||||||
help
|
as_needed
|
||||||
Print this list of blanking types.
|
Try to make the media ready for writing from scratch. If it needs formatting,
|
||||||
|
then format it. If it is not blank, then try to apply blank=fast.
|
||||||
|
It is a reason to abort if the media cannot assume thoroughly writeable state,
|
||||||
|
e.g. if it is non-blank write-once.
|
||||||
|
.br
|
||||||
|
This leaves unformatted DVD-RW in unformatted blank state. To format DVD-RW use
|
||||||
|
blank=format_overwriteable.
|
||||||
|
.TP
|
||||||
|
The following blank types are specific to particular media familes. Use them if special features are desired.
|
||||||
.TP
|
.TP
|
||||||
all
|
all
|
||||||
Blank an entire CD-RW or an unformatted DVD-RW.
|
Blank an entire CD-RW or an unformatted DVD-RW.
|
||||||
@ -386,6 +396,7 @@ and if cdrskin supports formatting for the media type,
|
|||||||
and if formatting will not happen automatically during write.
|
and if formatting will not happen automatically during write.
|
||||||
This currently applies to unformatted DVD-RW, DVD-RAM and BD-RE.
|
This currently applies to unformatted DVD-RW, DVD-RAM and BD-RE.
|
||||||
Eventually the appropriate default formatting is chosen.
|
Eventually the appropriate default formatting is chosen.
|
||||||
|
If other media or states are encountered then nothing happens.
|
||||||
.br
|
.br
|
||||||
Note: BD-RE currently is only supported with option --allow_untested_media .
|
Note: BD-RE currently is only supported with option --allow_untested_media .
|
||||||
.br
|
.br
|
||||||
@ -466,6 +477,9 @@ The numbers after text "Format idx" are the ones to be used with
|
|||||||
format_by_index_. Format descriptor lists are volatile. Do neither eject
|
format_by_index_. Format descriptor lists are volatile. Do neither eject
|
||||||
nor write the media between the run of --list_formats and the run of
|
nor write the media between the run of --list_formats and the run of
|
||||||
blank=format_by_index_ or else you may get a different format than desired.
|
blank=format_by_index_ or else you may get a different format than desired.
|
||||||
|
.TP
|
||||||
|
help
|
||||||
|
Print this list of blanking types.
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.BI \-checkdrive
|
.BI \-checkdrive
|
||||||
|
@ -2391,6 +2391,8 @@ return:
|
|||||||
fprintf(stderr,"\tdisk\t\tblank the entire disk\n");
|
fprintf(stderr,"\tdisk\t\tblank the entire disk\n");
|
||||||
fprintf(stderr,"\tfast\t\tminimally blank the entire disk\n");
|
fprintf(stderr,"\tfast\t\tminimally blank the entire disk\n");
|
||||||
fprintf(stderr,"\tminimal\t\tminimally blank the entire disk\n");
|
fprintf(stderr,"\tminimal\t\tminimally blank the entire disk\n");
|
||||||
|
fprintf(stderr,
|
||||||
|
"\tas_needed\tblank or format media to make it ready for (re-)use\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"\tdeformat_sequential\t\tfully blank, even formatted DVD-RW\n");
|
"\tdeformat_sequential\t\tfully blank, even formatted DVD-RW\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@ -3170,6 +3172,10 @@ struct CdrskiN {
|
|||||||
gets mapped to default variants of specialized
|
gets mapped to default variants of specialized
|
||||||
formats if the media state requires formatting
|
formats if the media state requires formatting
|
||||||
before writing
|
before writing
|
||||||
|
7=if_needed
|
||||||
|
gets mapped to 6 for DVD-RAM and BD-RE,
|
||||||
|
to 0 with all other non-blanks
|
||||||
|
|
||||||
bit8-15: bit0-7 of burn_disc_format(flag)
|
bit8-15: bit0-7 of burn_disc_format(flag)
|
||||||
depending on job type
|
depending on job type
|
||||||
*/
|
*/
|
||||||
@ -4302,11 +4308,13 @@ int Cdrskin_invalidate_iso_head(struct CdrskiN *skin, int flag)
|
|||||||
@param flag Bitfield for control purposes:
|
@param flag Bitfield for control purposes:
|
||||||
bit0= permission to check for overwriteable ISO image
|
bit0= permission to check for overwriteable ISO image
|
||||||
bit1= do not report media profile
|
bit1= do not report media profile
|
||||||
|
bit2= do not report but only check for pseudo appendable
|
||||||
|
@return 1=ok, 2=ok, is pseudo appendable, <=0 error
|
||||||
*/
|
*/
|
||||||
int Cdrskin_report_disc_status(struct CdrskiN *skin, enum burn_disc_status s,
|
int Cdrskin_report_disc_status(struct CdrskiN *skin, enum burn_disc_status s,
|
||||||
int flag)
|
int flag)
|
||||||
{
|
{
|
||||||
int ret, iso_size;
|
int ret, iso_size, pseudo_appendable= 0;
|
||||||
|
|
||||||
if(flag&1) {
|
if(flag&1) {
|
||||||
if(skin->media_is_overwriteable && skin->grow_overwriteable_iso>0) {
|
if(skin->media_is_overwriteable && skin->grow_overwriteable_iso>0) {
|
||||||
@ -4314,10 +4322,14 @@ int Cdrskin_report_disc_status(struct CdrskiN *skin, enum burn_disc_status s,
|
|||||||
ret= 1;
|
ret= 1;
|
||||||
else
|
else
|
||||||
ret= Cdrskin_overwriteable_iso_size(skin,&iso_size,0);
|
ret= Cdrskin_overwriteable_iso_size(skin,&iso_size,0);
|
||||||
if(ret>0)
|
if(ret>0) {
|
||||||
s= BURN_DISC_APPENDABLE;
|
s= BURN_DISC_APPENDABLE;
|
||||||
|
pseudo_appendable= 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(flag&4)
|
||||||
|
return(1+pseudo_appendable);
|
||||||
|
|
||||||
printf("cdrskin: status %d ",s);
|
printf("cdrskin: status %d ",s);
|
||||||
if(s==BURN_DISC_FULL) {
|
if(s==BURN_DISC_FULL) {
|
||||||
@ -4345,7 +4357,7 @@ int Cdrskin_report_disc_status(struct CdrskiN *skin, enum burn_disc_status s,
|
|||||||
printf("-unknown status code-\n");
|
printf("-unknown status code-\n");
|
||||||
|
|
||||||
if(flag&2)
|
if(flag&2)
|
||||||
return(1);
|
return(1+pseudo_appendable);
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_has_get_profilE
|
#ifdef Cdrskin_libburn_has_get_profilE
|
||||||
if((s==BURN_DISC_FULL || s==BURN_DISC_APPENDABLE || s==BURN_DISC_BLANK ||
|
if((s==BURN_DISC_FULL || s==BURN_DISC_APPENDABLE || s==BURN_DISC_BLANK ||
|
||||||
@ -4367,7 +4379,7 @@ int Cdrskin_report_disc_status(struct CdrskiN *skin, enum burn_disc_status s,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return(1);
|
return(1+pseudo_appendable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -5077,9 +5089,10 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
char *verb= "blank", *presperf="blanking", *fmt_text= "...";
|
char *verb= "blank", *presperf="blanking", *fmt_text= "...";
|
||||||
char profile_name[80];
|
char profile_name[80];
|
||||||
static char fmtp[][40]= {
|
static char fmtp[][40]= {
|
||||||
"format_default", "format_overwrite", "deformat_sequential",
|
"...", "format_overwrite", "deformat_sequential",
|
||||||
"format_defectmgt", "format_by_index", "format_if_needed"};
|
"(-format)", "format_defectmgt", "format_by_index",
|
||||||
static int fmtp_max= 6;
|
"format_if_needed", "as_needed"};
|
||||||
|
static int fmtp_max= 7;
|
||||||
|
|
||||||
start_time= Sfile_microtime(0); /* will be refreshed later */
|
start_time= Sfile_microtime(0); /* will be refreshed later */
|
||||||
ret= Cdrskin_grab_drive(skin,0);
|
ret= Cdrskin_grab_drive(skin,0);
|
||||||
@ -5093,14 +5106,11 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
burn_disc_get_profile(skin->grabbed_drive,&profile_number,profile_name);
|
burn_disc_get_profile(skin->grabbed_drive,&profile_number,profile_name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(skin->verbosity>=Cdrskin_verbose_progresS)
|
ret= Cdrskin_report_disc_status(skin,s,
|
||||||
Cdrskin_report_disc_status(skin,s,1);
|
1|(4*!(skin->verbosity>=Cdrskin_verbose_progresS)));
|
||||||
|
if(ret==2)
|
||||||
|
s= BURN_DISC_APPENDABLE;
|
||||||
do_format= skin->blank_format_type & 0xff;
|
do_format= skin->blank_format_type & 0xff;
|
||||||
if(do_format == 1 || do_format == 3 || do_format == 4 || do_format == 5 ||
|
|
||||||
do_format ==6) {
|
|
||||||
verb= "format";
|
|
||||||
presperf= "formatting";
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_has_pretend_fulL
|
#ifdef Cdrskin_libburn_has_pretend_fulL
|
||||||
if(s==BURN_DISC_UNSUITABLE) {
|
if(s==BURN_DISC_UNSUITABLE) {
|
||||||
@ -5121,11 +5131,11 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
do_format= 4;
|
do_format= 4;
|
||||||
else
|
else
|
||||||
do_format= 1;
|
do_format= 1;
|
||||||
} else if(do_format==6) { /* format_if_needed */
|
} else if(do_format==6 || do_format==7) { /* format_if_needed , if_needed */
|
||||||
/* Find out whether format is needed at all.
|
/* Find out whether format is needed at all.
|
||||||
Eventuelly set up a suitable formatting run
|
Eventuelly set up a suitable formatting run
|
||||||
*/
|
*/
|
||||||
if(profile_number == 0x14) { /* sequential DVD-RW */
|
if(profile_number == 0x14 && do_format==6) { /* sequential DVD-RW */
|
||||||
do_format= 1;
|
do_format= 1;
|
||||||
skin->blank_format_type= 1|(1<<8);
|
skin->blank_format_type= 1|(1<<8);
|
||||||
skin->blank_format_size= 128*1024*1024;
|
skin->blank_format_size= 128*1024*1024;
|
||||||
@ -5139,16 +5149,24 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
skin->blank_format_size= 0;
|
skin->blank_format_size= 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
} else if(do_format==7) { /* try to blank what is not blank yet */
|
||||||
|
if(s!=BURN_DISC_BLANK) {
|
||||||
|
do_format= 0;
|
||||||
|
skin->blank_fast= 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(do_format==6) {
|
if(do_format==6 || do_format==7) {
|
||||||
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
||||||
ClN(fprintf(stderr,
|
ClN(fprintf(stderr,
|
||||||
"cdrskin: NOTE : blank=format_if_needed : did not apply formatting\n"));
|
"cdrskin: NOTE : blank=%s : no need for action detected\n", fmt_text));
|
||||||
{ret= 2; goto ex;}
|
{ret= 2; goto ex;}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(do_format == 1 || do_format == 3 || do_format == 4) {
|
||||||
|
verb= "format";
|
||||||
|
presperf= "formatting";
|
||||||
|
}
|
||||||
if(do_format==2) {
|
if(do_format==2) {
|
||||||
/* Forceful blanking to Sequential Recording for DVD-R[W] and CD-RW */
|
/* Forceful blanking to Sequential Recording for DVD-R[W] and CD-RW */
|
||||||
|
|
||||||
@ -7196,6 +7214,9 @@ set_blank:;
|
|||||||
skin->blank_format_type= 2;
|
skin->blank_format_type= 2;
|
||||||
skin->blank_fast= 1;
|
skin->blank_fast= 1;
|
||||||
skin->preskin->demands_cdrskin_caps= 1;
|
skin->preskin->demands_cdrskin_caps= 1;
|
||||||
|
} else if(strcmp(cpt,"as_needed")==0) {
|
||||||
|
skin->do_blank= 1;
|
||||||
|
skin->blank_format_type= 7;
|
||||||
} else if(strcmp(cpt,"help")==0) {
|
} else if(strcmp(cpt,"help")==0) {
|
||||||
/* is handled in Cdrpreskin_setup() */;
|
/* is handled in Cdrpreskin_setup() */;
|
||||||
continue;
|
continue;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2008.04.27.084704"
|
#define Cdrskin_timestamP "2008.04.27.140144"
|
||||||
|
Loading…
Reference in New Issue
Block a user