Blame example/cdio-eject.c

Packit dd8086
/*
Packit dd8086
  Copyright (C) 2007, 2008, 2009 Rocky Bernstein <rocky@gnu.org>
Packit dd8086
  
Packit dd8086
  This program is free software: you can redistribute it and/or modify
Packit dd8086
  it under the terms of the GNU General Public License as published by
Packit dd8086
  the Free Software Foundation, either version 3 of the License, or
Packit dd8086
  (at your option) any later version.
Packit dd8086
Packit dd8086
  This program is distributed in the hope that it will be useful,
Packit dd8086
  but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit dd8086
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit dd8086
  GNU General Public License for more details.
Packit dd8086
Packit dd8086
  You should have received a copy of the GNU General Public License
Packit dd8086
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit dd8086
*/
Packit dd8086
#ifdef HAVE_CONFIG_H
Packit dd8086
#include "config.h"
Packit dd8086
#define __CDIO_CONFIG_H__ 1
Packit dd8086
#endif
Packit dd8086
Packit dd8086
#ifdef HAVE_STDIO_H
Packit dd8086
#include <stdio.h>
Packit dd8086
#endif
Packit dd8086
#ifdef HAVE_STRING_H
Packit dd8086
#include <string.h>
Packit dd8086
#endif
Packit dd8086
Packit dd8086
#include <cdio/cdio.h>
Packit dd8086
Packit dd8086
static void usage(char * progname)
Packit dd8086
  {
Packit dd8086
  fprintf(stderr, "Usage: %s [-t] <device>\n", progname);
Packit dd8086
  }
Packit dd8086
Packit dd8086
int main(int argc, char ** argv)
Packit dd8086
  {
Packit dd8086
  driver_return_code_t err;
Packit dd8086
  int close_tray = 0;
Packit dd8086
  const char * device = NULL;
Packit dd8086
  
Packit dd8086
  if(argc < 2 || argc > 3)
Packit dd8086
    {
Packit dd8086
    usage(argv[0]);
Packit dd8086
    return -1;
Packit dd8086
    }
Packit dd8086
Packit dd8086
  if((argc == 3) && strcmp(argv[1], "-t"))
Packit dd8086
    {
Packit dd8086
    usage(argv[0]);
Packit dd8086
    return -1;
Packit dd8086
    }
Packit dd8086
Packit dd8086
  if(argc == 2)
Packit dd8086
    device = argv[1];
Packit dd8086
  else if(argc == 3)
Packit dd8086
    {
Packit dd8086
    close_tray = 1;
Packit dd8086
    device = argv[2];
Packit dd8086
    }
Packit dd8086
Packit dd8086
  if(close_tray)
Packit dd8086
    {
Packit dd8086
    err = cdio_close_tray(device, NULL);
Packit dd8086
    if(err)
Packit dd8086
      {
Packit dd8086
      fprintf(stderr, "Closing tray failed for device %s: %s\n",
Packit dd8086
              device, cdio_driver_errmsg(err));
Packit dd8086
      return -1;
Packit dd8086
      }
Packit dd8086
    }
Packit dd8086
  else
Packit dd8086
    {
Packit dd8086
    err = cdio_eject_media_drive(device);
Packit dd8086
    if(err)
Packit dd8086
      {
Packit dd8086
      fprintf(stderr, "Ejecting failed for device %s: %s\n",
Packit dd8086
              device, cdio_driver_errmsg(err));
Packit dd8086
      return -1;
Packit dd8086
      }
Packit dd8086
    }
Packit dd8086
Packit dd8086
  return 0;
Packit dd8086
  
Packit dd8086
  }