First commit after CVS conversion. Should be just administrative changes.
This commit is contained in:
174
include/cdio++/disc.hpp
Normal file
174
include/cdio++/disc.hpp
Normal file
@@ -0,0 +1,174 @@
|
||||
/*
|
||||
$Id: disc.hpp,v 1.2 2008/03/25 15:59:10 karl Exp $
|
||||
|
||||
Copyright (C) 2005, 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** \file disc.hpp
|
||||
* \brief methods relating to getting Compact Disc information. This file
|
||||
* should not be #included directly.
|
||||
*/
|
||||
|
||||
/*!
|
||||
Get disc mode - the kind of CD (CD-DA, CD-ROM mode 1, CD-MIXED, etc.
|
||||
that we've got. The notion of "CD" is extended a little to include
|
||||
DVD's.
|
||||
*/
|
||||
discmode_t getDiscmode ()
|
||||
{
|
||||
return cdio_get_discmode(p_cdio);
|
||||
}
|
||||
|
||||
/*!
|
||||
Get the lsn of the end of the CD
|
||||
|
||||
@return the lsn. On error 0 or CDIO_INVALD_LSN.
|
||||
*/
|
||||
lsn_t getDiscLastLsn()
|
||||
{
|
||||
return cdio_get_disc_last_lsn(p_cdio);
|
||||
}
|
||||
|
||||
/*!
|
||||
Get the number of the first track.
|
||||
|
||||
@return a track object or NULL;
|
||||
on error.
|
||||
*/
|
||||
CdioTrack *getFirstTrack()
|
||||
{
|
||||
track_t i_track = cdio_get_first_track_num(p_cdio);
|
||||
return (CDIO_INVALID_TRACK != i_track)
|
||||
? new CdioTrack(p_cdio, i_track)
|
||||
: (CdioTrack *) NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
Get the number of the first track.
|
||||
|
||||
@return the track number or CDIO_INVALID_TRACK
|
||||
on error.
|
||||
*/
|
||||
track_t getFirstTrackNum()
|
||||
{
|
||||
return cdio_get_first_track_num(p_cdio);
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
Get the number of the first track.
|
||||
|
||||
@return a track object or NULL;
|
||||
on error.
|
||||
*/
|
||||
CdioTrack *getLastTrack()
|
||||
{
|
||||
track_t i_track = cdio_get_last_track_num(p_cdio);
|
||||
return (CDIO_INVALID_TRACK != i_track)
|
||||
? new CdioTrack(p_cdio, i_track)
|
||||
: (CdioTrack *) NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
Get the number of the first track.
|
||||
|
||||
@return the track number or CDIO_INVALID_TRACK
|
||||
on error.
|
||||
*/
|
||||
track_t getLastTrackNum()
|
||||
{
|
||||
return cdio_get_last_track_num(p_cdio);
|
||||
}
|
||||
|
||||
/*!
|
||||
Return the Joliet level recognized for p_cdio.
|
||||
*/
|
||||
uint8_t getJolietLevel()
|
||||
{
|
||||
return cdio_get_joliet_level(p_cdio);
|
||||
}
|
||||
|
||||
/*!
|
||||
Get the media catalog number (MCN) from the CD.
|
||||
|
||||
@return the media catalog number r NULL if there is none or we
|
||||
don't have the ability to get it.
|
||||
|
||||
Note: string is malloc'd so caller has to free() the returned
|
||||
string when done with it.
|
||||
|
||||
*/
|
||||
char * getMcn ()
|
||||
{
|
||||
return cdio_get_mcn (p_cdio);
|
||||
}
|
||||
|
||||
/*!
|
||||
Get the number of tracks on the CD.
|
||||
|
||||
@return the number of tracks, or CDIO_INVALID_TRACK if there is
|
||||
an error.
|
||||
*/
|
||||
track_t getNumTracks ()
|
||||
{
|
||||
return cdio_get_num_tracks(p_cdio);
|
||||
}
|
||||
|
||||
/*! Find the track which contans lsn.
|
||||
CDIO_INVALID_TRACK is returned if the lsn outside of the CD or
|
||||
if there was some error.
|
||||
|
||||
If the lsn is before the pregap of the first track 0 is returned.
|
||||
Otherwise we return the track that spans the lsn.
|
||||
*/
|
||||
CdioTrack *getTrackFromNum(track_t i_track)
|
||||
{
|
||||
return new CdioTrack(p_cdio, i_track);
|
||||
}
|
||||
|
||||
/*! Find the track which contans lsn.
|
||||
CDIO_INVALID_TRACK is returned if the lsn outside of the CD or
|
||||
if there was some error.
|
||||
|
||||
If the lsn is before the pregap of the first track 0 is returned.
|
||||
Otherwise we return the track that spans the lsn.
|
||||
*/
|
||||
CdioTrack *getTrackFromLsn(lsn_t lsn)
|
||||
{
|
||||
track_t i_track = cdio_get_track(p_cdio, lsn);
|
||||
return (CDIO_INVALID_TRACK != i_track)
|
||||
? new CdioTrack(p_cdio, i_track)
|
||||
: (CdioTrack *) NULL;
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
Return true if discmode is some sort of CD.
|
||||
*/
|
||||
bool isDiscmodeCdrom (discmode_t discmode) {
|
||||
return cdio_is_discmode_cdrom(discmode);
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
Return true if discmode is some sort of DVD.
|
||||
*/
|
||||
bool isDiscmodeDvd (discmode_t discmode)
|
||||
{
|
||||
return cdio_is_discmode_dvd (discmode) ;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user