First commit after CVS conversion. Should be just administrative changes. - libcdio.git - libcdio

index : libcdio.git
libcdio
summary refs log tree commit diff
path: root/example/eject.c
diff options
context:
space:
mode:
authorR. Bernstein <rocky@gnu.org>2008年11月29日 00:56:26 -0500
committerR. Bernstein <rocky@gnu.org>2008年11月29日 00:56:26 -0500
commit95f087cdc3e849ce033806441c249c3960f2790b (patch)
tree4fc58ff44337ca4a2eaa000c1c5074f0f7d63ee7 /example/eject.c
parent4ea407f7461bbc1c15bcf9ff4c6188dc1d7882a7 (diff)
downloadlibcdio-95f087cdc3e849ce033806441c249c3960f2790b.tar.gz
First commit after CVS conversion. Should be just administrative changes.
Diffstat (limited to 'example/eject.c')
-rw-r--r--example/eject.c 101
1 files changed, 101 insertions, 0 deletions
diff --git a/example/eject.c b/example/eject.c
new file mode 100644
index 00000000..1504bcf7
--- /dev/null
+++ b/example/eject.c
@@ -0,0 +1,101 @@
+/*
+ $Id: eject.c,v 1.5 2008年03月24日 15:30:55 karl Exp $
+
+ Copyright (C) 2005, 2006, 2008 Rocky Bernstein <rocky@gnu.org>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* Simple program to eject a CD-ROM drive door and then close it again.
+
+ If a single argument is given, it is used as the CD-ROM device to
+ eject/close. Otherwise a CD-ROM drive will be scanned for.
+
+ See also corresponding C++ program of a similar name.
+*/
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include <cdio/cdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+int
+main(int argc, const char *argv[])
+{
+ driver_return_code_t ret;
+ driver_id_t driver_id = DRIVER_DEVICE;
+ char *psz_drive = NULL;
+
+ if (argc > 1)
+ psz_drive = strdup(argv[1]);
+
+ if (!psz_drive) {
+ psz_drive = cdio_get_default_device_driver(&driver_id);
+ if (!psz_drive) {
+ printf("Can't find a CD-ROM to eject\n");
+ exit(1);
+ }
+ }
+ ret = cdio_eject_media_drive(psz_drive);
+ switch(ret) {
+ case DRIVER_OP_UNSUPPORTED:
+ printf("Eject not supported for %s.\n", psz_drive);
+ break;
+ case DRIVER_OP_SUCCESS:
+ printf("CD-ROM drive %s ejected.\n", psz_drive);
+ break;
+ default:
+ printf("Eject of CD-ROM drive %s failed.\n", psz_drive);
+ break;
+ }
+
+ if (DRIVER_OP_SUCCESS == cdio_close_tray(psz_drive, &driver_id)) {
+ printf("Closed tray of CD-ROM drive %s.\n", psz_drive);
+ } else {
+ printf("Closing tray of CD-ROM drive %s failed.\n", psz_drive);
+ }
+ free(psz_drive);
+
+ ret = cdio_eject_media_drive(NULL);
+ switch(ret) {
+ case DRIVER_OP_UNSUPPORTED:
+ printf("Eject not supported for default device.\n");
+ break;
+ case DRIVER_OP_SUCCESS:
+ printf("CD-ROM drive ejected for default device.\n");
+ break;
+ default:
+ printf("Eject of CD-ROM drive failed for default device.\n");
+ break;
+ }
+
+ driver_id = DRIVER_DEVICE;
+ if (DRIVER_OP_SUCCESS == cdio_close_tray(NULL, &driver_id)) {
+ printf("Closed tray of CD-ROM drive for default disc driver:\n\t%s\n",
+ cdio_driver_describe(driver_id));
+ } else {
+ printf("Closing tray of CD-ROM drive failed for default "
+ "disc driver:\n\t%s\n", cdio_driver_describe(driver_id));
+ }
+
+ return 0;
+}
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月30日 14:20:15 +0000

AltStyle によって変換されたページ (->オリジナル) /