From 3f4a330f228331a5bf312198e7bdaebeed7437d5 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 21 Aug 2006 08:04:01 +0000 Subject: [PATCH] Start of version 0.1.5. Enabled O_EXCL experiments. --- cdrskin/cdrskin.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/cdrskin/cdrskin.c b/cdrskin/cdrskin.c index 103803c..085468e 100644 --- a/cdrskin/cdrskin.c +++ b/cdrskin/cdrskin.c @@ -59,7 +59,7 @@ or /** The official program version */ -#define Cdrskin_prog_versioN "0.1.4" +#define Cdrskin_prog_versioN "0.1.5" /** The source code release timestamp */ #include "cdrskin_timestamp.h" @@ -104,9 +104,6 @@ or #define Cdrskin_libburn_largefilE 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 */ #ifndef Cdrskin_libburn_versioN @@ -1416,6 +1413,10 @@ set_dev:; printf(" --fifo_per_track use a separate fifo for each track\n"); printf( " --fifo_start_empty do not wait for full fifo before burn start\n"); + printf( + " grab_drive_and_wait= grab drive, wait given number of\n"); + printf( + " seconds, release drive, and do normal work\n"); printf( " --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"); @@ -1423,8 +1424,9 @@ set_dev:; " --no_rc as first argument: do not read startup files\n"); printf( " --single_track accept only last argument as source_address\n"); - printf(" tao_to_sao_tsize= substitute -tao by -sao and augment\n"); - printf(" input from \"-\" by tsize=\n"); + printf( + " tao_to_sao_tsize= substitute -tao by -sao and eventually\n"); + printf(" augment input from \"-\" by tsize=\n"); printf(" (set tao_to_sao_tsize=0 to disable it)\n"); printf( "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 i,k,ret; - double value; + double value,grab_and_wait_value= -1.0; char *cpt,*value_pt; /* 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); } + } 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) { value_pt= argv[i]+11; goto gracetime_equals; @@ -3749,6 +3755,20 @@ ignore_unknown:; printf("cdrskin: active drive number : %d '%s'\n", skin->driveno,skin->drives[skin->driveno].location); } + if(grab_and_wait_value>0) { + Cdrskin_grab_drive(skin,0); + for(k= 0; ktrack_counter>0) { skin->do_burn= 1;