From 11f16316b146db1441559a533502c23e3dc29a23 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sat, 25 Nov 2006 15:43:31 +0000 Subject: [PATCH] Made use of libburn device address translation (/dev/sr0, /dev/cdrom, ...) --- test/libburner.c | 17 +++++++++++++---- test/telltoc.c | 15 ++++++++++++--- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/test/libburner.c b/test/libburner.c index b63b61a..44356ca 100644 --- a/test/libburner.c +++ b/test/libburner.c @@ -107,12 +107,21 @@ int libburner_aquire_drive(char *drive_adr, int *driveno) int libburner_aquire_by_adr(char *drive_adr) { int ret; - - printf("Aquiring drive '%s' ...\n",drive_adr); - ret = burn_drive_scan_and_grab(&drive_list,drive_adr,1); + char libburn_drive_adr[BURN_DRIVE_ADR_LEN]; + + /* This tries to resolve links or alternative device files */ + ret = burn_drive_convert_fs_adr(drive_adr, libburn_drive_adr); + if (ret<=0) { + fprintf(stderr,"Address does not lead to a CD burner: '%s'\n", + drive_adr); + return ret; + } + + printf("Aquiring drive '%s' ...\n",libburn_drive_adr); + ret = burn_drive_scan_and_grab(&drive_list,libburn_drive_adr,1); if (ret <= 0) { fprintf(stderr,"FAILURE with persistent drive address '%s'\n", - drive_adr); + libburn_drive_adr); } else { printf("Done\n"); drive_is_grabbed = 1; diff --git a/test/telltoc.c b/test/telltoc.c index 09e45fa..ac649a3 100644 --- a/test/telltoc.c +++ b/test/telltoc.c @@ -105,11 +105,20 @@ int telltoc_aquire_by_adr(char *drive_adr) { int ret; - fprintf(stderr,"Aquiring drive '%s' ...\n",drive_adr); - ret = burn_drive_scan_and_grab(&drive_list,drive_adr,1); + char libburn_drive_adr[BURN_DRIVE_ADR_LEN]; + + /* This tries to resolve links or alternative device files */ + ret = burn_drive_convert_fs_adr(drive_adr, libburn_drive_adr); + if (ret<=0) { + fprintf(stderr,"Address does not lead to a CD burner: '%s'\n", + drive_adr); + return ret; + } + fprintf(stderr,"Aquiring drive '%s' ...\n",libburn_drive_adr); + ret = burn_drive_scan_and_grab(&drive_list,libburn_drive_adr,1); if (ret <= 0) { fprintf(stderr,"FAILURE with persistent drive address '%s'\n", - drive_adr); + libburn_drive_adr); } else { fprintf(stderr,"Done\n"); drive_is_grabbed = 1;