libcdio
0.83
Main Page
Data Structures
Files
File List
Globals
include
cdio
track.h
Go to the documentation of this file.
1
/*
2
$Id: track.h,v 1.14 2008/03/25 15:59:09 karl Exp $
3
4
Copyright (C) 2005, 2006, 2008 Rocky Bernstein <rocky@gnu.org>
5
6
This program is free software: you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation, either version 3 of the License, or
9
(at your option) any later version.
10
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
23
#ifndef __CDIO_TRACK_H__
24
#define __CDIO_TRACK_H__
25
26
#ifdef __cplusplus
27
extern
"C"
{
28
#endif
/* __cplusplus */
29
31
extern
const
char
*
track_format2str
[6];
32
33
typedef
enum
{
34
TRACK_FORMAT_AUDIO
,
35
TRACK_FORMAT_CDI
,
36
TRACK_FORMAT_XA
,
37
TRACK_FORMAT_DATA
,
38
TRACK_FORMAT_PSX
,
41
TRACK_FORMAT_ERROR
42
}
track_format_t
;
43
44
typedef
enum
{
45
CDIO_TRACK_FLAG_FALSE
,
46
CDIO_TRACK_FLAG_TRUE
,
47
CDIO_TRACK_FLAG_ERROR
,
48
CDIO_TRACK_FLAG_UNKNOWN
49
}
track_flag_t
;
50
52
typedef
struct
{
53
track_flag_t
preemphasis
;
54
track_flag_t
copy_permit
;
55
int
channels;
58
}
track_flags_t
;
59
72
extern
enum
cdio_track_enums
{
73
CDIO_CDROM_LBA
= 0x01,
74
CDIO_CDROM_MSF
= 0x02,
76
CDIO_CDROM_DATA_TRACK
= 0x04,
77
CDIO_CDROM_CDI_TRACK
= 0x10,
78
CDIO_CDROM_XA_TRACK
= 0x20,
79
CDIO_CD_MAX_TRACKS
= 99,
80
CDIO_CDROM_LEADOUT_TRACK
= 0xAA,
81
CDIO_INVALID_TRACK
= 0xFF,
83
}
cdio_track_enums
;
84
85
#define CDIO_CD_MIN_TRACK_NO 1
90
typedef enum {
91
AUDIO
,
92
MODE1
,
93
MODE1_RAW
,
94
MODE2
,
95
MODE2_FORM1
,
96
MODE2_FORM2
,
97
MODE2_FORM_MIX
,
98
MODE2_RAW
99
}
trackmode_t
;
100
112
cdtext_t
*
cdio_get_cdtext
(
CdIo_t
*p_cdio,
track_t
i_track);
113
120
track_t
cdio_get_first_track_num
(
const
CdIo_t
*p_cdio);
121
126
track_t
cdio_get_last_track_num
(
const
CdIo_t
*p_cdio);
127
128
136
track_t
cdio_get_track
(
const
CdIo_t
*p_cdio,
lsn_t
lsn);
137
142
int
cdio_get_track_channels
(
const
CdIo_t
*p_cdio,
track_t
i_track);
143
147
track_flag_t
cdio_get_track_copy_permit
(
const
CdIo_t
*p_cdio,
148
track_t
i_track);
149
153
track_format_t
cdio_get_track_format
(
const
CdIo_t
*p_cdio,
track_t
i_track);
154
163
bool
cdio_get_track_green
(
const
CdIo_t
*p_cdio,
track_t
i_track);
164
169
lsn_t
cdio_get_track_last_lsn
(
const
CdIo_t
*p_cdio,
track_t
i_track);
170
183
lba_t
cdio_get_track_lba
(
const
CdIo_t
*p_cdio,
track_t
i_track);
184
197
lsn_t
cdio_get_track_lsn
(
const
CdIo_t
*p_cdio,
track_t
i_track);
198
208
lba_t
cdio_get_track_pregap_lba
(
const
CdIo_t
*p_cdio,
track_t
i_track);
209
219
lsn_t
cdio_get_track_pregap_lsn
(
const
CdIo_t
*p_cdio,
track_t
i_track);
220
233
char
*
cdio_get_track_isrc
(
const
CdIo_t
*p_cdio,
track_t
i_track);
234
245
bool
cdio_get_track_msf
(
const
CdIo_t
*p_cdio,
track_t
i_track,
246
/*out*/
msf_t
*msf);
247
251
track_flag_t
cdio_get_track_preemphasis
(
const
CdIo_t
*p_cdio,
252
track_t
i_track);
253
262
unsigned
int
cdio_get_track_sec_count
(
const
CdIo_t
*p_cdio,
track_t
i_track);
263
264
#ifdef __cplusplus
265
}
266
#endif
/* __cplusplus */
267
268
#endif
/* __CDIO_TRACK_H__ */
269
Generated for libcdio by
1.8.1.1