diff --git a/xorriso/drive_mgt.c b/xorriso/drive_mgt.c index 95ce3d63..9a24e131 100644 --- a/xorriso/drive_mgt.c +++ b/xorriso/drive_mgt.c @@ -941,8 +941,8 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) Xorriso_process_msg_queues(xorriso,0); if(drive_role == 5 && s == BURN_DISC_APPENDABLE) { ret= burn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa); - if(ret == 1) - num_data= nwa; + if(ret != 1) + lba= 0; } else { ret= isoburn_get_min_start_byte(drive, &start_byte, 0); nwa= start_byte / 2048; @@ -968,13 +968,19 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) 1, 0, image_blocks, volume_id); nwa= image_blocks; } else { - nwa= num_data; ret= burn_disc_get_formats(drive, &status, &size, &dummy, &num_formats); - if(ret>0 && status==BURN_FORMAT_IS_FORMATTED) - nwa= size/2048; + if(ret <= 0 || status != BURN_FORMAT_IS_FORMATTED) + size= 0; + if(size <= 0) { + ret= burn_get_read_capacity(drive, &num_data, 0); + if(ret == 1) + size= ((off_t) num_data) * (off_t) 2048; + } + nwa= lba + size / 2048; + num_data= nwa - lba; sprintf(respt, "%13s: %3d , %9d , %9ds , \n", - typetext, 1, num_data, nwa); + typetext, 1, lba, num_data); } if(!(flag&1)) Xorriso_toc_line(xorriso, flag & 8); @@ -1369,6 +1375,11 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag) } for (item= speed_list; item != NULL; item= item->next) { + + sprintf(xorriso->info_text, "speed= %5dk , source= %d", + item->write_speed, item->source); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0); + if(item->profile_loaded >= 0x08 && item->profile_loaded <= 0x0a) is_cd= item->profile_loaded; if(item->profile_loaded > 0) diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index faa7510e..38464ea2 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2011.07.15.083052" +#define Xorriso_timestamP "2011.07.24.193433"