From 6a2321311384701e0cab679d4857ba996b8a2e16 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 26 Jul 2012 12:30:06 +0000 Subject: [PATCH] New option --no_load --- cdrskin/cdrskin.1 | 7 ++++++- cdrskin/cdrskin.c | 12 ++++++++---- cdrskin/cdrskin_timestamp.h | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/cdrskin/cdrskin.1 b/cdrskin/cdrskin.1 index 2d4a401..93c5400 100644 --- a/cdrskin/cdrskin.1 +++ b/cdrskin/cdrskin.1 @@ -2,7 +2,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH CDRSKIN 1 "Version 1.2.3, Jan 13, 2012" +.TH CDRSKIN 1 "Version 1.2.5, Jul 26, 2012" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -1247,6 +1247,11 @@ option which ends by "=". The list is ended by an empty line. Like option -toc but marking each session start by a line "first: X last: Y" and each session end by "track:lout ...". .TP +.BI \--no_load +When aquiring the optical drive, do not try to load its tray. This yields the +same behavior for desktop drives with tray loader as is shown by laptop drives +which usually lack a motorized tray loader. +.TP .BI \--no_rc Only if used as first command line argument this option prevents reading and interpretation of eventual startup files. See section FILES below. diff --git a/cdrskin/cdrskin.c b/cdrskin/cdrskin.c index e3764e7..a3825ae 100644 --- a/cdrskin/cdrskin.c +++ b/cdrskin/cdrskin.c @@ -2867,6 +2867,7 @@ set_dev:; printf(" --no_abort_handler exit even if the drive is in busy state\n"); printf(" --no_blank_appendable refuse to blank appendable CD-RW\n"); printf(" --no_convert_fs_adr only literal translations of dev=\n"); + printf(" --no_load do not try to load the drive tray\n"); printf( " --no_rc as first argument: do not read startup files\n"); printf(" --obs_pad pad DVD DAO to full 16 or 32 blocks\n"); @@ -3334,7 +3335,7 @@ struct CdrskiN { int do_scanbus; - int do_load; + int do_load; /* 1= -load , 2= -lock , -1= --no_load */ int do_checkdrive; @@ -4016,7 +4017,7 @@ int Cdrskin_grab_drive(struct CdrskiN *skin, int flag) mem= skin->drive_is_busy; skin->drive_is_busy= 2; ret= burn_drive_scan_and_grab(&(skin->drives),skin->preskin->device_adr, - !(flag&2)); + (skin->do_load != -1) && !(flag&2)); skin->drive_is_busy= mem; if(Cdrskin__is_aborting(0)) { aborted:; @@ -4056,7 +4057,7 @@ aborted:; mem= skin->drive_is_busy; skin->drive_is_busy= 2; - ret= burn_drive_grab(drive,!(flag&2)); + ret= burn_drive_grab(drive,(skin->do_load != -1) && !(flag&2)); skin->drive_is_busy= mem; if(Cdrskin__is_aborting(0)) goto aborted; @@ -8257,6 +8258,9 @@ msifile_equals:; } else if(strcmp(argv[i],"--no_convert_fs_adr")==0) { /* is handled in Cdrpreskin_setup() */; + } else if(strcmp(argv[i],"--no_load")==0) { + skin->do_load= -1; + } else if(strcmp(argv[i],"--no_rc")==0) { /* is handled in Cdrpreskin_setup() */; @@ -8830,7 +8834,7 @@ int Cdrskin_run(struct CdrskiN *skin, int *exit_value, int flag) fprintf(stderr,"cdrskin: FATAL : -scanbus failed.\n"); {*exit_value= 5*(ret<=0); goto ex;} } - if(skin->do_load) { + if(skin->do_load > 0) { if(Cdrskin__is_aborting(0)) goto ex; ret= Cdrskin_grab_drive(skin,8); diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 50fc1df..6ccf6aa 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2012.07.20.164346" +#define Cdrskin_timestamP "2012.07.26.122909"