libcdio
0.90
Main Page
Data Structures
Files
File List
Globals
include
cdio
track.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2005, 2006, 2008, 2012 Rocky Bernstein <rocky@gnu.org>
3
4
This program is free software: you can redistribute it and/or modify
5
it under the terms of the GNU General Public License as published by
6
the Free Software Foundation, either version 3 of the License, or
7
(at your option) any later version.
8
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
13
14
You should have received a copy of the GNU General Public License
15
along with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
21
#ifndef CDIO_TRACK_H_
22
#define CDIO_TRACK_H_
23
24
#ifdef __cplusplus
25
extern
"C"
{
26
#endif
/* __cplusplus */
27
29
extern
const
char
*
track_format2str
[6];
30
31
typedef
enum
{
32
TRACK_FORMAT_AUDIO
,
33
TRACK_FORMAT_CDI
,
34
TRACK_FORMAT_XA
,
35
TRACK_FORMAT_DATA
,
36
TRACK_FORMAT_PSX
,
39
TRACK_FORMAT_ERROR
40
}
track_format_t
;
41
42
typedef
enum
{
43
CDIO_TRACK_FLAG_FALSE
,
44
CDIO_TRACK_FLAG_TRUE
,
45
CDIO_TRACK_FLAG_ERROR
,
46
CDIO_TRACK_FLAG_UNKNOWN
47
}
track_flag_t
;
48
50
typedef
struct
{
51
track_flag_t
preemphasis
;
52
track_flag_t
copy_permit
;
53
int
channels
;
56
}
track_flags_t
;
57
70
extern
enum
cdio_track_enums
{
71
CDIO_CDROM_LBA
= 0x01,
72
CDIO_CDROM_MSF
= 0x02,
74
CDIO_CDROM_DATA_TRACK
= 0x04,
75
CDIO_CDROM_CDI_TRACK
= 0x10,
76
CDIO_CDROM_XA_TRACK
= 0x20,
77
CDIO_CD_MAX_TRACKS
= 99,
78
CDIO_CDROM_LEADOUT_TRACK
= 0xAA,
79
CDIO_INVALID_TRACK
= 0xFF,
81
}
cdio_track_enums
;
82
83
#define CDIO_CD_MIN_TRACK_NO 1
88
typedef enum {
89
AUDIO
,
90
MODE1
,
91
MODE1_RAW
,
92
MODE2
,
93
MODE2_FORM1
,
94
MODE2_FORM2
,
95
MODE2_FORM_MIX
,
96
MODE2_RAW
97
}
trackmode_t
;
98
105
track_t
cdio_get_first_track_num
(
const
CdIo_t
*p_cdio);
106
111
track_t
cdio_get_last_track_num
(
const
CdIo_t
*p_cdio);
112
113
121
track_t
cdio_get_track
(
const
CdIo_t
*p_cdio,
lsn_t
lsn);
122
127
int
cdio_get_track_channels
(
const
CdIo_t
*p_cdio,
track_t
i_track);
128
132
track_flag_t
cdio_get_track_copy_permit
(
const
CdIo_t
*p_cdio,
133
track_t
i_track);
134
138
track_format_t
cdio_get_track_format
(
const
CdIo_t
*p_cdio,
track_t
i_track);
139
148
bool
cdio_get_track_green
(
const
CdIo_t
*p_cdio,
track_t
i_track);
149
154
lsn_t
cdio_get_track_last_lsn
(
const
CdIo_t
*p_cdio,
track_t
i_track);
155
168
lba_t
cdio_get_track_lba
(
const
CdIo_t
*p_cdio,
track_t
i_track);
169
182
lsn_t
cdio_get_track_lsn
(
const
CdIo_t
*p_cdio,
track_t
i_track);
183
193
lba_t
cdio_get_track_pregap_lba
(
const
CdIo_t
*p_cdio,
track_t
i_track);
194
204
lsn_t
cdio_get_track_pregap_lsn
(
const
CdIo_t
*p_cdio,
track_t
i_track);
205
218
char
*
cdio_get_track_isrc
(
const
CdIo_t
*p_cdio,
track_t
i_track);
219
230
bool
cdio_get_track_msf
(
const
CdIo_t
*p_cdio,
track_t
i_track,
231
/*out*/
msf_t
*msf);
232
236
track_flag_t
cdio_get_track_preemphasis
(
const
CdIo_t
*p_cdio,
237
track_t
i_track);
238
247
unsigned
int
cdio_get_track_sec_count
(
const
CdIo_t
*p_cdio,
track_t
i_track);
248
249
#ifdef __cplusplus
250
}
251
#endif
/* __cplusplus */
252
253
#endif
/* CDIO_TRACK_H_ */
Generated for libcdio by
1.8.4