New option --list_formats
This commit is contained in:
parent
d6fde26824
commit
015bc00a91
@ -345,7 +345,7 @@ audio track. Same is done for suffix ".au" and SUN Audio.
|
|||||||
Option -audio may be used only with CD media and not with DVD.
|
Option -audio may be used only with CD media and not with DVD.
|
||||||
.TP
|
.TP
|
||||||
.BI blank= type
|
.BI blank= type
|
||||||
Blank a CD-RW, a DVD-RW, or format a DVD+/-RW.
|
Blank a CD-RW, a DVD-RW, or format a DVD-RW, DVD+RW or DVD-RAM.
|
||||||
This is combinable with burning in the same run of cdrskin.
|
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
|
||||||
@ -1063,6 +1063,16 @@ Try to ignore any signals rather than to abort the program. This is not a
|
|||||||
very good idea. You might end up waiting a very long time for cdrskin
|
very good idea. You might end up waiting a very long time for cdrskin
|
||||||
to finish.
|
to finish.
|
||||||
.TP
|
.TP
|
||||||
|
.BI \--list_formats
|
||||||
|
List the available format descriptors as reported by the drive for the
|
||||||
|
loaded media. Each descriptor line begins with "Format idx" and the
|
||||||
|
descriptor's list index, followed by a ":", the format type, the number
|
||||||
|
of payload blocks and that same number converted to MiB.
|
||||||
|
.br
|
||||||
|
The meaning of the format types is defined by the MMC standard
|
||||||
|
with command FORMAT UNIT. A user will more be interested in the
|
||||||
|
sizes than in the types.
|
||||||
|
.TP
|
||||||
.BI modesty_on_drive= <mode>[:min_percent=<num>][:max_percent=<num>]
|
.BI modesty_on_drive= <mode>[:min_percent=<num>][:max_percent=<num>]
|
||||||
Mode 1 keeps the program from trying to write to the burner drive while its
|
Mode 1 keeps the program from trying to write to the burner drive while its
|
||||||
buffer is in danger to be filled by more than max_percent. If this filling is
|
buffer is in danger to be filled by more than max_percent. If this filling is
|
||||||
|
@ -2654,6 +2654,7 @@ set_dev:;
|
|||||||
" --grow_overwriteable_iso emulate multi-session on media like DVD+RW\n");
|
" --grow_overwriteable_iso emulate multi-session on media like DVD+RW\n");
|
||||||
printf(
|
printf(
|
||||||
" --ignore_signals try to ignore any signals rather than to abort\n");
|
" --ignore_signals try to ignore any signals rather than to abort\n");
|
||||||
|
printf(" --list_formats list format descriptors for loaded media.\n");
|
||||||
printf(" --list_ignored_options list all ignored cdrecord options.\n");
|
printf(" --list_ignored_options list all ignored cdrecord options.\n");
|
||||||
#ifdef Cdrskin_libburn_has_set_waitinG
|
#ifdef Cdrskin_libburn_has_set_waitinG
|
||||||
printf(" modesty_on_drive=<options> no writing into full drive buffer\n");
|
printf(" modesty_on_drive=<options> no writing into full drive buffer\n");
|
||||||
@ -3115,6 +3116,7 @@ struct CdrskiN {
|
|||||||
char msifile[Cdrskin_strleN];
|
char msifile[Cdrskin_strleN];
|
||||||
|
|
||||||
int do_atip;
|
int do_atip;
|
||||||
|
int do_list_formats;
|
||||||
|
|
||||||
int do_blank;
|
int do_blank;
|
||||||
int blank_fast;
|
int blank_fast;
|
||||||
@ -3295,6 +3297,7 @@ int Cdrskin_new(struct CdrskiN **skin, struct CdrpreskiN *preskin, int flag)
|
|||||||
o->do_msinfo= 0;
|
o->do_msinfo= 0;
|
||||||
o->msifile[0]= 0;
|
o->msifile[0]= 0;
|
||||||
o->do_atip= 0;
|
o->do_atip= 0;
|
||||||
|
o->do_list_formats= 0;
|
||||||
o->do_blank= 0;
|
o->do_blank= 0;
|
||||||
o->blank_fast= 0;
|
o->blank_fast= 0;
|
||||||
o->no_blank_appendable= 0;
|
o->no_blank_appendable= 0;
|
||||||
@ -4858,6 +4861,73 @@ ex:;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Perform --list_formats
|
||||||
|
@param flag Bitfield for control purposes:
|
||||||
|
@return <=0 error, 1 success
|
||||||
|
*/
|
||||||
|
int Cdrskin_list_formats(struct CdrskiN *skin, int flag)
|
||||||
|
{
|
||||||
|
struct burn_drive *drive;
|
||||||
|
int ret, i, status, num_formats, profile_no, type;
|
||||||
|
off_t size;
|
||||||
|
unsigned dummy;
|
||||||
|
char status_text[80], profile_name[90];
|
||||||
|
|
||||||
|
ret= Cdrskin_grab_drive(skin,0);
|
||||||
|
if(ret<=0)
|
||||||
|
return(ret);
|
||||||
|
drive= skin->drives[skin->driveno].drive;
|
||||||
|
|
||||||
|
ret = burn_disc_get_formats(drive, &status, &size, &dummy,
|
||||||
|
&num_formats);
|
||||||
|
if(ret <= 0) {
|
||||||
|
fprintf(stderr, "cdrskin: SORRY: Cannot obtain format list info\n");
|
||||||
|
ret= 2; goto ex;
|
||||||
|
}
|
||||||
|
ret= burn_disc_get_profile(drive, &profile_no, profile_name);
|
||||||
|
printf("Media current: ");
|
||||||
|
if(profile_no > 0 && ret > 0) {
|
||||||
|
if(profile_name[0])
|
||||||
|
printf("%s\n", profile_name);
|
||||||
|
else
|
||||||
|
printf("%4.4Xh\n", profile_no);
|
||||||
|
} else
|
||||||
|
printf("is not recognizable\n");
|
||||||
|
|
||||||
|
if(status == BURN_FORMAT_IS_UNFORMATTED)
|
||||||
|
sprintf(status_text, "unformatted, up to %.1f MiB",
|
||||||
|
((double) size) / 1024.0 / 1024.0);
|
||||||
|
else if(status == BURN_FORMAT_IS_FORMATTED) {
|
||||||
|
if(profile_no==0x12 || profile_no==0x13 || profile_no==0x1a ||
|
||||||
|
profile_no==0x43)
|
||||||
|
sprintf(status_text, "formatted, with %.1f MiB",
|
||||||
|
((double) size) / 1024.0 / 1024.0);
|
||||||
|
else
|
||||||
|
sprintf(status_text, "written, with %.1f MiB",
|
||||||
|
((double) size) / 1024.0 / 1024.0);
|
||||||
|
} else if(status == BURN_FORMAT_IS_UNKNOWN) {
|
||||||
|
if (profile_no > 0)
|
||||||
|
sprintf(status_text, "intermediate or unknown");
|
||||||
|
else
|
||||||
|
sprintf(status_text, "no media or unknown media");
|
||||||
|
} else
|
||||||
|
sprintf(status_text, "illegal status according to MMC-5");
|
||||||
|
printf("Format status: %s\n", status_text);
|
||||||
|
|
||||||
|
for (i = 0; i < num_formats; i++) {
|
||||||
|
ret= burn_disc_get_format_descr(drive, i, &type, &size, &dummy);
|
||||||
|
if (ret <= 0)
|
||||||
|
continue;
|
||||||
|
printf("Format idx %-2d: %2.2Xh , %.fs , %.1f MiB\n",
|
||||||
|
i, type, ((double) size) / 2048.0, ((double) size) / 1024.0/1024.0);
|
||||||
|
}
|
||||||
|
ret= 1;
|
||||||
|
ex:;
|
||||||
|
Cdrskin_release_drive(skin,0);
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef Cdrskin_extra_leaN
|
#ifndef Cdrskin_extra_leaN
|
||||||
|
|
||||||
/* A70324: proposal by Eduard Bloch */
|
/* A70324: proposal by Eduard Bloch */
|
||||||
@ -7288,6 +7358,9 @@ gracetime_equals:;
|
|||||||
} else if(strcmp(argv[i],"-isosize")==0) {
|
} else if(strcmp(argv[i],"-isosize")==0) {
|
||||||
skin->use_data_image_size= 1;
|
skin->use_data_image_size= 1;
|
||||||
|
|
||||||
|
} else if(strcmp(argv[i],"--list_formats")==0) {
|
||||||
|
skin->do_list_formats= 1;
|
||||||
|
|
||||||
} else if(strcmp(argv[i],"--list_ignored_options")==0) {
|
} else if(strcmp(argv[i],"--list_ignored_options")==0) {
|
||||||
char line[80];
|
char line[80];
|
||||||
|
|
||||||
@ -7936,6 +8009,13 @@ int Cdrskin_run(struct CdrskiN *skin, int *exit_value, int flag)
|
|||||||
if(ret<=0)
|
if(ret<=0)
|
||||||
{*exit_value= 7; goto ex;}
|
{*exit_value= 7; goto ex;}
|
||||||
}
|
}
|
||||||
|
if(skin->do_list_formats) {
|
||||||
|
if(skin->n_drives<=0)
|
||||||
|
{*exit_value= 14; goto no_drive;}
|
||||||
|
ret= Cdrskin_list_formats(skin, 0);
|
||||||
|
if(ret<=0)
|
||||||
|
{*exit_value= 14; goto ex;}
|
||||||
|
}
|
||||||
if(skin->do_blank) {
|
if(skin->do_blank) {
|
||||||
if(skin->n_drives<=0)
|
if(skin->n_drives<=0)
|
||||||
{*exit_value= 8; goto no_drive;}
|
{*exit_value= 8; goto no_drive;}
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2008.04.22.161139"
|
#define Cdrskin_timestamP "2008.04.22.200949"
|
||||||
|
Loading…
Reference in New Issue
Block a user