From c02dbe4ecaa10b8ce958067f88bd14d1e3b41af8 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 1 Feb 2007 19:15:06 +0000 Subject: [PATCH] Allowed blanking of DVD-RW which offer no Incremental Streaming --- cdrskin/cdrskin.c | 6 ++++-- cdrskin/cdrskin_timestamp.h | 2 +- libburn/mmc.c | 29 +++++++++++++++-------------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/cdrskin/cdrskin.c b/cdrskin/cdrskin.c index 32c9b36..94d63aa 100644 --- a/cdrskin/cdrskin.c +++ b/cdrskin/cdrskin.c @@ -3953,9 +3953,11 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag) #ifdef Cdrskin_libburn_has_pretend_fulL if(s==BURN_DISC_UNSUITABLE) { - if(skin->force_is_set) { + if(skin->force_is_set || + profile_number == 0x14 || profile_number == 0x13) {/* allow any DVD-RW */ fprintf(stderr, - "cdrskin: NOTE : -force blank=... : Treating unsuitable media as burn_disc_full\n"); + "cdrskin: NOTE : %s blank=... : Treating unsuitable media as burn_disc_full\n", + (skin->force_is_set?"-force ":"DVD-RW ")); ret= burn_disc_pretend_full(drive); s= burn_disc_get_status(drive); } else diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 9d2e3d6..beb63d8 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2007.02.01.163511" +#define Cdrskin_timestamP "2007.02.01.191638" diff --git a/libburn/mmc.c b/libburn/mmc.c index 3f5cc0a..464fd6c 100644 --- a/libburn/mmc.c +++ b/libburn/mmc.c @@ -848,20 +848,6 @@ void mmc_read_disc_info(struct burn_drive *d) return; mmc_get_configuration(d); - if ((d->current_profile != 0 || d->status != BURN_DISC_UNREADY) - && ! d->current_is_supported_profile) { - if (!d->silent_on_scsi_error) { - sprintf(msg, - "Unsuitable media detected. Profile %4.4Xh %s", - d->current_profile, d->current_profile_text); - libdax_msgs_submit(libdax_messenger, d->global_index, - 0x0002011e, - LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH, - msg, 0,0); - } - d->status = BURN_DISC_UNSUITABLE; - return; - } mmc_function_spy("mmc_read_disc_info"); memcpy(c.opcode, MMC_GET_DISC_INFO, sizeof(MMC_GET_DISC_INFO)); @@ -881,6 +867,21 @@ void mmc_read_disc_info(struct burn_drive *d) data = c.page->data; d->erasable = !!(data[2] & 16); + if ((d->current_profile != 0 || d->status != BURN_DISC_UNREADY) + && ! d->current_is_supported_profile) { + if (!d->silent_on_scsi_error) { + sprintf(msg, + "Unsuitable media detected. Profile %4.4Xh %s", + d->current_profile, d->current_profile_text); + libdax_msgs_submit(libdax_messenger, d->global_index, + 0x0002011e, + LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH, + msg, 0,0); + } + d->status = BURN_DISC_UNSUITABLE; + return; + } + switch (data[2] & 3) { case 0: d->toc_entries = 0;