Enabled BD formatting iby index on Pioneer BDR-205 which offers no Cert or QCert

This commit is contained in:
Thomas Schmitt 2011-03-18 15:33:15 +00:00
parent 1379e576cf
commit 0f79047c75
3 changed files with 17 additions and 42 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2011.03.18.093410" #define Cdrskin_timestamP "2011.03.18.153326"

View File

@ -517,42 +517,6 @@ void burn_disc_format(struct burn_drive *drive, off_t size, int flag)
return; return;
} }
if ((flag & 6) != 6 || (flag & 128)) {
if ((flag & 64) && !(drive->current_feat23h_byte4 & 2)) {
if (drive->current_feat23h_byte4 & 1) {
libdax_msgs_submit(libdax_messenger,
drive->global_index, 0x00020165,
LIBDAX_MSGS_SEV_WARNING,
LIBDAX_MSGS_PRIO_HIGH,
"Drive does not support fast formatting",
0, 0);
flag &= ~64;
} else {
no_non_default_bd_re:;
libdax_msgs_submit(libdax_messenger,
drive->global_index, 0x00020167,
LIBDAX_MSGS_SEV_SORRY,
LIBDAX_MSGS_PRIO_HIGH,
"Drive does not support non-default formatting",
0, 0);
drive->cancel = 1;
return;
}
}
if ((!(flag & 64)) && !(drive->current_feat23h_byte4 & 1)){
if (drive->current_feat23h_byte4 & 2) {
libdax_msgs_submit(libdax_messenger,
drive->global_index, 0x00020166,
LIBDAX_MSGS_SEV_WARNING,
LIBDAX_MSGS_PRIO_HIGH,
"Drive does not support full formatting",
0, 0);
flag |= 64;
} else
goto no_non_default_bd_re;
}
}
} }
if (!ok) { if (!ok) {

View File

@ -3114,12 +3114,23 @@ selected_not_suitable:;
c.page->data[9 + i] = c.page->data[9 + i] =
( d->format_descriptors[index].tdp >> ( d->format_descriptors[index].tdp >>
(16 - 8 * i)) & 0xff; (16 - 8 * i)) & 0xff;
if (format_type == 0x30 || format_type == 0x31 || if (format_type == 0x30 || format_type == 0x31) {
format_type == 0x32) { format_sub_type = 0;
if (flag & 64) if (flag & 64) {
format_sub_type = 3; /* Quick certification */ if (d->current_feat23h_byte4 & 2)
/* Quick certification */
format_sub_type = 3;
} else {
if (d->current_feat23h_byte4 & 1)
/* Full certification */
format_sub_type = 2;
}
} else if (format_type == 0x32 ||
(format_type == 0x00 && d->current_profile == 0x41)) {
if (flag & (1 << 16))
format_sub_type = 0; /* SRM + POW */
else else
format_sub_type = 2; /* Full certification */ format_sub_type = 1; /* SRM (- POW) */
} }
if (d->current_profile == 0x12 && format_type !=0x01 && if (d->current_profile == 0x12 && format_type !=0x01 &&
(flag & 64)) { (flag & 64)) {