Fix up return code status in close tray.

This commit is contained in:
rocky
2005-03-22 09:19:47 +00:00
parent 7774f8d873
commit 7a9111434b

View File

@@ -1,5 +1,5 @@
/* /*
$Id: cdda-player.c,v 1.25 2005/03/22 01:57:22 rocky Exp $ $Id: cdda-player.c,v 1.26 2005/03/22 09:19:47 rocky Exp $
Copyright (C) 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2005 Rocky Bernstein <rocky@panix.com>
@@ -1338,24 +1338,25 @@ main(int argc, char *argv[])
nostop=1; nostop=1;
} }
/* open device */
if (b_verbose)
fprintf(stderr,"open %s... ", psz_device);
p_cdio = cdio_open (psz_device, driver_id);
if (!p_cdio && cd_op != EJECT_CD) {
cd_close(psz_device);
p_cdio = cdio_open (psz_device, driver_id);
}
if (p_cdio && b_verbose)
fprintf(stderr,"ok\n");
tty_raw(); tty_raw();
signal(SIGINT,ctrlc); signal(SIGINT,ctrlc);
signal(SIGQUIT,ctrlc); signal(SIGQUIT,ctrlc);
signal(SIGTERM,ctrlc); signal(SIGTERM,ctrlc);
signal(SIGHUP,ctrlc); signal(SIGHUP,ctrlc);
if (CLOSE_CD != cd_op) {
/* open device */
if (b_verbose)
fprintf(stderr, "open %s... ", psz_device);
p_cdio = cdio_open (psz_device, driver_id);
if (!p_cdio && cd_op != EJECT_CD) {
cd_close(psz_device);
p_cdio = cdio_open (psz_device, driver_id);
}
if (p_cdio && b_verbose)
fprintf(stderr,"ok\n");
}
if (!interactive) { if (!interactive) {
b_sig = true; b_sig = true;
@@ -1396,9 +1397,6 @@ main(int argc, char *argv[])
printf("%s / %s\n", artist, title); printf("%s / %s\n", artist, title);
play_track(1,CDIO_CDROM_LEADOUT_TRACK); play_track(1,CDIO_CDROM_LEADOUT_TRACK);
break; break;
case CLOSE_CD:
i_rc = cdio_close_tray(psz_device, NULL) ? 0 : 1;
break;
case SET_VOLUME: case SET_VOLUME:
{ {
cdio_audio_volume_t volume; cdio_audio_volume_t volume;
@@ -1424,6 +1422,7 @@ main(int argc, char *argv[])
i_rc = 1; i_rc = 1;
} }
break; break;
case CLOSE_CD: /* Handled below */
case LIST_KEYS: case LIST_KEYS:
case LIST_TRACKS: case LIST_TRACKS:
case TOGGLE_PAUSE: case TOGGLE_PAUSE:
@@ -1431,7 +1430,10 @@ main(int argc, char *argv[])
case NO_OP: case NO_OP:
break; break;
} }
else { else if (CLOSE_CD == cd_op) {
i_rc = (DRIVER_OP_SUCCESS == cdio_close_tray(psz_device, NULL))
? 0 : 1;
} else {
fprintf(stderr,"no CD in drive (%s)\n", psz_device); fprintf(stderr,"no CD in drive (%s)\n", psz_device);
} }
} }