Blame include/cdio++/cdio.hpp

Packit dd8086
/*
Packit dd8086
    Copyright (C) 2005, 2006, 2008, 2012 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
Packit dd8086
/** \file cdio.hpp
Packit dd8086
 *
Packit dd8086
 *  \brief C++ class for libcdio: the CD Input and Control
Packit dd8086
 *  library. Applications use this for anything regarding libcdio.
Packit dd8086
 */
Packit dd8086
Packit dd8086
#ifndef CDIO_CDIOPP_HPP_
Packit dd8086
#define CDIO_CDIOPP_HPP_
Packit dd8086
Packit dd8086
#include <cdio/cdio.h>
Packit dd8086
#include <cdio/audio.h>
Packit dd8086
#include <cdio/dvd.h>
Packit dd8086
#include <cdio/mmc.h>
Packit dd8086
#include <cdio/mmc_cmds.h>
Packit dd8086
Packit dd8086
// Make pre- and post-increment operators for enums in libcdio where it
Packit dd8086
// makes sense.
Packit dd8086
#include <cdio++/enum.hpp>
Packit dd8086
Packit dd8086
/** Class for driver exceptions. **/
Packit dd8086
class DriverOpException
Packit dd8086
{
Packit dd8086
public:
Packit dd8086
  driver_return_code_t driver_return_code;
Packit dd8086
  DriverOpException( void ) {
Packit dd8086
    driver_return_code = DRIVER_OP_SUCCESS;
Packit dd8086
  };
Packit dd8086
  DriverOpException( driver_return_code_t drc ) {
Packit dd8086
    driver_return_code = drc;
Packit dd8086
  };
Packit dd8086
  driver_return_code_t get_code(void) {
Packit dd8086
    return driver_return_code;
Packit dd8086
  };
Packit dd8086
  const char *get_msg(void) {
Packit dd8086
    return cdio_driver_errmsg(driver_return_code);
Packit dd8086
  };
Packit dd8086
};
Packit dd8086
Packit dd8086
class DriverOpError: public DriverOpException
Packit dd8086
{
Packit dd8086
public:
Packit dd8086
  DriverOpError(void) { driver_return_code = DRIVER_OP_ERROR; }
Packit dd8086
};
Packit dd8086
Packit dd8086
class DriverOpUnsupported: public DriverOpException
Packit dd8086
{
Packit dd8086
public:
Packit dd8086
  DriverOpUnsupported(void) { driver_return_code = DRIVER_OP_UNSUPPORTED; }
Packit dd8086
};
Packit dd8086
Packit dd8086
class DriverOpUninit: public DriverOpException
Packit dd8086
{
Packit dd8086
public:
Packit dd8086
  DriverOpUninit(void) { driver_return_code = DRIVER_OP_UNINIT; }
Packit dd8086
};
Packit dd8086
Packit dd8086
class DriverOpNotPermitted: public DriverOpException
Packit dd8086
{
Packit dd8086
public:
Packit dd8086
  DriverOpNotPermitted(void) {driver_return_code = DRIVER_OP_NOT_PERMITTED;}
Packit dd8086
};
Packit dd8086
Packit dd8086
class DriverOpBadParameter: public DriverOpException
Packit dd8086
{
Packit dd8086
public:
Packit dd8086
  DriverOpBadParameter(void) {driver_return_code = DRIVER_OP_BAD_PARAMETER;}
Packit dd8086
};
Packit dd8086
Packit dd8086
class DriverOpBadPointer: public DriverOpException
Packit dd8086
{
Packit dd8086
public:
Packit dd8086
  DriverOpBadPointer(void) {driver_return_code = DRIVER_OP_BAD_POINTER;}
Packit dd8086
};
Packit dd8086
Packit dd8086
class DriverOpNoDriver: public DriverOpException
Packit dd8086
{
Packit dd8086
public:
Packit dd8086
  DriverOpNoDriver(void) {driver_return_code = DRIVER_OP_NO_DRIVER;}
Packit dd8086
};
Packit dd8086
Packit dd8086
void possible_throw_device_exception(driver_return_code_t drc);
Packit dd8086
Packit dd8086
/** A class relating to CD-Text. Use invalid track number 0 to specify
Packit dd8086
    CD-Text for the CD (as opposed to a specific track).
Packit dd8086
*/
Packit dd8086
class CdioCDText
Packit dd8086
{
Packit dd8086
public:
Packit dd8086
  CdioCDText(cdtext_t *cdtext)
Packit dd8086
  {
Packit dd8086
    if (NULL == cdtext)
Packit dd8086
      cdtext = cdtext_init();
Packit dd8086
Packit dd8086
    p_cdtext = cdtext;
Packit dd8086
  }
Packit dd8086
Packit dd8086
  ~CdioCDText()
Packit dd8086
  {
Packit dd8086
    cdtext_destroy(p_cdtext);
Packit dd8086
    p_cdtext = (cdtext_t *) NULL;
Packit dd8086
  }
Packit dd8086
Packit dd8086
  // Other member functions
Packit dd8086
#include "cdtext.hpp"
Packit dd8086
Packit dd8086
private:
Packit dd8086
  cdtext_t *p_cdtext;
Packit dd8086
};
Packit dd8086
Packit dd8086
/** A class relating to tracks. A track object basically saves device
Packit dd8086
    and track number information so that in track operations these
Packit dd8086
    don't have be specified.
Packit dd8086
*/
Packit dd8086
class CdioTrack
Packit dd8086
{
Packit dd8086
Packit dd8086
public:
Packit dd8086
  CdioTrack(CdIo_t *p, track_t t)
Packit dd8086
  {
Packit dd8086
    i_track = t;
Packit dd8086
    p_cdio = p;
Packit dd8086
  }
Packit dd8086
Packit dd8086
  // Other member functions
Packit dd8086
#include "track.hpp"
Packit dd8086
Packit dd8086
private:
Packit dd8086
  track_t i_track;
Packit dd8086
  CdIo_t *p_cdio;
Packit dd8086
};
Packit dd8086
Packit dd8086
/** A class relating to a CD-ROM device or pseudo CD-ROM device with
Packit dd8086
    has a particular CD image. A device basically saves the libcdio
Packit dd8086
    "object" (of type CdIo *).
Packit dd8086
*/
Packit dd8086
class CdioDevice
Packit dd8086
{
Packit dd8086
Packit dd8086
protected:
Packit dd8086
Packit dd8086
  CdIo_t *p_cdio;
Packit dd8086
Packit dd8086
public:
Packit dd8086
Packit dd8086
  CdioDevice()
Packit dd8086
  {
Packit dd8086
      p_cdio = (CdIo_t *) NULL;
Packit dd8086
  };
Packit dd8086
Packit dd8086
  ~CdioDevice()
Packit dd8086
  {
Packit dd8086
    cdio_destroy(p_cdio);
Packit dd8086
    p_cdio = (CdIo_t *) NULL;
Packit dd8086
  };
Packit dd8086
Packit dd8086
  // Other member functions
Packit dd8086
#include "device.hpp"
Packit dd8086
#include "disc.hpp"
Packit dd8086
#include "mmc.hpp"
Packit dd8086
#include "read.hpp"
Packit dd8086
Packit dd8086
};
Packit dd8086
Packit dd8086
/* Things related to devices. No class or object is needed. */
Packit dd8086
#include "devices.hpp"
Packit dd8086
Packit dd8086
#endif /* CDIO_CDIOPP_HPP_ */