version 1.58, 2008/05/07 23:27:50 |
version 1.59, 2008/06/06 10:16:52 |
|
|
|
|
char *cdname; |
char *cdname; |
int fd = -1; |
int fd = -1; |
|
int writeperm = 0; |
int verbose = 1; |
int verbose = 1; |
int msf = 1; |
int msf = 1; |
const char *cddb_host; |
const char *cddb_host; |
|
|
exit(0); |
exit(0); |
|
|
case CMD_INFO: |
case CMD_INFO: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
return info(arg); |
return info(arg); |
|
|
case CMD_CDDB: |
case CMD_CDDB: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
return cddbinfo(arg); |
return cddbinfo(arg); |
|
|
case CMD_CDID: |
case CMD_CDID: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
return cdid(); |
return cdid(); |
|
|
case CMD_STATUS: |
case CMD_STATUS: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
return pstatus(arg); |
return pstatus(arg); |
|
|
case CMD_PAUSE: |
case CMD_PAUSE: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
return ioctl(fd, CDIOCPAUSE); |
return ioctl(fd, CDIOCPAUSE); |
|
|
case CMD_RESUME: |
case CMD_RESUME: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
return ioctl(fd, CDIOCRESUME); |
return ioctl(fd, CDIOCRESUME); |
|
|
case CMD_STOP: |
case CMD_STOP: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
rc = ioctl(fd, CDIOCSTOP); |
rc = ioctl(fd, CDIOCSTOP); |
|
|
return (rc); |
return (rc); |
|
|
case CMD_RESET: |
case CMD_RESET: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
rc = ioctl(fd, CDIOCRESET); |
rc = ioctl(fd, CDIOCRESET); |
|
|
return (0); |
return (0); |
|
|
case CMD_DEBUG: |
case CMD_DEBUG: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
if (!strcasecmp(arg, "on")) |
if (!strcasecmp(arg, "on")) |
|
|
return (1); |
return (1); |
|
|
case CMD_EJECT: |
case CMD_EJECT: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
(void) ioctl(fd, CDIOCALLOW); |
(void) ioctl(fd, CDIOCALLOW); |
|
|
|
|
case CMD_CLOSE: |
case CMD_CLOSE: |
#if defined(CDIOCCLOSE) |
#if defined(CDIOCCLOSE) |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
(void) ioctl(fd, CDIOCALLOW); |
(void) ioctl(fd, CDIOCALLOW); |
|
|
#endif |
#endif |
|
|
case CMD_PLAY: |
case CMD_PLAY: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
while (isspace(*arg)) |
while (isspace(*arg)) |
|
|
return (0); |
return (0); |
|
|
case CMD_VOLUME: |
case CMD_VOLUME: |
if (fd < 0 && !open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
if (!strncasecmp(arg, "left", strlen(arg))) |
if (!strncasecmp(arg, "left", strlen(arg))) |
|
|
return setvol(l, r); |
return setvol(l, r); |
|
|
case CMD_NEXT: |
case CMD_NEXT: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
return play_next(arg); |
return play_next(arg); |
|
|
case CMD_PREV: |
case CMD_PREV: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
return play_prev(arg); |
return play_prev(arg); |
|
|
case CMD_REPLAY: |
case CMD_REPLAY: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return 0; |
return 0; |
|
|
return play_same(arg); |
return play_same(arg); |
case CMD_BLANK: |
case CMD_BLANK: |
if (fd < 0 && ! open_cd(cdname, 1)) |
if (!open_cd(cdname, 1)) |
return 0; |
return 0; |
|
|
return blank(); |
return blank(); |
case CMD_CDRIP: |
case CMD_CDRIP: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
while (isspace(*arg)) |
while (isspace(*arg)) |
|
|
|
|
return cdrip(arg); |
return cdrip(arg); |
case CMD_CDPLAY: |
case CMD_CDPLAY: |
if (fd < 0 && ! open_cd(cdname, 0)) |
if (!open_cd(cdname, 0)) |
return (0); |
return (0); |
|
|
while (isspace(*arg)) |
while (isspace(*arg)) |
|
|
char *realdev; |
char *realdev; |
int tries; |
int tries; |
|
|
if (fd > -1) |
if (fd > -1) { |
return (1); |
if (needwrite && !writeperm) { |
|
close(fd); |
|
fd = -1; |
|
} else |
|
return (1); |
|
} |
|
|
for (tries = 0; fd < 0 && tries < 10; tries++) { |
for (tries = 0; fd < 0 && tries < 10; tries++) { |
if (needwrite) |
if (needwrite) |
|
|
warn("Can't open %s", realdev); |
warn("Can't open %s", realdev); |
return (0); |
return (0); |
} |
} |
|
writeperm = needwrite; |
return (1); |
return (1); |
} |
} |
|
|