From a3ac6c63aaf1802a48d75c5af5f420106d1b32a8 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Fri, 18 Mar 2011 15:33:15 +0000 Subject: [PATCH] Enabled BD formatting iby index on Pioneer BDR-205 which offers no Cert or QCert --- cdrskin/cdrskin_timestamp.h | 2 +- libburn/async.c | 36 ------------------------------------ libburn/mmc.c | 21 ++++++++++++++++----- 3 files changed, 17 insertions(+), 42 deletions(-) diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index ae645e6..2b9e4f9 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2011.03.18.093410" +#define Cdrskin_timestamP "2011.03.18.153326" diff --git a/libburn/async.c b/libburn/async.c index a2ea706..c2c961c 100644 --- a/libburn/async.c +++ b/libburn/async.c @@ -517,42 +517,6 @@ void burn_disc_format(struct burn_drive *drive, off_t size, int flag) 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) { diff --git a/libburn/mmc.c b/libburn/mmc.c index 7fdb70a..1b3fa69 100644 --- a/libburn/mmc.c +++ b/libburn/mmc.c @@ -3114,12 +3114,23 @@ selected_not_suitable:; c.page->data[9 + i] = ( d->format_descriptors[index].tdp >> (16 - 8 * i)) & 0xff; - if (format_type == 0x30 || format_type == 0x31 || - format_type == 0x32) { - if (flag & 64) - format_sub_type = 3; /* Quick certification */ + if (format_type == 0x30 || format_type == 0x31) { + format_sub_type = 0; + if (flag & 64) { + 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 - format_sub_type = 2; /* Full certification */ + format_sub_type = 1; /* SRM (- POW) */ } if (d->current_profile == 0x12 && format_type !=0x01 && (flag & 64)) {