Testing new API functions via --drive stdio:<path>

This commit is contained in:
Thomas Schmitt 2007-09-04 22:51:44 +00:00
parent 31650eb988
commit 970e2798ba
2 changed files with 36 additions and 20 deletions

View File

@ -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;

View File

@ -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:<path> 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