diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 6dabb29..6629c47 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2008.12.10.114241" +#define Cdrskin_timestamP "2008.12.11.072308" diff --git a/libburn/async.c b/libburn/async.c index 07bde23..bb8babb 100644 --- a/libburn/async.c +++ b/libburn/async.c @@ -376,7 +376,7 @@ static void *format_worker_func(struct w_list *w) void burn_disc_format(struct burn_drive *drive, off_t size, int flag) { struct format_opts o; - int ok = 0; + int ok = 0, ret; char msg[160]; if ((SCAN_GOING()) || find_worker(drive) != NULL) { @@ -411,11 +411,23 @@ void burn_disc_format(struct burn_drive *drive, off_t size, int flag) ok = 1; /* DVD-RAM */ } else if (drive->current_profile == 0x41) { - /* >>> BD-R SRM */ - + /* BD-R SRM */ ok= 1; - /* >>> check whether already formatted */; - + ret = drive->read_format_capacities(drive, 0x00); + if (ret > 0 && + drive->format_descr_type == BURN_FORMAT_IS_FORMATTED) + ok = 0; + if (drive->status != BURN_DISC_BLANK) + ok = 0; + if (!ok) { + libdax_msgs_submit(libdax_messenger, + drive->global_index, 0x00020129, + LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH, + "BD-R not unformatted blank any more. Cannot format.", + 0, 0); + drive->cancel = 1; + return; + } } else if (drive->current_profile == 0x43) { ok = 1; /* BD-RE */ } diff --git a/libburn/libdax_msgs.h b/libburn/libdax_msgs.h index 6236333..b89157a 100644 --- a/libburn/libdax_msgs.h +++ b/libburn/libdax_msgs.h @@ -534,6 +534,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff 0x0002015f (MISHAP,HIGH) = Damaged CD table-of-content detected and truncated 0x00020160 (WARNING,HIGH) = Session without leadout encountered 0x00020161 (WARNING,HIGH) = Empty session deleted + 0x00020162 (SORRY, HIG) = BD-R not unformatted blank any more. Cannot format. libdax_audioxtr: 0x00020200 (SORRY,HIGH) = Cannot open audio source file