Warning of very small tsize= settings. (Proposal by Eduard Bloch)
This commit is contained in:
parent
98f0dab87e
commit
749d12591e
@ -296,6 +296,11 @@ or
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/** If tsize= sets a value smaller than media capacity divided by this
|
||||||
|
number then there will be a warning and gracetime set at least to 15 */
|
||||||
|
#define Cdrskin_minimum_tsize_quotienT 2048.0
|
||||||
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------- */
|
||||||
|
|
||||||
/* Imported from scdbackup-0.8.5/src/cd_backup_planer.c */
|
/* Imported from scdbackup-0.8.5/src/cd_backup_planer.c */
|
||||||
@ -2473,6 +2478,8 @@ struct CdrskiN {
|
|||||||
*/
|
*/
|
||||||
char source_path[Cdrskin_strleN];
|
char source_path[Cdrskin_strleN];
|
||||||
double fixed_size;
|
double fixed_size;
|
||||||
|
double smallest_tsize;
|
||||||
|
int has_open_ended_track;
|
||||||
double padding;
|
double padding;
|
||||||
int set_by_padsize;
|
int set_by_padsize;
|
||||||
int fill_up_media;
|
int fill_up_media;
|
||||||
@ -2593,6 +2600,8 @@ int Cdrskin_new(struct CdrskiN **skin, struct CdrpreskiN *preskin, int flag)
|
|||||||
o->eject_device[0]= 0;
|
o->eject_device[0]= 0;
|
||||||
o->source_path[0]= 0;
|
o->source_path[0]= 0;
|
||||||
o->fixed_size= 0.0;
|
o->fixed_size= 0.0;
|
||||||
|
o->smallest_tsize= -1.0;
|
||||||
|
o->has_open_ended_track= 0;
|
||||||
o->padding= 0.0;
|
o->padding= 0.0;
|
||||||
o->set_by_padsize= 0;
|
o->set_by_padsize= 0;
|
||||||
o->fill_up_media= 0;
|
o->fill_up_media= 0;
|
||||||
@ -3874,6 +3883,44 @@ ex:;
|
|||||||
|
|
||||||
#ifndef Cdrskin_extra_leaN
|
#ifndef Cdrskin_extra_leaN
|
||||||
|
|
||||||
|
/* A70324: proposal by Eduard Bloch */
|
||||||
|
int Cdrskin_warn_of_mini_tsize(struct CdrskiN *skin, int flag)
|
||||||
|
{
|
||||||
|
off_t media_space= 0;
|
||||||
|
enum burn_disc_status s;
|
||||||
|
struct burn_drive *drive;
|
||||||
|
|
||||||
|
#ifdef Cdrskin_libburn_has_get_spacE
|
||||||
|
if(skin->multi || skin->has_open_ended_track || skin->smallest_tsize<0)
|
||||||
|
return(1);
|
||||||
|
drive= skin->drives[skin->driveno].drive;
|
||||||
|
s= burn_disc_get_status(drive);
|
||||||
|
if(s!=BURN_DISC_BLANK)
|
||||||
|
return(1);
|
||||||
|
media_space= burn_disc_available_space(drive, NULL);
|
||||||
|
if(media_space<=0 ||
|
||||||
|
skin->smallest_tsize >= media_space / Cdrskin_minimum_tsize_quotienT)
|
||||||
|
return(1);
|
||||||
|
fprintf(stderr,"\n");
|
||||||
|
fprintf(stderr,"\n");
|
||||||
|
fprintf(stderr,
|
||||||
|
"cdrskin: WARNING: Very small track size set by option tsize=\n");
|
||||||
|
fprintf(stderr,
|
||||||
|
"cdrskin: Track size %.1f MB <-> media capacity %.1f MB\n",
|
||||||
|
skin->smallest_tsize/1024.0/1024.0,
|
||||||
|
((double) media_space)/1024.0/1024.0);
|
||||||
|
fprintf(stderr,"\n");
|
||||||
|
fprintf(stderr,
|
||||||
|
"cdrskin: Will wait at least 15 seconds until real burning starts\n");
|
||||||
|
fprintf(stderr,"\n");
|
||||||
|
if(skin->gracetime<15)
|
||||||
|
skin->gracetime= 15;
|
||||||
|
|
||||||
|
#endif /* Cdrskin_libburn_has_get_spacE */
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Emulate the gracetime= behavior of cdrecord
|
/** Emulate the gracetime= behavior of cdrecord
|
||||||
@param flag Bitfield for control purposes:
|
@param flag Bitfield for control purposes:
|
||||||
bit0= do not print message about pseudo-checkdrive
|
bit0= do not print message about pseudo-checkdrive
|
||||||
@ -3885,6 +3932,8 @@ int Cdrskin_wait_before_action(struct CdrskiN *skin, int flag)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
Cdrskin_warn_of_mini_tsize(skin,0);
|
||||||
|
|
||||||
if(skin->verbosity>=Cdrskin_verbose_progresS) {
|
if(skin->verbosity>=Cdrskin_verbose_progresS) {
|
||||||
char speed_text[80];
|
char speed_text[80];
|
||||||
if(skin->x_speed<0)
|
if(skin->x_speed<0)
|
||||||
@ -4817,6 +4866,8 @@ burn_failed:;
|
|||||||
Cdrtrack_get_size(skin->tracklist[i],&size,&padding,§or_size,0);
|
Cdrtrack_get_size(skin->tracklist[i],&size,&padding,§or_size,0);
|
||||||
if(size>0)
|
if(size>0)
|
||||||
skin->fixed_size+= size+padding;
|
skin->fixed_size+= size+padding;
|
||||||
|
else
|
||||||
|
skin->has_open_ended_track= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef Cdrskin_libburn_write_mode_ruleS
|
#ifndef Cdrskin_libburn_write_mode_ruleS
|
||||||
@ -5964,6 +6015,8 @@ track_too_large:;
|
|||||||
}
|
}
|
||||||
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
||||||
ClN(printf("cdrskin: fixed track size : %.f\n",skin->fixed_size));
|
ClN(printf("cdrskin: fixed track size : %.f\n",skin->fixed_size));
|
||||||
|
if(skin->smallest_tsize<0 || skin->smallest_tsize>skin->fixed_size)
|
||||||
|
skin->smallest_tsize= skin->fixed_size;
|
||||||
|
|
||||||
} else if(strcmp(argv[i],"-v")==0 || strcmp(argv[i],"-verbose")==0) {
|
} else if(strcmp(argv[i],"-v")==0 || strcmp(argv[i],"-verbose")==0) {
|
||||||
/* is handled in Cdrpreskin_setup() */;
|
/* is handled in Cdrpreskin_setup() */;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2007.03.24.093238"
|
#define Cdrskin_timestamP "2007.03.24.093623"
|
||||||
|
Loading…
Reference in New Issue
Block a user