Experimentally enabled burning to BURN_DISC_APPENDABLE (tested with TAO only)

This commit is contained in:
Thomas Schmitt 2006-11-09 19:29:39 +00:00
parent ce0d783e82
commit c9478cc15e
4 changed files with 19 additions and 6 deletions

View File

@ -3374,9 +3374,9 @@ int Cdrskin_checkdrive(struct CdrskiN *skin, int flag)
/* <<< */ /* <<< */
if(skin->verbosity>=Cdrskin_verbose_debuG) if(skin->verbosity>=Cdrskin_verbose_debuG)
ClN(fprintf(stderr, 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->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:"); printf("Supported modes:");
if((drive_info->tao_block_types & (BURN_BLOCK_MODE1|BURN_BLOCK_RAW0)) 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) if(skin->verbosity>=Cdrskin_verbose_progresS)
Cdrskin_report_disc_status(skin,s,0); 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) { if (s != BURN_DISC_BLANK) {
#endif
Cdrskin_release_drive(skin,0); Cdrskin_release_drive(skin,0);
fprintf(stderr,"cdrskin: FATAL : no blank media detected.\n"); fprintf(stderr,"cdrskin: FATAL : no blank media detected.\n");
return(0); return(0);

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2006.11.09.151431" #define Cdrskin_timestamP "2006.11.09.193030"

View File

@ -740,6 +740,7 @@ void burn_read_opts_free(struct burn_read_opts *opts);
*/ */
void burn_disc_erase(struct burn_drive *drive, int fast); 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 /** 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 grabbed successfully BEFORE calling this function. Always ensure that the
drive reports a status of BURN_DISC_FULL before calling this function. 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); 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 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 BURN_DISC_BLANK before calling this function.
disc) before calling this function.
@param o The options for the writing operation. @param o The options for the writing operation.
@param disc The struct burn_disc * that described the disc to be created @param disc The struct burn_disc * that described the disc to be created
*/ */

View File

@ -334,11 +334,20 @@ struct cue_sheet *burn_create_toc_entries(struct burn_write_opts *o,
/* ts A61009 */ /* ts A61009 */
/* a ssert(d->toc_entry == NULL); */ /* a ssert(d->toc_entry == NULL); */
if (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, libdax_msgs_submit(libdax_messenger,
d->global_index, 0x00020117, d->global_index, 0x00020117,
LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH, LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH,
"toc_entry of drive is already in use", 0, 0); "toc_entry of drive is already in use", 0, 0);
goto failed; goto failed;
*/
} }
d->toc_entry = calloc(d->toc_entries, sizeof(struct burn_toc_entry)); d->toc_entry = calloc(d->toc_entries, sizeof(struct burn_toc_entry));