New option -list_formats
This commit is contained in:
parent
0f8e6f24db
commit
6bc2d3e0a3
@ -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 XORRISO 1 "May, 12, 2008"
|
.TH XORRISO 1 "May, 13, 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:
|
||||||
@ -974,6 +974,12 @@ quite unrealistic. Do not conclude success or failure from the
|
|||||||
reported percentages. Formatting was successful if no SORRY event
|
reported percentages. Formatting was successful if no SORRY event
|
||||||
or worse occured.
|
or worse occured.
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-list_formats\fR
|
||||||
|
Put out a list of format descriptors as reported by the output drive for
|
||||||
|
the current media. The list gives a "Format idx" number, a MMC profile
|
||||||
|
code (like "00h" or "26h"), the announced size in blocks (like "2236704s")
|
||||||
|
and the same size in MiB.
|
||||||
|
.TP
|
||||||
.B Settings for data insertion:
|
.B Settings for data insertion:
|
||||||
.TP
|
.TP
|
||||||
\fB\-not_mgt\fR code[:code[...]]
|
\fB\-not_mgt\fR code[:code[...]]
|
||||||
|
@ -9036,7 +9036,9 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
|||||||
"",
|
"",
|
||||||
" -devices Show list of available optical drives and their addresses.",
|
" -devices Show list of available optical drives and their addresses.",
|
||||||
"",
|
"",
|
||||||
" -toc Show media specific table of content. (MMC, not ISO 9660)",
|
" -toc Show media specific table of content (sessions).",
|
||||||
|
"",
|
||||||
|
" -list_formats Show media specific list of format descriptors.",
|
||||||
"",
|
"",
|
||||||
" -print-size Print the foreseeable consumption by next -commit.",
|
" -print-size Print the foreseeable consumption by next -commit.",
|
||||||
"",
|
"",
|
||||||
@ -9381,6 +9383,16 @@ int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Option -list_formats */
|
||||||
|
int Xorriso_option_list_formats(struct XorrisO *xorriso, int flag)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret= Xorriso_list_formats(xorriso, 0);
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Option -load session|track|sbsector value */
|
/* Option -load session|track|sbsector value */
|
||||||
/* @return <=0 error , 1 success, 2 revoked by -reassure
|
/* @return <=0 error , 1 success, 2 revoked by -reassure
|
||||||
*/
|
*/
|
||||||
@ -11122,6 +11134,9 @@ next_command:;
|
|||||||
(*idx)++;
|
(*idx)++;
|
||||||
ret= Xorriso_option_joliet(xorriso, arg1, 0);
|
ret= Xorriso_option_joliet(xorriso, arg1, 0);
|
||||||
|
|
||||||
|
} else if(strcmp(cmd,"list_formats")==0) {
|
||||||
|
ret= Xorriso_option_list_formats(xorriso, 0);
|
||||||
|
|
||||||
} else if(strcmp(cmd,"load")==0) {
|
} else if(strcmp(cmd,"load")==0) {
|
||||||
(*idx)+= 2;
|
(*idx)+= 2;
|
||||||
ret= Xorriso_option_load(xorriso, arg1, arg2, 0);
|
ret= Xorriso_option_load(xorriso, arg1, arg2, 0);
|
||||||
|
@ -306,6 +306,15 @@ int Xorriso_option_history(struct XorrisO *xorriso, char *line, int flag);
|
|||||||
/* Option -joliet "on"|"off" */
|
/* Option -joliet "on"|"off" */
|
||||||
int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag);
|
int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag);
|
||||||
|
|
||||||
|
/* Option -list_formats */
|
||||||
|
int Xorriso_option_list_formats(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
|
/* Option -load session|track|sbsector value */
|
||||||
|
/* @return <=0 error , 1 success, 2 revoked by -reassure
|
||||||
|
*/
|
||||||
|
int Xorriso_option_load(struct XorrisO *xorriso, char *adr_mode,
|
||||||
|
char *adr_value, int flag);
|
||||||
|
|
||||||
/* Option -logfile */
|
/* Option -logfile */
|
||||||
int Xorriso_option_logfile(struct XorrisO *xorriso, char *channel,
|
int Xorriso_option_logfile(struct XorrisO *xorriso, char *channel,
|
||||||
char *fileadr, int flag);
|
char *fileadr, int flag);
|
||||||
@ -417,7 +426,8 @@ int Xorriso_option_rmi(struct XorrisO *xorriso, int argc, char **argv,
|
|||||||
int *idx, int flag);
|
int *idx, int flag);
|
||||||
|
|
||||||
/* Option -rollback */
|
/* Option -rollback */
|
||||||
/* @return <=0 error , 1 success, 2 revoked by -reassure
|
/* @param flag bit0= do not -reassure
|
||||||
|
@return <=0 error , 1 success, 2 revoked by -reassure
|
||||||
*/
|
*/
|
||||||
int Xorriso_option_rollback(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_rollback(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
|
@ -355,12 +355,14 @@ Bug fixes towards xorriso-0.1.2.pl00:
|
|||||||
</DD>
|
</DD>
|
||||||
<DD>Enhancements towards stable version 0.1.4.pl00:
|
<DD>Enhancements towards stable version 0.1.4.pl00:
|
||||||
<UL>
|
<UL>
|
||||||
<LI>New option -error_behavior with a first occasion 'image_loading'</LI>
|
<LI>Support for BD-RE</LI>
|
||||||
<LI>New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m</LI>
|
<LI>New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m</LI>
|
||||||
<LI>Emulated -toc on overwriteable media</LI>
|
<LI>Emulated -toc on overwriteable media, new -toc layout with volume id</LI>
|
||||||
<LI>New TOC layout with volume id</LI>
|
|
||||||
<LI>New option -rom_toc_scan for read-only drive problems</LI>
|
<LI>New option -rom_toc_scan for read-only drive problems</LI>
|
||||||
<LI>New option -load makes alternative sessions accessible</LI>
|
<LI>New option -load makes alternative sessions accessible</LI>
|
||||||
|
<LI>New option -error_behavior with a first occasion 'image_loading'</LI>
|
||||||
|
<LI>New -blank and -format option 'as_needed'</LI>
|
||||||
|
<LI>New option -list_formats</LI>
|
||||||
<!-- <LI>- none yet -</LI> -->
|
<!-- <LI>- none yet -</LI> -->
|
||||||
</UL>
|
</UL>
|
||||||
</DD>
|
</DD>
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2008.05.12.193642"
|
#define Xorriso_timestamP "2008.05.13.115901"
|
||||||
|
@ -1060,7 +1060,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
|||||||
burn_track_get_counters(tracks[0],&readcounter,&writecounter);
|
burn_track_get_counters(tracks[0],&readcounter,&writecounter);
|
||||||
xorriso->session_blocks= (int) (writecounter/ (off_t) 2048);
|
xorriso->session_blocks= (int) (writecounter/ (off_t) 2048);
|
||||||
sprintf(xorriso->info_text,
|
sprintf(xorriso->info_text,
|
||||||
"ISO image produced: %d sectors. Written to media: %d sectors at LBA %d\n",
|
"ISO image produced: %d sectors\nWritten to media : %d sectors at LBA %d\n",
|
||||||
(int) (readcounter/ (off_t) 2048),
|
(int) (readcounter/ (off_t) 2048),
|
||||||
xorriso->session_blocks, xorriso->session_lba);
|
xorriso->session_blocks, xorriso->session_lba);
|
||||||
Xorriso_info(xorriso, 0);
|
Xorriso_info(xorriso, 0);
|
||||||
@ -2667,6 +2667,7 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
|
|||||||
double percent = 1.0;
|
double percent = 1.0;
|
||||||
int current_profile;
|
int current_profile;
|
||||||
char current_profile_name[80];
|
char current_profile_name[80];
|
||||||
|
time_t start_time;
|
||||||
char mode_names[4][80]= {"all", "fast", "deformat", "deformat_quickest"};
|
char mode_names[4][80]= {"all", "fast", "deformat", "deformat_quickest"};
|
||||||
|
|
||||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||||
@ -2727,12 +2728,14 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
|
|||||||
burn_disc_erase(drive, (flag&1));
|
burn_disc_erase(drive, (flag&1));
|
||||||
else
|
else
|
||||||
isoburn_disc_erase(drive, (flag&1));
|
isoburn_disc_erase(drive, (flag&1));
|
||||||
|
start_time= time(0);
|
||||||
usleep(1000000);
|
usleep(1000000);
|
||||||
while (burn_drive_get_status(drive, &p) != BURN_DRIVE_IDLE) {
|
while (burn_drive_get_status(drive, &p) != BURN_DRIVE_IDLE) {
|
||||||
Xorriso_process_msg_queues(xorriso,0);
|
Xorriso_process_msg_queues(xorriso,0);
|
||||||
if(p.sectors>0 && p.sector>=0) /* display 1 to 99 percent */
|
if(p.sectors>0 && p.sector>=0) /* display 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;
|
||||||
sprintf(xorriso->info_text, "Blanking ( %.1f%% done )", percent);
|
sprintf(xorriso->info_text, "Blanking ( %.1f%% done in %d seconds )",
|
||||||
|
percent, (int) (time(0) - start_time));
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
|
||||||
usleep(1000000);
|
usleep(1000000);
|
||||||
}
|
}
|
||||||
@ -2818,14 +2821,6 @@ int Xorriso_format_media(struct XorrisO *xorriso, int flag)
|
|||||||
Xorriso_info(xorriso, 0);
|
Xorriso_info(xorriso, 0);
|
||||||
burn_disc_format(drive, size, mode_flag);
|
burn_disc_format(drive, size, mode_flag);
|
||||||
|
|
||||||
#ifdef NIX
|
|
||||||
|
|
||||||
/* <<< too boring */
|
|
||||||
ret= Xorriso_pacifier_loop(xorriso, drive, 0);
|
|
||||||
if(ret<=0)
|
|
||||||
return(ret);
|
|
||||||
#else
|
|
||||||
|
|
||||||
start_time= time(0);
|
start_time= time(0);
|
||||||
usleep(1000000);
|
usleep(1000000);
|
||||||
while (burn_drive_get_status(drive, &p) != BURN_DRIVE_IDLE) {
|
while (burn_drive_get_status(drive, &p) != BURN_DRIVE_IDLE) {
|
||||||
@ -2838,8 +2833,6 @@ int Xorriso_format_media(struct XorrisO *xorriso, int flag)
|
|||||||
usleep(1000000);
|
usleep(1000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* ! NIX */
|
|
||||||
|
|
||||||
Xorriso_process_msg_queues(xorriso,0);
|
Xorriso_process_msg_queues(xorriso,0);
|
||||||
sprintf(xorriso->info_text, "Formatting done\n");
|
sprintf(xorriso->info_text, "Formatting done\n");
|
||||||
Xorriso_info(xorriso,0);
|
Xorriso_info(xorriso,0);
|
||||||
@ -2901,6 +2894,73 @@ int Xorriso_blank_as_needed(struct XorrisO *xorriso, int flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* @return <=0 error, 1 success
|
||||||
|
*/
|
||||||
|
int Xorriso_list_formats(struct XorrisO *xorriso, int flag)
|
||||||
|
{
|
||||||
|
int ret, i, status, num_formats, profile_no, type;
|
||||||
|
off_t size;
|
||||||
|
unsigned dummy;
|
||||||
|
char status_text[80], profile_name[90], *respt;
|
||||||
|
struct burn_drive_info *dinfo;
|
||||||
|
struct burn_drive *drive;
|
||||||
|
|
||||||
|
respt= xorriso->result_line;
|
||||||
|
|
||||||
|
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||||
|
"on attempt to obtain format descriptor list", 2);
|
||||||
|
if(ret<=0)
|
||||||
|
return(0);
|
||||||
|
|
||||||
|
ret = burn_disc_get_formats(drive, &status, &size, &dummy,
|
||||||
|
&num_formats);
|
||||||
|
if(ret <= 0) {
|
||||||
|
sprintf(xorriso->info_text, "Cannot obtain format list info");
|
||||||
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||||
|
ret= 2; goto ex;
|
||||||
|
}
|
||||||
|
ret= Xorriso_toc(xorriso, 3);
|
||||||
|
if(ret<=0)
|
||||||
|
goto ex;
|
||||||
|
ret= burn_disc_get_profile(drive, &profile_no, profile_name);
|
||||||
|
if(ret<=0)
|
||||||
|
goto ex;
|
||||||
|
|
||||||
|
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");
|
||||||
|
sprintf(respt, "Format status: %s\n", status_text);
|
||||||
|
Xorriso_result(xorriso,0);
|
||||||
|
|
||||||
|
for (i= 0; i < num_formats; i++) {
|
||||||
|
ret= burn_disc_get_format_descr(drive, i, &type, &size, &dummy);
|
||||||
|
if (ret <= 0)
|
||||||
|
continue;
|
||||||
|
sprintf(respt, "Format idx %-2d: %2.2Xh , %.fs , %.1f MiB\n",
|
||||||
|
i, type, ((double) size) / 2048.0, ((double) size) / 1024.0/1024.0);
|
||||||
|
Xorriso_result(xorriso,0);
|
||||||
|
}
|
||||||
|
ret= 1;
|
||||||
|
ex:;
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int Xorriso_cannot_create_iter(struct XorrisO *xorriso, int iso_error,int flag)
|
int Xorriso_cannot_create_iter(struct XorrisO *xorriso, int iso_error,int flag)
|
||||||
{
|
{
|
||||||
Xorriso_process_msg_queues(xorriso,0);
|
Xorriso_process_msg_queues(xorriso,0);
|
||||||
|
@ -74,6 +74,10 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag);
|
|||||||
*/
|
*/
|
||||||
int Xorriso_format_media(struct XorrisO *xorriso, int flag);
|
int Xorriso_format_media(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
|
/* @return <=0 error, 1 success
|
||||||
|
*/
|
||||||
|
int Xorriso_list_formats(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
/* @param flag bit2= formatting rather than blanking
|
/* @param flag bit2= formatting rather than blanking
|
||||||
@return 0=failure, did not touch media , -1=failure, altered media
|
@return 0=failure, did not touch media , -1=failure, altered media
|
||||||
1=success, altered media , 2=success, did not touch media
|
1=success, altered media , 2=success, did not touch media
|
||||||
|
Loading…
Reference in New Issue
Block a user