49 lines
1.6 KiB
C
49 lines
1.6 KiB
C
/* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */
|
|
|
|
#ifndef __TOC_H
|
|
#define __TOC_H
|
|
|
|
struct command;
|
|
|
|
#include "libburn.h"
|
|
#include "structure.h"
|
|
|
|
/* return if a given entry refers to a track position */
|
|
#define TOC_ENTRY_IS_TRACK(drive, entrynum) \
|
|
((drive)->toc_entry[entrynum].point < 100)
|
|
|
|
/* return if a given entry is in audio or data format */
|
|
#define TOC_ENTRY_IS_AUDIO(drive, entrynum) \
|
|
(~(drive)->toc_entry[entrynum].control & 4)
|
|
|
|
/* return the point value for a given entry number */
|
|
#define TOC_POINT(drive, entrynum) ((drive)->toc_entry[entrynum].point)
|
|
|
|
/* return the track struct for a given entry number */
|
|
#define TOC_TRACK(drive, entrynum) \
|
|
((drive)->track[TOC_POINT(drive, entrynum) - 1])
|
|
|
|
/* return the lba of a toc entry */
|
|
#define TOC_ENTRY_PLBA(drive, entrynum) \
|
|
burn_msf_to_lba((drive)->toc_entry[(entrynum)].pmin, \
|
|
(drive)->toc_entry[(entrynum)].psec, \
|
|
(drive)->toc_entry[(entrynum)].pframe)
|
|
|
|
/* flags for the q subchannel control field */
|
|
#define TOC_CONTROL_AUDIO (0)
|
|
#define TOC_CONTROL_DATA (1 << 2)
|
|
#define TOC_CONTROL_AUDIO_TWO_CHANNELS (0)
|
|
#define TOC_CONTROL_AUDIO_FOUR_CHANNELS (1 << 3)
|
|
#define TOC_CONTROL_AUDIO_PRE_EMPHASIS (1 << 0)
|
|
#define TOC_CONTROL_DATA_RECORDED_UNINTERRUPTED (0)
|
|
#define TOC_CONTROL_DATA_RECORDED_INCREMENT (1 << 0)
|
|
#define TOC_CONTROL_COPY_PROHIBITED (0)
|
|
#define TOC_CONTROL_COPY_PERMITTED (1 << 1)
|
|
|
|
/** read a sector from each track on disc to determine modes
|
|
@param d The drive.
|
|
*/
|
|
void toc_find_modes(struct burn_drive *d);
|
|
|
|
#endif /*__TOC_H*/
|