diff --git a/example/cdchange.c b/example/cdchange.c index bf536516..a6d9f22f 100644 --- a/example/cdchange.c +++ b/example/cdchange.c @@ -1,5 +1,5 @@ /* - $Id: cdchange.c,v 1.1 2006/01/24 00:15:33 rocky Exp $ + $Id: cdchange.c,v 1.2 2006/01/24 00:53:19 rocky Exp $ Copyright (C) 2005, 2006 Rocky Bernstein @@ -23,21 +23,47 @@ # include "config.h" #endif #include -#include + +#ifdef HAVE_STDLIB_H +# include +#endif + +#ifdef HAVE_STRING_H +# include +#endif + +#ifdef HAVE_ERRNO_H +# include +#endif + +#ifdef HAVE_SYS_TYPES_H +# include +#endif + #include int main(int argc, const char *argv[]) { CdIo_t *p_cdio; + unsigned long i_sleep=30; - if (argc > 1) + if (argc > 1) { p_cdio = cdio_open (argv[1], DRIVER_DEVICE); - else { - p_cdio = cdio_open (NULL, DRIVER_DEVICE); - if (NULL == p_cdio) { - printf("Couldn't find a driver.. leaving.\n"); - return 1; + if (argc > 2) { + i_sleep = strtol(argv[2], (char **)NULL, 10); + if (errno != 0) { + printf("Invalid sleep parameter %s\n", argv[2]); + printf("Error reported back from strtol: %s\n", strerror(errno)); + return 2; + } } + } else { + p_cdio = cdio_open (NULL, DRIVER_DEVICE); + } + + if (NULL == p_cdio) { + printf("Couldn't find a driver.. leaving.\n"); + return 1; } if (cdio_get_media_changed(p_cdio)) @@ -45,7 +71,8 @@ main(int argc, const char *argv[]) else printf("Initial media status: not changed\n"); - printf("Giving you 30 seconds to change CD if you want to do so.\n"); + printf("Giving you %lu seconds to change CD if you want to do so.\n", + i_sleep); sleep(30); if (cdio_get_media_changed(p_cdio)) printf("Media status: changed\n");