Option -atip now reports Product Id and Manufacturer for most CD, DVD, BD types

This commit is contained in:
Thomas Schmitt 2009-09-04 20:22:54 +00:00
parent 557299d350
commit e968e81409
2 changed files with 22 additions and 4 deletions

View File

@ -4840,7 +4840,8 @@ int Cdrskin_atip(struct CdrskiN *skin, int flag)
enum burn_disc_status s; enum burn_disc_status s;
struct burn_drive *drive; struct burn_drive *drive;
int profile_number= 0; int profile_number= 0;
char profile_name[80], *manuf= NULL; char profile_name[80], *manuf= NULL, *media_code1= NULL, *media_code2= NULL;
char *book_type= NULL, *product_id= NULL;
ClN(printf("cdrskin: pseudo-atip on drive %d\n",skin->driveno)); ClN(printf("cdrskin: pseudo-atip on drive %d\n",skin->driveno));
ret= Cdrskin_grab_drive(skin,0); ret= Cdrskin_grab_drive(skin,0);
@ -4974,12 +4975,13 @@ int Cdrskin_atip(struct CdrskiN *skin, int flag)
scdbackup will learn to interpret cdrskin's DVD messages but the scdbackup will learn to interpret cdrskin's DVD messages but the
current stable version needs to believe it is talking to its own current stable version needs to believe it is talking to its own
growisofs_wrapper. So this is an emulation of an emulator. growisofs_wrapper. So this is an emulation of an emulator.
The real book type is available meanwhile. But that one is not intended.
*/ */
printf("book type: %s (emulated booktype)\n", profile_name); printf("book type: %s (emulated booktype)\n", profile_name);
if(profile_number==0x13) /* DVD-RW */ if(profile_number==0x13) /* DVD-RW */
printf("cdrskin: message for sdvdbackup: \"(growisofs mode Restricted Overwrite)\"\n"); printf("cdrskin: message for sdvdbackup: \"(growisofs mode Restricted Overwrite)\"\n");
} else if(strstr(profile_name,"BD")==profile_name) { } else if(strstr(profile_name,"BD")==profile_name) {
printf("Mounted Media: %2.2Xh, %s\n", profile_number, profile_name); printf("Mounted Media: %2.2Xh, %s\n", profile_number, profile_name);
} else { } else {
printf("ATIP info from disk:\n"); printf("ATIP info from disk:\n");
if(burn_disc_erasable(drive)) { if(burn_disc_erasable(drive)) {
@ -5011,6 +5013,14 @@ int Cdrskin_atip(struct CdrskiN *skin, int flag)
printf(" 1T speed low: %.f 1T speed high: %.f\n",x_speed_min,x_speed_max); printf(" 1T speed low: %.f 1T speed high: %.f\n",x_speed_min,x_speed_max);
} }
ret= burn_get_media_product_id(drive, &product_id, &media_code1, &media_code2,
&book_type, 0);
if(ret > 0 && profile_number != 0x09 && profile_number != 0x0A &&
manuf == NULL && media_code1 != NULL && media_code2 != 0) {
manuf= burn_guess_manufacturer(profile_number, media_code1, media_code2, 0);
}
if(product_id != NULL)
printf("Product Id: %s\n", product_id);
if(manuf != NULL) if(manuf != NULL)
printf("Manufacturer: %s\n", manuf); printf("Manufacturer: %s\n", manuf);
@ -5021,6 +5031,14 @@ int Cdrskin_atip(struct CdrskiN *skin, int flag)
ex:; ex:;
if(manuf != NULL) if(manuf != NULL)
free(manuf); free(manuf);
if(media_code1 != NULL)
free(media_code1);
if(media_code2 != NULL)
free(media_code2);
if(book_type != NULL)
free(book_type);
if(product_id != NULL)
free(product_id);
Cdrskin_release_drive(skin,0); Cdrskin_release_drive(skin,0);
/* A61227 : /* A61227 :

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2009.09.04.202255" #define Cdrskin_timestamP "2009.09.04.202357"