From 970e2798ba79ee3a69109f8f3eb92665fa4f1a23 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Tue, 4 Sep 2007 22:51:44 +0000 Subject: [PATCH] Testing new API functions via --drive stdio: --- test/libburner.c | 27 +++++++++++++++++---------- test/telltoc.c | 29 +++++++++++++++++++---------- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/test/libburner.c b/test/libburner.c index 5ce67fc..3de626a 100644 --- a/test/libburner.c +++ b/test/libburner.c @@ -123,21 +123,28 @@ int libburner_aquire_by_adr(char *drive_adr) int ret; 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; + if (strncmp(drive_adr, "stdio:", 6) == 0) { + fprintf(stderr, "Aquiring standard i/o pseudo-drive '%s'\n", + drive_adr + 6); + ret = burn_drive_grab_dummy(&drive_list, drive_adr + 6); + } else { + /* 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 0; + } + fprintf(stderr,"Aquiring drive '%s' ...\n", libburn_drive_adr); + ret = burn_drive_scan_and_grab(&drive_list, + libburn_drive_adr, 1); } - - 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", libburn_drive_adr); } else { - printf("Done\n"); + fprintf(stderr,"Done\n"); drive_is_grabbed = 1; } return ret; diff --git a/test/telltoc.c b/test/telltoc.c index fb12c12..dfc0a79 100644 --- a/test/telltoc.c +++ b/test/telltoc.c @@ -108,22 +108,31 @@ int telltoc_aquire_drive(char *drive_adr, int *driveno, int silent_drive) /** If the persistent drive address is known, then this approach is much more un-obtrusive to the systemwide livestock of drives. Only the given drive device will be opened during this procedure. + Special drive addresses stdio: direct output to a hard disk file + which will behave much like a DVD-RAM. */ int telltoc_aquire_by_adr(char *drive_adr) { int ret; - 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; + if (strncmp(drive_adr, "stdio:", 6) == 0) { + fprintf(stderr, "Aquiring standard i/o pseudo-drive '%s'\n", + drive_adr + 6); + ret = burn_drive_grab_dummy(&drive_list, drive_adr + 6); + } else { + /* 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 0; + } + fprintf(stderr,"Aquiring drive '%s' ...\n", libburn_drive_adr); + ret = burn_drive_scan_and_grab(&drive_list, + libburn_drive_adr, 1); } - 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", libburn_drive_adr); @@ -242,7 +251,7 @@ int telltoc_media(struct burn_drive *drive) printf("Media current: "); ret = burn_disc_get_profile(drive, &profile_no, profile_name); - if (profile_no > 0 && ret >0) { + if (profile_no >= 0 && ret >0) { if (profile_name[0]) printf("%s\n", profile_name); else