diff --git a/cdrskin/cdrskin.c b/cdrskin/cdrskin.c index 27c20b8..1b34a3f 100644 --- a/cdrskin/cdrskin.c +++ b/cdrskin/cdrskin.c @@ -3374,9 +3374,9 @@ int Cdrskin_checkdrive(struct CdrskiN *skin, int flag) /* <<< */ if(skin->verbosity>=Cdrskin_verbose_debuG) ClN(fprintf(stderr, - "cdrskin_debug: block_types: tao=%4.4X sao=%4.4X raw=%4.4X packet=%4.4X\n", + "cdrskin_debug: block_types: tao=%4.4X sao=%4.4X raw=%4.4X\n", drive_info->tao_block_types,drive_info->sao_block_types, - drive_info->raw_block_types,drive_info->packet_block_types)); + drive_info->raw_block_types)); printf("Supported modes:"); if((drive_info->tao_block_types & (BURN_BLOCK_MODE1|BURN_BLOCK_RAW0)) @@ -4119,7 +4119,11 @@ int Cdrskin_burn(struct CdrskiN *skin, int flag) if(skin->verbosity>=Cdrskin_verbose_progresS) Cdrskin_report_disc_status(skin,s,0); +#ifdef Cdrskin_libburn_has_multI + if (s != BURN_DISC_BLANK && s != BURN_DISC_APPENDABLE) { +#else if (s != BURN_DISC_BLANK) { +#endif Cdrskin_release_drive(skin,0); fprintf(stderr,"cdrskin: FATAL : no blank media detected.\n"); return(0); diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index aae9b92..3770289 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2006.11.09.151431" +#define Cdrskin_timestamP "2006.11.09.193030" diff --git a/libburn/libburn.h b/libburn/libburn.h index b264bdf..d256335 100644 --- a/libburn/libburn.h +++ b/libburn/libburn.h @@ -740,6 +740,7 @@ void burn_read_opts_free(struct burn_read_opts *opts); */ void burn_disc_erase(struct burn_drive *drive, int fast); +/* ts A61109 : this is defunct */ /** Read a disc from the drive and write it to an fd pair. The drive must be grabbed successfully BEFORE calling this function. Always ensure that the drive reports a status of BURN_DISC_FULL before calling this function. @@ -748,10 +749,9 @@ void burn_disc_erase(struct burn_drive *drive, int fast); */ void burn_disc_read(struct burn_drive *drive, const struct burn_read_opts *o); -/** Write a disc in the drive. The drive must be grabbed successfully BEFORE +/** Write a disc in the drive. The drive must be grabbed successfully before calling this function. Always ensure that the drive reports a status of - BURN_DISC_BLANK or BURN_STATUS_FULL (to append a new session to the - disc) before calling this function. + BURN_DISC_BLANK before calling this function. @param o The options for the writing operation. @param disc The struct burn_disc * that described the disc to be created */ diff --git a/libburn/write.c b/libburn/write.c index f1054cd..46fecbc 100644 --- a/libburn/write.c +++ b/libburn/write.c @@ -334,11 +334,20 @@ struct cue_sheet *burn_create_toc_entries(struct burn_write_opts *o, /* ts A61009 */ /* a ssert(d->toc_entry == NULL); */ if (d->toc_entry != NULL) { + + /* ts A61109 : this happens with appendable CDs + >>> Open question: is the existing TOC needed ? */ + + /* ts A61109 : for non-SAO, this sheet is thrown away later */ + free((char *) d->toc_entry); + + /* libdax_msgs_submit(libdax_messenger, d->global_index, 0x00020117, LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH, "toc_entry of drive is already in use", 0, 0); goto failed; + */ } d->toc_entry = calloc(d->toc_entries, sizeof(struct burn_toc_entry));