|
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 |
|