Start of version 0.1.5. Enabled O_EXCL experiments.

This commit is contained in:
Thomas Schmitt 2006-08-21 08:04:01 +00:00
parent 265fae24b4
commit 3f4a330f22

View File

@ -59,7 +59,7 @@ or
/** The official program version */ /** The official program version */
#define Cdrskin_prog_versioN "0.1.4" #define Cdrskin_prog_versioN "0.1.5"
/** The source code release timestamp */ /** The source code release timestamp */
#include "cdrskin_timestamp.h" #include "cdrskin_timestamp.h"
@ -104,9 +104,6 @@ or
#define Cdrskin_libburn_largefilE 1 #define Cdrskin_libburn_largefilE 1
#define Cdrskin_libburn_padding_does_worK 1 #define Cdrskin_libburn_padding_does_worK 1
/* <<< just for now: */
#define Cdrskin_libburn_no_burn_preset_device_opeN 1
#endif /* Cdrskin_libburn_0_2_1 */ #endif /* Cdrskin_libburn_0_2_1 */
#ifndef Cdrskin_libburn_versioN #ifndef Cdrskin_libburn_versioN
@ -1416,6 +1413,10 @@ set_dev:;
printf(" --fifo_per_track use a separate fifo for each track\n"); printf(" --fifo_per_track use a separate fifo for each track\n");
printf( printf(
" --fifo_start_empty do not wait for full fifo before burn start\n"); " --fifo_start_empty do not wait for full fifo before burn start\n");
printf(
" grab_drive_and_wait=<num> grab drive, wait given number of\n");
printf(
" seconds, release drive, and do normal work\n");
printf( printf(
" --ignore_signals try to ignore any signals rather than to abort\n"); " --ignore_signals try to ignore any signals rather than to abort\n");
printf(" --no_abort_handler exit even if the drive is in busy state\n"); printf(" --no_abort_handler exit even if the drive is in busy state\n");
@ -1423,8 +1424,9 @@ set_dev:;
" --no_rc as first argument: do not read startup files\n"); " --no_rc as first argument: do not read startup files\n");
printf( printf(
" --single_track accept only last argument as source_address\n"); " --single_track accept only last argument as source_address\n");
printf(" tao_to_sao_tsize=<num> substitute -tao by -sao and augment\n"); printf(
printf(" input from \"-\" by tsize=<num>\n"); " tao_to_sao_tsize=<num> substitute -tao by -sao and eventually\n");
printf(" augment input from \"-\" by tsize=<num>\n");
printf(" (set tao_to_sao_tsize=0 to disable it)\n"); printf(" (set tao_to_sao_tsize=0 to disable it)\n");
printf( printf(
"Preconfigured arguments are read from the following startup files\n"); "Preconfigured arguments are read from the following startup files\n");
@ -3245,7 +3247,7 @@ int Cdrskin_eject(struct CdrskiN *skin, int flag)
int Cdrskin_setup(struct CdrskiN *skin, int argc, char **argv, int flag) int Cdrskin_setup(struct CdrskiN *skin, int argc, char **argv, int flag)
{ {
int i,k,ret; int i,k,ret;
double value; double value,grab_and_wait_value= -1.0;
char *cpt,*value_pt; char *cpt,*value_pt;
/* cdrecord 2.01 options which are not scheduled for implementation, yet */ /* cdrecord 2.01 options which are not scheduled for implementation, yet */
@ -3513,6 +3515,10 @@ fs_equals:;
printf("cdrskin: fifo size : %d\n",skin->fifo_size); printf("cdrskin: fifo size : %d\n",skin->fifo_size);
} }
} else if(strncmp(argv[i],"grab_drive_and_wait=",20)==0) {
value_pt= argv[i]+20;
grab_and_wait_value= Scanf_io_size(value_pt,0);
} else if(strncmp(argv[i],"-gracetime=",11)==0) { } else if(strncmp(argv[i],"-gracetime=",11)==0) {
value_pt= argv[i]+11; value_pt= argv[i]+11;
goto gracetime_equals; goto gracetime_equals;
@ -3749,6 +3755,20 @@ ignore_unknown:;
printf("cdrskin: active drive number : %d '%s'\n", printf("cdrskin: active drive number : %d '%s'\n",
skin->driveno,skin->drives[skin->driveno].location); skin->driveno,skin->drives[skin->driveno].location);
} }
if(grab_and_wait_value>0) {
Cdrskin_grab_drive(skin,0);
for(k= 0; k<grab_and_wait_value; k++) {
fprintf(stderr,
"\rcdrskin: holding drive grabbed since %d seconds ",
k);
usleep(1000000);
}
fprintf(stderr,
"\rcdrskin: held drive grabbed for %d seconds \n",
k);
Cdrskin_release_drive(skin,0);
}
if(skin->track_counter>0) { if(skin->track_counter>0) {
skin->do_burn= 1; skin->do_burn= 1;