Blame include/cdio/disc.h

Packit dd8086
/* -*- c -*-
Packit dd8086
Packit dd8086
    Copyright (C) 2004, 2005, 2006, 2008, 2010, 2012, 2014
Packit dd8086
    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
/**
Packit dd8086
   \file disc.h 
Packit dd8086
   \brief  The top-level header for disc-related libcdio calls.
Packit dd8086
 */
Packit dd8086
#ifndef CDIO_DISC_H_
Packit dd8086
#define CDIO_DISC_H_
Packit dd8086
Packit dd8086
#ifdef __cplusplus
Packit dd8086
extern "C" {
Packit dd8086
#endif /* __cplusplus */
Packit dd8086
Packit dd8086
    /**
Packit dd8086
       disc modes. The first combined from MMC-5 6.33.3.13 (Send
Packit dd8086
       CUESHEET), "DVD Book" from MMC-5 Table 400, page 419.  and
Packit dd8086
       GNU/Linux /usr/include/linux/cdrom.h and we've added DVD.
Packit dd8086
    */
Packit dd8086
  typedef enum {
Packit dd8086
    CDIO_DISC_MODE_CD_DA,           /**< CD-DA */
Packit dd8086
    CDIO_DISC_MODE_CD_DATA,         /**< CD-ROM form 1 */
Packit dd8086
    CDIO_DISC_MODE_CD_XA,           /**< CD-ROM XA form2 */
Packit dd8086
    CDIO_DISC_MODE_CD_MIXED,        /**< Some combo of above. */
Packit dd8086
    CDIO_DISC_MODE_DVD_ROM,         /**< DVD ROM (e.g. movies) */
Packit dd8086
    CDIO_DISC_MODE_DVD_RAM,         /**< DVD-RAM */
Packit dd8086
    CDIO_DISC_MODE_DVD_R,           /**< DVD-R */
Packit dd8086
    CDIO_DISC_MODE_DVD_RW,          /**< DVD-RW */
Packit dd8086
    CDIO_DISC_MODE_HD_DVD_ROM,      /**< HD DVD-ROM */
Packit dd8086
    CDIO_DISC_MODE_HD_DVD_RAM,      /**< HD DVD-RAM */
Packit dd8086
    CDIO_DISC_MODE_HD_DVD_R,        /**< HD DVD-R */
Packit dd8086
    CDIO_DISC_MODE_DVD_PR,          /**< DVD+R */
Packit dd8086
    CDIO_DISC_MODE_DVD_PRW,         /**< DVD+RW */
Packit dd8086
    CDIO_DISC_MODE_DVD_PRW_DL,      /**< DVD+RW DL */
Packit dd8086
    CDIO_DISC_MODE_DVD_PR_DL,       /**< DVD+R DL */
Packit dd8086
    CDIO_DISC_MODE_DVD_OTHER,       /**< Unknown/unclassified DVD type */
Packit dd8086
    CDIO_DISC_MODE_NO_INFO,
Packit dd8086
    CDIO_DISC_MODE_ERROR,
Packit dd8086
    CDIO_DISC_MODE_CD_I         /**< CD-i. */
Packit dd8086
  } discmode_t;
Packit dd8086
Packit dd8086
  extern const char *discmode2str[];
Packit dd8086
Packit dd8086
  /**
Packit dd8086
    Get binary CD-Text information for a CdIo_t object.
Packit dd8086
Packit dd8086
    @param p_cdio the CD object that may contain CD-Text information.
Packit dd8086
    @return malloc'd pointer to raw CD-Text data as stored on the disc or
Packit dd8086
    NULL if p_cdio is NULL or CD-Text information does not exist. Return
Packit dd8086
    value must be freed with cdio_free() when done with it and not NULL.
Packit dd8086
  */
Packit dd8086
  uint8_t * cdio_get_cdtext_raw (CdIo_t *p_cdio);
Packit dd8086
Packit dd8086
  /** 
Packit dd8086
    Get CD-Text information for a CdIo_t object.
Packit dd8086
 
Packit dd8086
    @param p_cdio the CD object that may contain CD-Text information.
Packit dd8086
    @return the CD-Text object or NULL if p_cdio is NULL
Packit dd8086
    or CD-Text information does not exist.
Packit dd8086
  */
Packit dd8086
  cdtext_t *cdio_get_cdtext (CdIo_t *p_cdio);
Packit dd8086
Packit dd8086
  /** 
Packit dd8086
    Get disc mode - the kind of CD (CD-DA, CD-ROM mode 1, CD-MIXED, etc.
Packit dd8086
    that we've got. The notion of "CD" is extended a little to include
Packit dd8086
    DVD's.
Packit dd8086
  */
Packit dd8086
  discmode_t cdio_get_discmode (CdIo_t *p_cdio);
Packit dd8086
Packit dd8086
  /**
Packit dd8086
    Get the lsn of the end of the CD
Packit dd8086
Packit dd8086
    @return the lsn. On error 0 or CDIO_INVALD_LSN.
Packit dd8086
  */
Packit dd8086
  lsn_t cdio_get_disc_last_lsn(const CdIo_t *p_cdio);
Packit dd8086
  
Packit dd8086
  /**
Packit dd8086
    Return the Joliet level recognized for p_cdio.
Packit dd8086
  */
Packit dd8086
  uint8_t cdio_get_joliet_level(const CdIo_t *p_cdio);
Packit dd8086
Packit dd8086
  /**
Packit dd8086
    Get the media catalog number (MCN) from the CD.
Packit dd8086
Packit dd8086
    @return the media catalog number or NULL if there is none or we
Packit dd8086
    don't have the ability to get it.
Packit dd8086
Packit dd8086
    Note: The caller must free the returned string with cdio_free()
Packit dd8086
    when done with it.
Packit dd8086
Packit dd8086
  */
Packit dd8086
  char * cdio_get_mcn (const CdIo_t *p_cdio);
Packit dd8086
Packit dd8086
  /**
Packit dd8086
    Get the number of tracks on the CD.
Packit dd8086
Packit dd8086
    @return the number of tracks, or CDIO_INVALID_TRACK if there is
Packit dd8086
    an error.
Packit dd8086
  */
Packit dd8086
  track_t cdio_get_num_tracks (const CdIo_t *p_cdio);
Packit dd8086
  
Packit dd8086
  /**
Packit dd8086
    Return true if discmode is some sort of CD.
Packit dd8086
  */
Packit dd8086
  bool cdio_is_discmode_cdrom (discmode_t discmode);
Packit dd8086
  
Packit dd8086
  /**
Packit dd8086
    Return true if discmode is some sort of DVD.
Packit dd8086
  */
Packit dd8086
  bool cdio_is_discmode_dvd (discmode_t discmode);
Packit dd8086
  
Packit dd8086
  /**
Packit dd8086
      cdio_stat_size is deprecated. @see cdio_get_disc_last_lsn  
Packit dd8086
  */
Packit dd8086
#define cdio_stat_size cdio_get_disc_last_lsn
Packit dd8086
Packit dd8086
#ifdef __cplusplus
Packit dd8086
}
Packit dd8086
#endif /* __cplusplus */
Packit dd8086
Packit dd8086
#endif /* CDIO_DISC_H_ */