Blame include/cdio++/disc.hpp

Packit dd8086
/*
Packit dd8086
    Copyright (C) 2005, 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 disc.hpp
Packit dd8086
 *  \brief methods relating to getting Compact Disc information. This file
Packit dd8086
 *  should not be #included directly.
Packit dd8086
 */
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 getDiscmode () 
Packit dd8086
{
Packit dd8086
  return cdio_get_discmode(p_cdio);
Packit dd8086
}
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 getDiscLastLsn() 
Packit dd8086
{
Packit dd8086
  return cdio_get_disc_last_lsn(p_cdio);
Packit dd8086
}
Packit dd8086
Packit dd8086
/*!
Packit dd8086
  Get the number of the first track. 
Packit dd8086
  
Packit dd8086
  @return a track object or NULL;
Packit dd8086
  on error.
Packit dd8086
*/
Packit dd8086
CdioTrack *getFirstTrack() 
Packit dd8086
{
Packit dd8086
  track_t i_track = cdio_get_first_track_num(p_cdio);
Packit dd8086
  return (CDIO_INVALID_TRACK != i_track) 
Packit dd8086
    ? new CdioTrack(p_cdio, i_track)
Packit dd8086
    : (CdioTrack *) NULL;
Packit dd8086
}
Packit dd8086
Packit dd8086
/*!
Packit dd8086
  Get the number of the first track. 
Packit dd8086
  
Packit dd8086
  @return the track number or CDIO_INVALID_TRACK 
Packit dd8086
  on error.
Packit dd8086
*/
Packit dd8086
track_t getFirstTrackNum() 
Packit dd8086
{
Packit dd8086
  return cdio_get_first_track_num(p_cdio);
Packit dd8086
}
Packit dd8086
Packit dd8086
Packit dd8086
/*!
Packit dd8086
  Get the number of the first track. 
Packit dd8086
  
Packit dd8086
  @return a track object or NULL;
Packit dd8086
  on error.
Packit dd8086
*/
Packit dd8086
CdioTrack *getLastTrack() 
Packit dd8086
{
Packit dd8086
  track_t i_track = cdio_get_last_track_num(p_cdio);
Packit dd8086
  return (CDIO_INVALID_TRACK != i_track) 
Packit dd8086
    ? new CdioTrack(p_cdio, i_track)
Packit dd8086
    : (CdioTrack *) NULL;
Packit dd8086
}
Packit dd8086
Packit dd8086
/*!
Packit dd8086
  Get the number of the first track. 
Packit dd8086
  
Packit dd8086
  @return the track number or CDIO_INVALID_TRACK 
Packit dd8086
  on error.
Packit dd8086
*/
Packit dd8086
track_t getLastTrackNum() 
Packit dd8086
{
Packit dd8086
  return cdio_get_last_track_num(p_cdio);
Packit dd8086
}
Packit dd8086
Packit dd8086
/*!  
Packit dd8086
  Return the Joliet level recognized for p_cdio.
Packit dd8086
*/
Packit dd8086
uint8_t getJolietLevel() 
Packit dd8086
{
Packit dd8086
  return cdio_get_joliet_level(p_cdio);
Packit dd8086
}
Packit dd8086
Packit dd8086
/*!
Packit dd8086
  Get the media catalog number (MCN) from the CD.
Packit dd8086
  
Packit dd8086
  @return the media catalog number r 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 * getMcn () 
Packit dd8086
{
Packit dd8086
  return cdio_get_mcn (p_cdio);
Packit dd8086
}
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 getNumTracks () 
Packit dd8086
{
Packit dd8086
  return cdio_get_num_tracks(p_cdio);
Packit dd8086
}
Packit dd8086
Packit dd8086
/*! Find the track which contans lsn.
Packit dd8086
  CDIO_INVALID_TRACK is returned if the lsn outside of the CD or
Packit dd8086
  if there was some error. 
Packit dd8086
  
Packit dd8086
  If the lsn is before the pregap of the first track 0 is returned.
Packit dd8086
  Otherwise we return the track that spans the lsn.
Packit dd8086
*/
Packit dd8086
CdioTrack *getTrackFromNum(track_t i_track) 
Packit dd8086
{
Packit dd8086
  return new CdioTrack(p_cdio, i_track);
Packit dd8086
}
Packit dd8086
Packit dd8086
/*! Find the track which contans lsn.
Packit dd8086
  CDIO_INVALID_TRACK is returned if the lsn outside of the CD or
Packit dd8086
  if there was some error. 
Packit dd8086
  
Packit dd8086
  If the lsn is before the pregap of the first track 0 is returned.
Packit dd8086
  Otherwise we return the track that spans the lsn.
Packit dd8086
*/
Packit dd8086
CdioTrack *getTrackFromLsn(lsn_t lsn) 
Packit dd8086
{
Packit dd8086
  track_t i_track = cdio_get_track(p_cdio, lsn);
Packit dd8086
  return (CDIO_INVALID_TRACK != i_track) 
Packit dd8086
    ? new CdioTrack(p_cdio, i_track)
Packit dd8086
    : (CdioTrack *) NULL;
Packit dd8086
}
Packit dd8086
Packit dd8086
Packit dd8086
/*! 
Packit dd8086
  Return true if discmode is some sort of CD.
Packit dd8086
*/
Packit dd8086
bool isDiscmodeCdrom (discmode_t discmode) {
Packit dd8086
  return cdio_is_discmode_cdrom(discmode);
Packit dd8086
}
Packit dd8086
Packit dd8086
Packit dd8086
/*! 
Packit dd8086
  Return true if discmode is some sort of DVD.
Packit dd8086
*/
Packit dd8086
bool isDiscmodeDvd (discmode_t discmode) 
Packit dd8086
{
Packit dd8086
  return cdio_is_discmode_dvd (discmode) ;
Packit dd8086
}
Packit dd8086
Packit dd8086
/*! 
Packit dd8086
  Get CD-Text information for a CdIo_t object.
Packit dd8086
Packit dd8086
  @return the CD-Text object or NULL if obj is NULL
Packit dd8086
  or CD-Text information does not exist.
Packit dd8086
 */
Packit dd8086
CdioCDText *getCdtext ()
Packit dd8086
{
Packit dd8086
  cdtext_t *cdtext = cdio_get_cdtext (p_cdio);
Packit dd8086
Packit dd8086
  if (NULL == cdtext)
Packit dd8086
    return (CdioCDText *) NULL;
Packit dd8086
  else
Packit dd8086
    return new CdioCDText(cdtext);
Packit dd8086
}
Packit dd8086