Made -minfo stupidly report overwriteable media as "erasable" and "complete"
This commit is contained in:
parent
a318da9463
commit
22905f7349
@ -4847,19 +4847,19 @@ int Cdrskin_minfo(struct CdrskiN *skin, int flag)
|
|||||||
{
|
{
|
||||||
int num_sessions= 0,num_tracks= 0,lba= 0,track_count= 0,total_tracks= 0;
|
int num_sessions= 0,num_tracks= 0,lba= 0,track_count= 0,total_tracks= 0;
|
||||||
int session_no, track_no, pmin, psec, pframe, ret, size= 0, nwa= 0;
|
int session_no, track_no, pmin, psec, pframe, ret, size= 0, nwa= 0;
|
||||||
int last_leadout= 0;
|
int last_leadout= 0, ovwrt_full= 0;
|
||||||
struct burn_drive *drive;
|
struct burn_drive *drive;
|
||||||
struct burn_disc *disc= NULL;
|
struct burn_disc *disc= NULL;
|
||||||
struct burn_session **sessions= NULL;
|
struct burn_session **sessions= NULL;
|
||||||
struct burn_track **tracks;
|
struct burn_track **tracks;
|
||||||
struct burn_toc_entry toc_entry;
|
struct burn_toc_entry toc_entry;
|
||||||
enum burn_disc_status s;
|
enum burn_disc_status s, show_status;
|
||||||
#ifdef Cdrskin_libburn_has_get_profilE
|
#ifdef Cdrskin_libburn_has_get_profilE
|
||||||
char profile_name[80];
|
char profile_name[80];
|
||||||
int pno;
|
int pno;
|
||||||
#endif
|
#endif
|
||||||
char media_class[80];
|
char media_class[80];
|
||||||
int nominal_sessions= 1, ftils= 1, ltils= 1, first_track= 1, read_capacity;
|
int nominal_sessions= 1, ftils= 1, ltils= 1, first_track= 1, read_capacity= 0;
|
||||||
int app_code, cd_info_valid, lra;
|
int app_code, cd_info_valid, lra;
|
||||||
off_t avail;
|
off_t avail;
|
||||||
char disc_type[80], bar_code[9];
|
char disc_type[80], bar_code[9];
|
||||||
@ -4890,18 +4890,26 @@ int Cdrskin_minfo(struct CdrskiN *skin, int flag)
|
|||||||
printf("Mounted media class: %s\n", media_class);
|
printf("Mounted media class: %s\n", media_class);
|
||||||
printf("Mounted media type: %s\n", profile_name);
|
printf("Mounted media type: %s\n", profile_name);
|
||||||
ret= burn_disc_erasable(drive);
|
ret= burn_disc_erasable(drive);
|
||||||
printf("Disk Is %serasable\n", ret ? "" : "not ");
|
printf("Disk Is %serasable\n",
|
||||||
|
(ret || skin->media_is_overwriteable) ? "" : "not ");
|
||||||
|
show_status= s;
|
||||||
|
ret = burn_get_read_capacity(drive, &read_capacity, 0);
|
||||||
|
if(ret <= 0)
|
||||||
|
read_capacity= 0;
|
||||||
|
if(skin->media_is_overwriteable && read_capacity > 0)
|
||||||
|
ovwrt_full= 1;
|
||||||
|
if(ovwrt_full)
|
||||||
|
show_status= BURN_DISC_FULL;
|
||||||
printf("disk status: %s\n",
|
printf("disk status: %s\n",
|
||||||
s == BURN_DISC_BLANK ? "empty" :
|
show_status == BURN_DISC_BLANK ? "empty" :
|
||||||
s == BURN_DISC_APPENDABLE ? "incomplete/appendable" :
|
show_status == BURN_DISC_APPENDABLE ? "incomplete/appendable" :
|
||||||
s == BURN_DISC_FULL ? "complete" :
|
show_status == BURN_DISC_FULL ? "complete" :
|
||||||
"unusable");
|
"unusable");
|
||||||
printf("session status: %s\n",
|
printf("session status: %s\n",
|
||||||
s == BURN_DISC_BLANK ? "empty" :
|
show_status == BURN_DISC_BLANK ? "empty" :
|
||||||
s == BURN_DISC_APPENDABLE ? "empty" :
|
show_status == BURN_DISC_APPENDABLE ? "empty" :
|
||||||
s == BURN_DISC_FULL ? "complete" :
|
show_status == BURN_DISC_FULL ? "complete" :
|
||||||
"unknown");
|
"unknown");
|
||||||
|
|
||||||
|
|
||||||
disc= burn_drive_get_disc(drive);
|
disc= burn_drive_get_disc(drive);
|
||||||
if(disc==NULL || s == BURN_DISC_BLANK) {
|
if(disc==NULL || s == BURN_DISC_BLANK) {
|
||||||
@ -5004,8 +5012,11 @@ int Cdrskin_minfo(struct CdrskiN *skin, int flag)
|
|||||||
if(ret > 0) {
|
if(ret > 0) {
|
||||||
avail= burn_disc_available_space(drive, NULL);
|
avail= burn_disc_available_space(drive, NULL);
|
||||||
size= avail / 2048;
|
size= avail / 2048;
|
||||||
|
if(read_capacity == 0 && skin->media_is_overwriteable)
|
||||||
|
size= 0; /* unformatted overwriteable media */
|
||||||
printf("%5d %5d %-6s %-10d %-10d %-10d\n",
|
printf("%5d %5d %-6s %-10d %-10d %-10d\n",
|
||||||
track_count + 1, nominal_sessions, "Blank",
|
track_count + 1, nominal_sessions,
|
||||||
|
ovwrt_full ? "Data" : "Blank",
|
||||||
nwa, lba + size - 1, size);
|
nwa, lba + size - 1, size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5018,17 +5029,25 @@ int Cdrskin_minfo(struct CdrskiN *skin, int flag)
|
|||||||
if(last_leadout > 0)
|
if(last_leadout > 0)
|
||||||
printf("Last session leadout start address: %-10d\n", last_leadout);
|
printf("Last session leadout start address: %-10d\n", last_leadout);
|
||||||
if(s == BURN_DISC_FULL) {
|
if(s == BURN_DISC_FULL) {
|
||||||
ret = burn_get_read_capacity(drive, &read_capacity, 0);
|
if(read_capacity > 0 && (last_leadout != read_capacity ||
|
||||||
if(ret > 0 && (last_leadout != read_capacity ||
|
|
||||||
pno == 0x08 || pno == 0x10 || pno == 0x40 || pno == 0x50))
|
pno == 0x08 || pno == 0x10 || pno == 0x40 || pno == 0x50))
|
||||||
printf("Read capacity: %-10d\n", read_capacity);
|
printf("Read capacity: %-10d\n", read_capacity);
|
||||||
}
|
}
|
||||||
|
} else if(ovwrt_full) {
|
||||||
|
printf("Last session start address: %-10d\n", nwa);
|
||||||
|
printf("Last session leadout start address: %-10d\n", size);
|
||||||
}
|
}
|
||||||
if(nominal_sessions > num_sessions) {
|
if(nominal_sessions > num_sessions && !skin->media_is_overwriteable) {
|
||||||
printf("Next writable address: %-10d\n", nwa);
|
printf("Next writable address: %-10d\n", nwa);
|
||||||
printf("Remaining writable size: %-10d\n", size);
|
printf("Remaining writable size: %-10d\n", size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(ovwrt_full) {
|
||||||
|
printf("\n");
|
||||||
|
printf("cdrskin: Media is overwriteable. No blanking needed. No reliable track size.\n");
|
||||||
|
printf("cdrskin: Above contrary statements follow cdrecord traditions.\n");
|
||||||
|
}
|
||||||
|
|
||||||
if(disc!=NULL)
|
if(disc!=NULL)
|
||||||
burn_disc_free(disc);
|
burn_disc_free(disc);
|
||||||
if(s == BURN_DISC_EMPTY)
|
if(s == BURN_DISC_EMPTY)
|
||||||
@ -6412,7 +6431,7 @@ check_with_drive:;
|
|||||||
skin->multi= 0;
|
skin->multi= 0;
|
||||||
if(!skin->use_data_image_size)
|
if(!skin->use_data_image_size)
|
||||||
if(skin->verbosity>=Cdrskin_verbose_progresS)
|
if(skin->verbosity>=Cdrskin_verbose_progresS)
|
||||||
fprintf(stderr, "cdrskin: NOTE : -multi cannot leave a recognizeable end mark on this media.\n");
|
fprintf(stderr, "cdrskin: NOTE : -multi cannot leave a recognizable end mark on this media.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6881,7 +6900,7 @@ burn_failed:;
|
|||||||
#ifdef Cdrskin_libburn_has_multI
|
#ifdef Cdrskin_libburn_has_multI
|
||||||
if(skin->media_is_overwriteable && skin->multi) {
|
if(skin->media_is_overwriteable && skin->multi) {
|
||||||
if(skin->grow_overwriteable_iso<=0) {
|
if(skin->grow_overwriteable_iso<=0) {
|
||||||
fprintf(stderr, "cdrskin: FATAL : -multi cannot leave a recognizeable end mark on this media.\n");
|
fprintf(stderr, "cdrskin: FATAL : -multi cannot leave a recognizable end mark on this media.\n");
|
||||||
fprintf(stderr, "cdrskin: HINT : For ISO-9660 images try --grow_overwriteable_iso -multi\n");
|
fprintf(stderr, "cdrskin: HINT : For ISO-9660 images try --grow_overwriteable_iso -multi\n");
|
||||||
{ret= 0; goto ex;}
|
{ret= 0; goto ex;}
|
||||||
}
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2009.10.09.123651"
|
#define Cdrskin_timestamP "2009.10.09.123840"
|
||||||
|
Loading…
Reference in New Issue
Block a user