|
Packit |
dd8086 |
/*
|
|
Packit |
dd8086 |
$Id: track.hpp,v 1.2 2008/03/25 15:59:10 karl Exp $
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
Copyright (C) 2005, 2008 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 track.hpp
|
|
Packit |
dd8086 |
* \brief methods relating to getting Compact Discs. This file
|
|
Packit |
dd8086 |
* should not be #included directly.
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*!
|
|
Packit |
dd8086 |
Return an opaque CdIo_t pointer for the given track object.
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
CdIo_t *getCdIo()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return p_cdio;
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*! Return number of channels in track: 2 or 4; -2 if not
|
|
Packit |
dd8086 |
implemented or -1 for error.
|
|
Packit |
dd8086 |
Not meaningful if track is not an audio track.
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
int getChannels()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return cdio_get_track_channels(p_cdio, i_track);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*! Return copy protection status on a track. Is this meaningful
|
|
Packit |
dd8086 |
if not an audio track?
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
track_flag_t getCopyPermit()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return cdio_get_track_copy_permit(p_cdio, i_track);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*!
|
|
Packit |
dd8086 |
Get the format (audio, mode2, mode1) of track.
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
track_format_t getFormat()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return cdio_get_track_format(p_cdio, i_track);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*!
|
|
Packit |
dd8086 |
Return true if we have XA data (green, mode2 form1) or
|
|
Packit |
dd8086 |
XA data (green, mode2 form2). That is track begins:
|
|
Packit |
dd8086 |
sync - header - subheader
|
|
Packit |
dd8086 |
12 4 - 8
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
FIXME: there's gotta be a better design for this and get_track_format?
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
bool getGreen()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return cdio_get_track_green(p_cdio, i_track);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*!
|
|
Packit |
dd8086 |
Return the ending LSN. CDIO_INVALID_LSN is returned on error.
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
lsn_t getLastLsn()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return cdio_get_track_last_lsn(p_cdio, i_track);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*!
|
|
Packit |
dd8086 |
Get the starting LBA.
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
@return the starting LBA or CDIO_INVALID_LBA on error.
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
lba_t getLba()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return cdio_get_track_lba(p_cdio, i_track);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*!
|
|
Packit |
dd8086 |
@return the starting LSN or CDIO_INVALID_LSN on error.
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
lsn_t getLsn()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return cdio_get_track_lsn(p_cdio, i_track);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*!
|
|
Packit |
dd8086 |
Return the starting MSF (minutes/secs/frames) for track number
|
|
Packit |
dd8086 |
i_track in p_cdio.
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
@return true if things worked or false if there is no track entry.
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
bool getMsf(/*out*/ msf_t &msf)
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return cdio_get_track_msf(p_cdio, i_track,/*out*/ &msf;;
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*!
|
|
Packit |
dd8086 |
Return the track number of the track object.
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
track_t getTrackNum()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return i_track;
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*! Get linear preemphasis status on an audio track
|
|
Packit |
dd8086 |
This is not meaningful if not an audio track?
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
track_flag_t getPreemphasis()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return cdio_get_track_preemphasis(p_cdio, i_track);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/*!
|
|
Packit |
dd8086 |
Get the number of sectors between this track an the next. This
|
|
Packit |
dd8086 |
includes any pregap sectors before the start of the next track.
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
@return the number of sectors or 0 if there is an error.
|
|
Packit |
dd8086 |
*/
|
|
Packit |
dd8086 |
unsigned int getSecCount()
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
return cdio_get_track_sec_count(p_cdio, i_track);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
|