Clearer status messages after reading new volume and after burning
This commit is contained in:
parent
0d5585ba8b
commit
a81aa0e2d1
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2007.11.01.191106"
|
#define Xorriso_timestamP "2007.11.02.143549"
|
||||||
|
@ -187,6 +187,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
|
|||||||
ret= 0; goto ex;
|
ret= 0; goto ex;
|
||||||
}
|
}
|
||||||
xorriso->in_volset_handle= volset;
|
xorriso->in_volset_handle= volset;
|
||||||
|
Xorriso_process_msg_queues(xorriso,0);
|
||||||
|
Xorriso_toc(xorriso, 1);
|
||||||
ret= 1;
|
ret= 1;
|
||||||
ex:
|
ex:
|
||||||
if(ret<0) {
|
if(ret<0) {
|
||||||
@ -275,6 +277,11 @@ int Xorriso_write_growing(struct XorrisO *xorriso, int flag)
|
|||||||
struct burn_drive *drive;
|
struct burn_drive *drive;
|
||||||
struct burn_disc *disc= NULL;
|
struct burn_disc *disc= NULL;
|
||||||
struct burn_write_opts *burn_options;
|
struct burn_write_opts *burn_options;
|
||||||
|
off_t readcounter= 0,writecounter= 0;
|
||||||
|
int num_sessions= 0, num_tracks= 0;
|
||||||
|
struct burn_session **sessions;
|
||||||
|
struct burn_track **tracks;
|
||||||
|
|
||||||
|
|
||||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||||
"on attempt to write", 2);
|
"on attempt to write", 2);
|
||||||
@ -339,6 +346,17 @@ int Xorriso_write_growing(struct XorrisO *xorriso, int flag)
|
|||||||
ret= 0; goto ex;
|
ret= 0; goto ex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sessions= burn_disc_get_sessions(disc, &num_sessions);
|
||||||
|
if(num_sessions>0) {
|
||||||
|
tracks= burn_session_get_tracks(sessions[0], &num_tracks);
|
||||||
|
if(tracks!=NULL && num_tracks>0) {
|
||||||
|
burn_track_get_counters(tracks[0],&readcounter,&writecounter);
|
||||||
|
sprintf(xorriso->info_text, "Read: %d sectors , Written: %d sectors\n",
|
||||||
|
(int) readcounter/2048, (int) writecounter/2048);
|
||||||
|
Xorriso_info(xorriso, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ret= isoburn_activate_session(drive);
|
ret= isoburn_activate_session(drive);
|
||||||
Xorriso_process_msg_queues(xorriso,0);
|
Xorriso_process_msg_queues(xorriso,0);
|
||||||
if(ret<=0) {
|
if(ret<=0) {
|
||||||
@ -348,6 +366,8 @@ int Xorriso_write_growing(struct XorrisO *xorriso, int flag)
|
|||||||
goto ex;
|
goto ex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sprintf(xorriso->info_text, "Writing completed sucessfully.\n\n");
|
||||||
|
Xorriso_info(xorriso, 0);
|
||||||
ret= 1;
|
ret= 1;
|
||||||
ex:;
|
ex:;
|
||||||
if(disc!=NULL)
|
if(disc!=NULL)
|
||||||
@ -741,11 +761,13 @@ int Xorriso_process_msg_queues(struct XorrisO *xorriso, int flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* @param flag bit0=short report form
|
||||||
|
*/
|
||||||
int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
||||||
{
|
{
|
||||||
int num_sessions= 0, num_tracks= 0, lba= 0, nwa= 0, pmin, psec, pframe, ret;
|
int num_sessions= 0, num_tracks= 0, lba= 0, nwa= -1, pmin, psec, pframe, ret;
|
||||||
int track_count= 0, session_no, track_no, profile_no= -1;
|
int track_count= 0, session_no, track_no, profile_no= -1;
|
||||||
int last_track_start= 0, last_track_size= -1;
|
int last_track_start= 0, last_track_size= -1, num_data= 0, is_data;
|
||||||
char profile_name[80],*respt;
|
char profile_name[80],*respt;
|
||||||
struct burn_disc *disc= NULL;
|
struct burn_disc *disc= NULL;
|
||||||
struct burn_session **sessions;
|
struct burn_session **sessions;
|
||||||
@ -766,6 +788,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
|||||||
Xorriso_result(xorriso,0);
|
Xorriso_result(xorriso,0);
|
||||||
sprintf(respt, "Drive type : vendor '%s' product '%s' revision '%s'\n",
|
sprintf(respt, "Drive type : vendor '%s' product '%s' revision '%s'\n",
|
||||||
dinfo[0].vendor, dinfo[0].product, dinfo[0].revision);
|
dinfo[0].vendor, dinfo[0].product, dinfo[0].revision);
|
||||||
|
if(!(flag&1))
|
||||||
Xorriso_result(xorriso,0);
|
Xorriso_result(xorriso,0);
|
||||||
|
|
||||||
sprintf(respt, "Media current: ");
|
sprintf(respt, "Media current: ");
|
||||||
@ -811,6 +834,9 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(ret<=0) {
|
if(ret<=0) {
|
||||||
|
Xorriso_process_msg_queues(xorriso,0);
|
||||||
|
if(flag&1)
|
||||||
|
return(0);
|
||||||
sprintf(xorriso->info_text, "Cannot obtain Table Of Content");
|
sprintf(xorriso->info_text, "Cannot obtain Table Of Content");
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||||
return(0);
|
return(0);
|
||||||
@ -818,12 +844,15 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
|||||||
/* fabricate TOC */
|
/* fabricate TOC */
|
||||||
sprintf(respt, "Media content: session %2d ", 1);
|
sprintf(respt, "Media content: session %2d ", 1);
|
||||||
sprintf(respt+strlen(respt), "track %2d %s lba: %9d\n", 1, "data ", 0);
|
sprintf(respt+strlen(respt), "track %2d %s lba: %9d\n", 1, "data ", 0);
|
||||||
|
if(!(flag&1))
|
||||||
Xorriso_result(xorriso,0);
|
Xorriso_result(xorriso,0);
|
||||||
last_track_start= lba;
|
last_track_start= lba;
|
||||||
sprintf(respt, "Media content: session %2d ", 1);
|
sprintf(respt, "Media content: session %2d ", 1);
|
||||||
sprintf(respt+strlen(respt), "leadout lba: %9d\n", nwa);
|
sprintf(respt+strlen(respt), "leadout lba: %9d\n", nwa);
|
||||||
|
if(!(flag&1))
|
||||||
Xorriso_result(xorriso,0);
|
Xorriso_result(xorriso,0);
|
||||||
last_track_size= nwa;
|
num_data= last_track_size= nwa;
|
||||||
|
num_sessions= 1;
|
||||||
} else {
|
} else {
|
||||||
sessions= burn_disc_get_sessions(disc, &num_sessions);
|
sessions= burn_disc_get_sessions(disc, &num_sessions);
|
||||||
for (session_no= 0; session_no<num_sessions; session_no++) {
|
for (session_no= 0; session_no<num_sessions; session_no++) {
|
||||||
@ -832,6 +861,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
|||||||
continue;
|
continue;
|
||||||
for(track_no= 0; track_no<num_tracks; track_no++) {
|
for(track_no= 0; track_no<num_tracks; track_no++) {
|
||||||
track_count++;
|
track_count++;
|
||||||
|
is_data= 0;
|
||||||
burn_track_get_entry(tracks[track_no], &toc_entry);
|
burn_track_get_entry(tracks[track_no], &toc_entry);
|
||||||
if (toc_entry.extensions_valid & 1) {
|
if (toc_entry.extensions_valid & 1) {
|
||||||
/* DVD extension valid */
|
/* DVD extension valid */
|
||||||
@ -842,8 +872,11 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
|||||||
sprintf(respt, "Media content: session %2d ", session_no+1);
|
sprintf(respt, "Media content: session %2d ", session_no+1);
|
||||||
sprintf(respt+strlen(respt), "track %2d %s lba: %9d\n",
|
sprintf(respt+strlen(respt), "track %2d %s lba: %9d\n",
|
||||||
track_count, ((toc_entry.control&7)<4?"audio":"data "), lba);
|
track_count, ((toc_entry.control&7)<4?"audio":"data "), lba);
|
||||||
|
if(!(flag&1))
|
||||||
Xorriso_result(xorriso,0);
|
Xorriso_result(xorriso,0);
|
||||||
last_track_start= lba;
|
last_track_start= lba;
|
||||||
|
if((toc_entry.control&7)>=4) /* data track */
|
||||||
|
is_data= 1;
|
||||||
}
|
}
|
||||||
burn_session_get_leadout_entry(sessions[session_no], &toc_entry);
|
burn_session_get_leadout_entry(sessions[session_no], &toc_entry);
|
||||||
if (toc_entry.extensions_valid & 1) {
|
if (toc_entry.extensions_valid & 1) {
|
||||||
@ -855,15 +888,22 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
|||||||
}
|
}
|
||||||
sprintf(respt, "Media content: session %2d ", session_no+1);
|
sprintf(respt, "Media content: session %2d ", session_no+1);
|
||||||
sprintf(respt+strlen(respt), "leadout lba: %9d\n", lba);
|
sprintf(respt+strlen(respt), "leadout lba: %9d\n", lba);
|
||||||
|
if(!(flag&1))
|
||||||
Xorriso_result(xorriso,0);
|
Xorriso_result(xorriso,0);
|
||||||
last_track_size= lba - last_track_start;
|
last_track_size= lba - last_track_start;
|
||||||
|
if(is_data)
|
||||||
|
num_data+= last_track_size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
sprintf(respt, "Media summary: %d session%s, %d data blocks\n",
|
||||||
|
num_sessions, (num_sessions==1 ? "" : "s"), num_data);
|
||||||
|
Xorriso_result(xorriso,0);
|
||||||
|
|
||||||
if (s == BURN_DISC_APPENDABLE && nwa>0) {
|
if (s == BURN_DISC_APPENDABLE && nwa!=0) {
|
||||||
ret= isoburn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa);
|
ret= isoburn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa);
|
||||||
if(ret>0) {
|
if(ret>0) {
|
||||||
sprintf(respt, "Media nwa : %ds\n", nwa);
|
sprintf(respt, "Media nwa : %ds\n", nwa);
|
||||||
|
if(!(flag&1))
|
||||||
Xorriso_result(xorriso,0);
|
Xorriso_result(xorriso,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2093,3 +2133,4 @@ ex:;
|
|||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,6 +36,8 @@ int Xorriso_graft_in(struct XorrisO *xorriso, char *disk_path, char *img_path,
|
|||||||
|
|
||||||
int Xorriso__text_to_sev(char *severity_name, int *severity_number,int flag);
|
int Xorriso__text_to_sev(char *severity_name, int *severity_number,int flag);
|
||||||
|
|
||||||
|
/* @param flag bit0=short report form
|
||||||
|
*/
|
||||||
int Xorriso_toc(struct XorrisO *xorriso, int flag);
|
int Xorriso_toc(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
int Xorriso_show_devices(struct XorrisO *xorriso, int flag);
|
int Xorriso_show_devices(struct XorrisO *xorriso, int flag);
|
||||||
|
Loading…
Reference in New Issue
Block a user