|
|
|
@ -557,13 +557,23 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
|
|
|
|
sprintf(respt+strlen(respt), "is not recognizable\n");
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
|
|
|
|
|
if(s != BURN_DISC_FULL && s!= BURN_DISC_APPENDABLE)
|
|
|
|
|
if(s != BURN_DISC_FULL && s != BURN_DISC_APPENDABLE)
|
|
|
|
|
return(1);
|
|
|
|
|
|
|
|
|
|
disc= burn_drive_get_disc(drive);
|
|
|
|
|
if (disc==NULL) {
|
|
|
|
|
Xorriso_process_msg_queues(xorriso,0);
|
|
|
|
|
|
|
|
|
|
#define Xorriso_with_isoburn_get_min_start_bytE 1
|
|
|
|
|
#ifdef Xorriso_with_isoburn_get_min_start_bytE
|
|
|
|
|
{ off_t start_byte= 0;
|
|
|
|
|
ret= isoburn_get_min_start_byte(drive, &start_byte, 0);
|
|
|
|
|
nwa= start_byte / 2048;
|
|
|
|
|
}
|
|
|
|
|
#else
|
|
|
|
|
ret= isoburn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
if(ret<=0) {
|
|
|
|
|
sprintf(xorriso->info_text, "Cannot obtain Table Of Content");
|
|
|
|
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
|
|
|
@ -611,17 +621,15 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
|
|
|
|
sprintf(respt+strlen(respt), "leadout lba: %9d\n", lba);
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
last_track_size= lba - last_track_start;
|
|
|
|
|
if (s == BURN_DISC_APPENDABLE) {
|
|
|
|
|
ret= isoburn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa);
|
|
|
|
|
if(ret<=0)
|
|
|
|
|
nwa= 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (s == BURN_DISC_APPENDABLE && nwa>0) {
|
|
|
|
|
sprintf(respt, "Media nwa : %ds\n", nwa);
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
ret= isoburn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa);
|
|
|
|
|
if(ret>0) {
|
|
|
|
|
sprintf(respt, "Media nwa : %ds\n", nwa);
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (disc!=NULL)
|
|
|
|
|