track.h File Reference

The top-level header for track-related libcdio calls. More...

Go to the source code of this file.

Data Structures

struct  track_flags_t
 Structure containing attributes associated with a track. More...

Defines

#define CDIO_CD_MIN_TRACK_NO   1

Enumerations

enum  track_format_t {
  TRACK_FORMAT_AUDIO, TRACK_FORMAT_CDI, TRACK_FORMAT_XA, TRACK_FORMAT_DATA,
  TRACK_FORMAT_PSX, TRACK_FORMAT_ERROR
}
enum  track_flag_t { CDIO_TRACK_FLAG_FALSE, CDIO_TRACK_FLAG_TRUE, CDIO_TRACK_FLAG_ERROR, CDIO_TRACK_FLAG_UNKNOWN }
enum  cdio_track_enums {
  CDIO_CDROM_LBA = 0x01, CDIO_CDROM_MSF = 0x02, CDIO_CDROM_DATA_TRACK = 0x04, CDIO_CDROM_CDI_TRACK = 0x10,
  CDIO_CDROM_XA_TRACK = 0x20, CDIO_CD_MAX_TRACKS = 99, CDIO_CDROM_LEADOUT_TRACK = 0xAA, CDIO_INVALID_TRACK = 0xFF
}
enum  trackmode_t {
  AUDIO, MODE1, MODE1_RAW, MODE2,
  MODE2_FORM1, MODE2_FORM2, MODE2_FORM_MIX, MODE2_RAW
}

Functions

cdtext_tcdio_get_cdtext (CdIo_t *p_cdio, track_t i_track)
track_t cdio_get_first_track_num (const CdIo_t *p_cdio)
track_t cdio_get_last_track_num (const CdIo_t *p_cdio)
track_t cdio_get_track (const CdIo_t *p_cdio, lsn_t lsn)
int cdio_get_track_channels (const CdIo_t *p_cdio, track_t i_track)
track_flag_t cdio_get_track_copy_permit (const CdIo_t *p_cdio, track_t i_track)
track_format_t cdio_get_track_format (const CdIo_t *p_cdio, track_t i_track)
bool cdio_get_track_green (const CdIo_t *p_cdio, track_t i_track)
lsn_t cdio_get_track_last_lsn (const CdIo_t *p_cdio, track_t i_track)
lba_t cdio_get_track_lba (const CdIo_t *p_cdio, track_t i_track)
lsn_t cdio_get_track_lsn (const CdIo_t *p_cdio, track_t i_track)
bool cdio_get_track_msf (const CdIo_t *p_cdio, track_t i_track, msf_t *msf)
track_flag_t cdio_get_track_preemphasis (const CdIo_t *p_cdio, track_t i_track)
unsigned int cdio_get_track_sec_count (const CdIo_t *p_cdio, track_t i_track)

Variables

const char * track_format2str [6]


Detailed Description

The top-level header for track-related libcdio calls.


Define Documentation

#define CDIO_CD_MIN_TRACK_NO   1
 

Smallest CD track number


Enumeration Type Documentation

enum cdio_track_enums
 

An enumeration for some of the CDIO_CDROM_* #defines below. This isn't really an enumeration one would really use in a program; it is to be helpful in debuggers where wants just to refer to the CDIO_CDROM_* names and get something.

Enumerator:
CDIO_CDROM_LBA  "logical block": first frame is #0
CDIO_CDROM_MSF  "minute-second-frame": binary, not BCD here!
CDIO_CDROM_DATA_TRACK 
CDIO_CDROM_CDI_TRACK 
CDIO_CDROM_XA_TRACK 
CDIO_CD_MAX_TRACKS  Largest CD track number
CDIO_CDROM_LEADOUT_TRACK  Lead-out track number
CDIO_INVALID_TRACK  Constant for invalid track number

enum track_flag_t
 

Enumerator:
CDIO_TRACK_FLAG_FALSE 
CDIO_TRACK_FLAG_TRUE 
CDIO_TRACK_FLAG_ERROR 
CDIO_TRACK_FLAG_UNKNOWN 

enum track_format_t
 

Enumerator:
TRACK_FORMAT_AUDIO  Audio track, e.g. CD-DA
TRACK_FORMAT_CDI  CD-i. How this is different from DATA below?
TRACK_FORMAT_XA  Mode2 of some sort
TRACK_FORMAT_DATA  Mode1 of some sort
TRACK_FORMAT_PSX  Playstation CD. Like audio but only 2336 bytes of user data.
TRACK_FORMAT_ERROR  Dunno what is, or some other error.

enum trackmode_t
 

track modes (Table 350) reference: MMC-3 draft revsion - 10g

Enumerator:
AUDIO  2352 byte block length
MODE1  2048 byte block length
MODE1_RAW  2352 byte block length
MODE2  2336 byte block length
MODE2_FORM1  2048 byte block length
MODE2_FORM2  2324 byte block length
MODE2_FORM_MIX  2336 byte block length
MODE2_RAW  2352 byte block length


Function Documentation

cdtext_t* cdio_get_cdtext CdIo_t p_cdio,
track_t  i_track
 

Get CD-Text information for a CdIo_t object.

Parameters:
p_cdio the CD object that may contain CD-Text information.
i_track track for which we are requesting CD-Text information.
Returns:
the CD-Text object or NULL if obj is NULL or CD-Text information does not exist.
If i_track is 0 or CDIO_CDROM_LEADOUT_TRACK the track returned is the information assocated with the CD.

track_t cdio_get_first_track_num const CdIo_t p_cdio  ) 
 

Get the number of the first track.

Returns:
the track number or CDIO_INVALID_TRACK on error.

track_t cdio_get_last_track_num const CdIo_t p_cdio  ) 
 

Return the last track number. CDIO_INVALID_TRACK is returned on error.

track_t cdio_get_track const CdIo_t p_cdio,
lsn_t  lsn
 

Find the track which contains 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.

int cdio_get_track_channels const CdIo_t p_cdio,
track_t  i_track
 

Return number of channels in track: 2 or 4; -2 if not implemented or -1 for error. Not meaningful if track is not an audio track.

track_flag_t cdio_get_track_copy_permit const CdIo_t p_cdio,
track_t  i_track
 

Return copy protection status on a track. Is this meaningful if not an audio track?

track_format_t cdio_get_track_format const CdIo_t p_cdio,
track_t  i_track
 

Get the format (audio, mode2, mode1) of track.

bool cdio_get_track_green const CdIo_t p_cdio,
track_t  i_track
 

Return true if we have XA data (green, mode2 form1) or XA data (green, mode2 form2). That is track begins: sync - header - subheader 12 4 - 8

FIXME: there's gotta be a better design for this and get_track_format?

lsn_t cdio_get_track_last_lsn const CdIo_t p_cdio,
track_t  i_track
 

Return the ending LSN for track number i_track in cdio. CDIO_INVALID_LSN is returned on error.

lba_t cdio_get_track_lba const CdIo_t p_cdio,
track_t  i_track
 

Get the starting LBA for track number i_track in p_cdio. Track numbers usually start at something greater than 0, usually 1.

The "leadout" track is specified either by using i_track CDIO_CDROM_LEADOUT_TRACK or the total tracks+1.

Parameters:
p_cdio object to get information from
i_track the track number we want the LSN for
Returns:
the starting LBA or CDIO_INVALID_LBA on error.

lsn_t cdio_get_track_lsn const CdIo_t p_cdio,
track_t  i_track
 

Return the starting LSN for track number i_track in p_cdio. Track numbers usually start at something greater than 0, usually 1.

The "leadout" track is specified either by using i_track CDIO_CDROM_LEADOUT_TRACK or the total tracks+1.

Parameters:
p_cdio object to get information from
i_track the track number we want the LSN for
Returns:
the starting LSN or CDIO_INVALID_LSN on error.

bool cdio_get_track_msf const CdIo_t p_cdio,
track_t  i_track,
msf_t msf
 

Return the starting MSF (minutes/secs/frames) for track number i_track in p_cdio. Track numbers usually start at something greater than 0, usually 1.

The "leadout" track is specified either by using i_track CDIO_CDROM_LEADOUT_TRACK or the total tracks+1.

Returns:
true if things worked or false if there is no track entry.

track_flag_t cdio_get_track_preemphasis const CdIo_t p_cdio,
track_t  i_track
 

Get linear preemphasis status on an audio track This is not meaningful if not an audio track?

unsigned int cdio_get_track_sec_count const CdIo_t p_cdio,
track_t  i_track
 

Get the number of sectors between this track an the next. This includes any pregap sectors before the start of the next track. Track numbers usually start at something greater than 0, usually 1.

Returns:
the number of sectors or 0 if there is an error.


Variable Documentation

const char* track_format2str[6]
 

Printable tags for track_format_t enumeration.


Generated on Fri Oct 27 06:38:09 2006 for libcdio by  doxygen 1.4.6