Trying to fix bugs about BD-RE, macro for simulating BD-RE on DVD-RAM

This commit is contained in:
Thomas Schmitt 2008-04-10 21:16:07 +00:00
parent 8c19c4c260
commit 1047bee0ec
4 changed files with 30 additions and 5 deletions

View File

@ -3052,6 +3052,8 @@ ex:;
static double Cdrskin_cd_speed_factoR= 150.0*1024.0;
/** The DVD payload speed factor for reporting progress: 1x */
static double Cdrskin_dvd_speed_factoR= 1385000;
/** The BD payload speed factor for reporting progress: 1x */
static double Cdrskin_bd_speed_factoR= 4495625;
/** The effective payload speed factor for reporting progress */
static double Cdrskin_speed_factoR= 150.0*1024.0;
@ -3061,6 +3063,7 @@ static double Cdrskin_speed_factoR= 150.0*1024.0;
*/
static double Cdrskin_libburn_cd_speed_factoR= 176.4;
static double Cdrskin_libburn_dvd_speed_factoR= 1385.0;
static double Cdrskin_libburn_bd_speed_factoR= 4495.625;
/* The effective speed conversion factor for burn_drive_set_speed() */
static double Cdrskin_libburn_speed_factoR= 176.4;
@ -3070,6 +3073,7 @@ static double Cdrskin_libburn_speed_factoR= 176.4;
*/
static double Cdrskin_libburn_cd_speed_addoN= 40.0;
static double Cdrskin_libburn_dvd_speed_addoN= 1.0; /*poor accuracy with 2.4x*/
static double Cdrskin_libburn_bd_speed_addoN= 1.0;
static double Cdrskin_libburn_speed_addoN = 40.0;
@ -3704,6 +3708,10 @@ int Cdrskin_grab_drive(struct CdrskiN *skin, int flag)
Cdrskin_speed_factoR= Cdrskin_dvd_speed_factoR;
Cdrskin_libburn_speed_factoR= Cdrskin_libburn_dvd_speed_factoR;
Cdrskin_libburn_speed_addoN= Cdrskin_libburn_dvd_speed_addoN;
} else if(strstr(profile_name,"BD")==profile_name) {
Cdrskin_speed_factoR= Cdrskin_bd_speed_factoR;
Cdrskin_libburn_speed_factoR= Cdrskin_libburn_bd_speed_factoR;
Cdrskin_libburn_speed_addoN= Cdrskin_libburn_bd_speed_addoN;
}
}
#endif /* Cdrskin_libburn_has_get_profilE */
@ -4473,7 +4481,8 @@ int Cdrskin_checkdrive(struct CdrskiN *skin, char *profile_name, int flag)
if(drive_info->sao_block_types & BURN_BLOCK_SAO)
printf(" SAO");
if((drive_info->raw_block_types & BURN_BLOCK_RAW96R) &&
strstr(profile_name,"DVD")!=profile_name)
strstr(profile_name,"DVD")!=profile_name &&
strstr(profile_name,"BD")!=profile_name)
printf(" RAW/RAW96R");
printf("\n");

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2008.04.08.133452"
#define Cdrskin_timestamP "2008.04.10.211529"

View File

@ -46,6 +46,9 @@ extern struct libdax_msgs *libdax_messenger;
static struct burn_drive drive_array[255];
static int drivetop = -1;
/* ts A80410 : in init.c */
extern int burn_support_untested_profiles;
/* ts A61021 : the unspecific part of sg.c:enumerate_common()
*/
int burn_setup_drive(struct burn_drive *d, char *fname)
@ -2167,8 +2170,10 @@ int burn_disc_get_multi_caps(struct burn_drive *d, enum burn_write_types wt,
wt == BURN_WRITE_TAO)
o->might_simulate = 1;
} else if (d->current_profile == 0x12 || d->current_profile == 0x13 ||
d->current_profile == 0x1a) {
/* DVD-RAM, overwriteable DVD-RW, DVD+RW */
d->current_profile == 0x1a ||
(d->current_profile == 0x43 &&
burn_support_untested_profiles)) {
/* DVD-RAM, overwriteable DVD-RW, DVD+RW, BD-RE */
o->start_adr = 1;
ret = burn_disc_get_formats(d, &status, &size, &dummy,
&num_formats);

View File

@ -54,6 +54,10 @@ extern struct libdax_msgs *libdax_messenger;
/* ts A70306 */
#define Libburn_support_dvd_plus_R 1
/* ts A80410 : <<< Dangerous experiment: Pretend that DVD-RAM is BD-RE
#define Libburn_dvd_ram_as_bd_rE yes
*/
/* DVD progress report:
ts A61219 : It seems to work with a used (i.e. thoroughly formatted) DVD+RW.
Error messages of class DEBUG appear because of inability to
@ -2107,9 +2111,16 @@ static int mmc_get_configuration_al(struct burn_drive *d, int *alloc_len)
d->current_is_supported_profile = 1;
#endif
#ifdef Libburn_support_dvd_raM
if (cp == 0x12 || (cp == 0x43 && burn_support_untested_profiles))
if (cp == 0x12 || (cp == 0x43 && burn_support_untested_profiles)) {
/* DVD-RAM , BD-RE */
d->current_is_supported_profile = 1;
#ifdef Libburn_dvd_ram_as_bd_rE
cp = d->current_profile = 0x43;
strcpy(d->current_profile_text, mmc_obtain_profile_name(cp));
#endif
}
#endif
#ifdef Libburn_support_dvd_r_seQ
if (cp == 0x10 || cp == 0x11 || cp == 0x14) /* DVD-ROM,DVD-R,DVD-RW */