Mercurial > libdvdnav.hg
annotate dvd_types.h @ 91:df9712507b30 src
Add a new API function, to allow for more flexible menu button control.
The current menu button control code relies on wrong NAV PCI packet information which is
out of sync with what is actually being displayed.
author | jcdutton |
---|---|
date | Wed, 04 Sep 2002 11:41:52 +0000 |
parents | 0ba15bf3dc25 |
children | 0fd70a257b44 |
rev | line source |
---|---|
0 | 1 /* |
2 * Copyright (C) 2000, 2001 Björn Englund, Håkan Hjort | |
3 * | |
4 * This file is part of libdvdnav, a DVD navigation library. It is a modified | |
5 * file originally part of the Ogle DVD player project. | |
6 * | |
7 * libdvdnav is free software; you can redistribute it and/or modify | |
8 * it under the terms of the GNU General Public License as published by | |
9 * the Free Software Foundation; either version 2 of the License, or | |
10 * (at your option) any later version. | |
11 * | |
12 * libdvdnav is distributed in the hope that it will be useful, | |
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 * GNU General Public License for more details. | |
16 * | |
17 * You should have received a copy of the GNU General Public License | |
18 * along with this program; if not, write to the Free Software | |
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA | |
20 * | |
21 * $Id$ | |
22 * | |
23 */ | |
24 | |
25 #ifndef DVD_H_INCLUDED | |
26 #define DVD_H_INCLUDED | |
27 | |
28 #include <inttypes.h> | |
29 | |
30 /** | |
43
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
31 * \file dvd_types.h |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
32 * |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
33 * Various useful structs and enums for DVDs. |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
34 */ |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
35 |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
36 /** |
0 | 37 * DVD Domain |
38 */ | |
39 typedef enum { | |
40 DVD_DOMAIN_FirstPlay, /**< First Play Domain */ | |
41 DVD_DOMAIN_VMG, /**< Video Manager Domain */ | |
42 DVD_DOMAIN_VTSMenu, /**< Video Title Set Menu Domain */ | |
43 DVD_DOMAIN_VTSTitle, /**< Video Title Set Domain */ | |
44 DVD_DOMAIN_Stop /**< Stop Domain */ | |
45 } DVDDomain_t; | |
46 | |
47 /** | |
48 * DVD Menu | |
49 */ | |
50 typedef enum { | |
51 DVD_MENU_Title = 2, /**< TBD */ | |
52 DVD_MENU_Root = 3, /**< TBD */ | |
53 DVD_MENU_Subpicture = 4, /**< TBD */ | |
54 DVD_MENU_Audio = 5, /**< TBD */ | |
55 DVD_MENU_Angle = 6, /**< TBD */ | |
56 DVD_MENU_Part = 7 /**< TBD */ | |
57 } DVDMenuID_t; | |
58 | |
59 /** | |
60 * User operations | |
61 */ | |
62 typedef enum { | |
63 UOP_FLAG_TitleOrTimePlay = 0x00000001, | |
64 UOP_FLAG_ChapterSearchOrPlay = 0x00000002, | |
65 UOP_FLAG_TitlePlay = 0x00000004, | |
66 UOP_FLAG_Stop = 0x00000008, | |
67 UOP_FLAG_GoUp = 0x00000010, | |
68 UOP_FLAG_TimeOrChapterSearch = 0x00000020, | |
69 UOP_FLAG_PrevOrTopPGSearch = 0x00000040, | |
70 UOP_FLAG_NextPGSearch = 0x00000080, | |
71 UOP_FLAG_ForwardScan = 0x00000100, | |
72 UOP_FLAG_BackwardScan = 0x00000200, | |
73 UOP_FLAG_TitleMenuCall = 0x00000400, | |
74 UOP_FLAG_RootMenuCall = 0x00000800, | |
75 UOP_FLAG_SubPicMenuCall = 0x00001000, | |
76 UOP_FLAG_AudioMenuCall = 0x00002000, | |
77 UOP_FLAG_AngleMenuCall = 0x00004000, | |
78 UOP_FLAG_ChapterMenuCall = 0x00008000, | |
79 UOP_FLAG_Resume = 0x00010000, | |
80 UOP_FLAG_ButtonSelectOrActivate = 0x00020000, | |
81 UOP_FLAG_StillOff = 0x00040000, | |
82 UOP_FLAG_PauseOn = 0x00080000, | |
83 UOP_FLAG_AudioStreamChange = 0x00100000, | |
84 UOP_FLAG_SubPicStreamChange = 0x00200000, | |
85 UOP_FLAG_AngleChange = 0x00400000, | |
86 UOP_FLAG_KaraokeAudioPresModeChange = 0x00800000, | |
87 UOP_FLAG_VideoPresModeChange = 0x01000000 | |
88 } DVDUOP_t; | |
89 | |
90 | |
91 /** | |
92 * Parental Level | |
93 */ | |
94 typedef enum { | |
95 DVD_PARENTAL_LEVEL_1 = 1, | |
96 DVD_PARENTAL_LEVEL_2 = 2, | |
97 DVD_PARENTAL_LEVEL_3 = 3, | |
98 DVD_PARENTAL_LEVEL_4 = 4, | |
99 DVD_PARENTAL_LEVEL_5 = 5, | |
100 DVD_PARENTAL_LEVEL_6 = 6, | |
101 DVD_PARENTAL_LEVEL_7 = 7, | |
102 DVD_PARENTAL_LEVEL_8 = 8, | |
103 DVD_PARENTAL_LEVEL_None = 15 | |
104 } DVDParentalLevel_t; | |
105 | |
106 /** | |
107 * Language ID (ISO-639 language code) | |
108 */ | |
109 typedef uint16_t DVDLangID_t; | |
110 | |
111 /** | |
112 * Country ID (ISO-3166 country code) | |
113 */ | |
114 typedef uint16_t DVDCountryID_t; | |
115 | |
116 /** | |
117 * Register | |
118 */ | |
119 typedef uint16_t DVDRegister_t; | |
120 | |
121 typedef enum { | |
122 DVDFalse = 0, | |
123 DVDTrue = 1 | |
124 } DVDBool_t; | |
125 | |
126 typedef DVDRegister_t DVDGPRMArray_t[16]; | |
127 typedef DVDRegister_t DVDSPRMArray_t[24]; | |
128 | |
129 typedef int DVDStream_t; | |
130 | |
131 /** | |
132 * Angle number (1-9 or default?) | |
133 */ | |
134 typedef int DVDAngle_t; | |
135 | |
136 typedef int DVDPTT_t; | |
137 typedef int DVDTitle_t; | |
138 typedef struct { | |
139 uint8_t Hours; | |
140 uint8_t Minutes; | |
141 uint8_t Seconds; | |
142 uint8_t Frames; | |
143 } DVDTimecode_t; | |
144 | |
145 /** | |
146 * Subpicture stream number (0-31,62,63) | |
147 */ | |
148 typedef int DVDSubpictureStream_t; | |
149 | |
150 /** | |
151 * Audio stream number (0-7, 15(none)) | |
152 */ | |
153 typedef int DVDAudioStream_t; | |
154 | |
155 | |
156 /** | |
157 * The audio application mode | |
158 */ | |
159 typedef enum { | |
160 DVD_AUDIO_APP_MODE_None = 0, /**< app mode none */ | |
161 DVD_AUDIO_APP_MODE_Karaoke = 1, /**< app mode karaoke */ | |
162 DVD_AUDIO_APP_MODE_Surround = 2, /**< app mode surround */ | |
163 DVD_AUDIO_APP_MODE_Other = 3 /**< app mode other */ | |
164 } DVDAudioAppMode_t; | |
165 | |
166 /** | |
167 * The audio format | |
168 */ | |
169 typedef enum { | |
170 DVD_AUDIO_FORMAT_AC3 = 0, /**< Dolby AC-3 */ | |
171 DVD_AUDIO_FORMAT_MPEG1 = 1, /**< MPEG-1 */ | |
172 DVD_AUDIO_FORMAT_MPEG1_DRC = 2, /**< MPEG-1 with dynamic range control */ | |
173 DVD_AUDIO_FORMAT_MPEG2 = 3, /**< MPEG-2 */ | |
174 DVD_AUDIO_FORMAT_MPEG2_DRC = 4, /**< MPEG-2 with dynamic range control */ | |
175 DVD_AUDIO_FORMAT_LPCM = 5, /**< Linear Pulse Code Modulation */ | |
176 DVD_AUDIO_FORMAT_DTS = 6, /**< Digital Theater Systems */ | |
177 DVD_AUDIO_FORMAT_SDDS = 7, /**< Sony Dynamic Digital Sound */ | |
178 DVD_AUDIO_FORMAT_Other = 8 /**< Other format*/ | |
179 } DVDAudioFormat_t; | |
180 | |
181 /** | |
182 * Audio language extension | |
183 */ | |
184 typedef enum { | |
185 DVD_AUDIO_LANG_EXT_NotSpecified = 0, /**< TBD */ | |
186 DVD_AUDIO_LANG_EXT_NormalCaptions = 1, /**< TBD */ | |
187 DVD_AUDIO_LANG_EXT_VisuallyImpaired = 2, /**< TBD */ | |
188 DVD_AUDIO_LANG_EXT_DirectorsComments1 = 3, /**< TBD */ | |
189 DVD_AUDIO_LANG_EXT_DirectorsComments2 = 4 /**< TBD */ | |
190 } DVDAudioLangExt_t; | |
191 | |
192 /** | |
193 * Subpicture language extension | |
194 */ | |
195 typedef enum { | |
196 DVD_SUBPICTURE_LANG_EXT_NotSpecified = 0, | |
197 DVD_SUBPICTURE_LANG_EXT_NormalCaptions = 1, | |
198 DVD_SUBPICTURE_LANG_EXT_BigCaptions = 2, | |
199 DVD_SUBPICTURE_LANG_EXT_ChildrensCaptions = 3, | |
200 DVD_SUBPICTURE_LANG_EXT_NormalCC = 5, | |
201 DVD_SUBPICTURE_LANG_EXT_BigCC = 6, | |
202 DVD_SUBPICTURE_LANG_EXT_ChildrensCC = 7, | |
203 DVD_SUBPICTURE_LANG_EXT_Forced = 9, | |
204 DVD_SUBPICTURE_LANG_EXT_NormalDirectorsComments = 13, | |
205 DVD_SUBPICTURE_LANG_EXT_BigDirectorsComments = 14, | |
206 DVD_SUBPICTURE_LANG_EXT_ChildrensDirectorsComments = 15, | |
207 } DVDSubpictureLangExt_t; | |
208 | |
209 /** | |
210 * Karaoke Downmix mode | |
211 */ | |
212 typedef enum { | |
213 DVD_KARAOKE_DOWNMIX_0to0 = 0x0001, | |
214 DVD_KARAOKE_DOWNMIX_1to0 = 0x0002, | |
215 DVD_KARAOKE_DOWNMIX_2to0 = 0x0004, | |
216 DVD_KARAOKE_DOWNMIX_3to0 = 0x0008, | |
217 DVD_KARAOKE_DOWNMIX_4to0 = 0x0010, | |
218 DVD_KARAOKE_DOWNMIX_Lto0 = 0x0020, | |
219 DVD_KARAOKE_DOWNMIX_Rto0 = 0x0040, | |
220 DVD_KARAOKE_DOWNMIX_0to1 = 0x0100, | |
221 DVD_KARAOKE_DOWNMIX_1to1 = 0x0200, | |
222 DVD_KARAOKE_DOWNMIX_2to1 = 0x0400, | |
223 DVD_KARAOKE_DOWNMIX_3to1 = 0x0800, | |
224 DVD_KARAOKE_DOWNMIX_4to1 = 0x1000, | |
225 DVD_KARAOKE_DOWNMIX_Lto1 = 0x2000, | |
226 DVD_KARAOKE_DOWNMIX_Rto1 = 0x4000 | |
227 } DVDKaraokeDownmix_t; | |
228 | |
229 typedef int DVDKaraokeDownmixMask_t; | |
230 | |
231 typedef enum { | |
232 DVD_DISPLAY_MODE_ContentDefault = 0, | |
233 DVD_DISPLAY_MODE_16x9 = 1, | |
234 DVD_DISPLAY_MODE_4x3PanScan = 2, | |
235 DVD_DISPLAY_MODE_4x3Letterboxed = 3 | |
236 } DVDDisplayMode_t; | |
237 | |
238 typedef int DVDAudioSampleFreq_t; /**< TBD */ | |
239 typedef int DVDAudioSampleQuant_t; /**< TBD */ | |
240 typedef int DVDChannelNumber_t; /**< TBD */ | |
241 | |
242 | |
243 typedef struct { | |
244 DVDAudioAppMode_t AppMode; | |
245 DVDAudioFormat_t AudioFormat; | |
246 DVDLangID_t Language; | |
247 DVDAudioLangExt_t LanguageExtension; | |
248 DVDBool_t HasMultichannelInfo; | |
249 DVDAudioSampleFreq_t SampleFrequency; | |
250 DVDAudioSampleQuant_t SampleQuantization; | |
251 DVDChannelNumber_t NumberOfChannels; | |
252 } DVDAudioAttributes_t; | |
253 | |
254 typedef enum { | |
255 DVD_SUBPICTURE_TYPE_NotSpecified = 0, | |
256 DVD_SUBPICTURE_TYPE_Language = 1, | |
257 DVD_SUBPICTURE_TYPE_Other = 2 | |
258 } DVDSubpictureType_t; | |
259 | |
260 typedef enum { | |
261 DVD_SUBPICTURE_CODING_RunLength = 0, | |
262 DVD_SUBPICTURE_CODING_Extended = 1, | |
263 DVD_SUBPICTURE_CODING_Other = 2 | |
264 } DVDSubpictureCoding_t; | |
265 | |
266 typedef struct { | |
267 DVDSubpictureType_t Type; | |
268 DVDSubpictureCoding_t CodingMode; | |
269 DVDLangID_t Language; | |
270 DVDSubpictureLangExt_t LanguageExtension; | |
271 } DVDSubpictureAttributes_t; | |
272 | |
273 typedef int DVDVideoCompression_t; /**< TBD */ | |
274 | |
275 typedef struct { | |
276 DVDBool_t PanscanPermitted; | |
277 DVDBool_t LetterboxPermitted; | |
278 int AspectX; | |
279 int AspectY; | |
280 int FrameRate; | |
281 int FrameHeight; | |
282 DVDVideoCompression_t Compression; | |
283 DVDBool_t Line21Field1InGop; | |
284 DVDBool_t Line21Field2InGop; | |
285 int more_to_come; | |
286 } DVDVideoAttributes_t; | |
287 | |
43
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
288 /** |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
289 * Atructure containing info on highlight areas. |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
290 */ |
22
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
0
diff
changeset
|
291 typedef struct { |
43
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
292 uint32_t palette; /*!< The CLUT entries for the highlight palette |
22
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
0
diff
changeset
|
293 (4-bits per entry -> 4 entries) */ |
43
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
294 uint16_t sx,sy,ex,ey; /*!< The start/end x,y positions */ |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
295 uint32_t pts; /*!< Highlight PTS to match with SPU */ |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
296 uint32_t buttonN; /*!< Button number for the SPU decoder. */ |
22
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
0
diff
changeset
|
297 } dvdnav_highlight_area_t; |
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
0
diff
changeset
|
298 |
0 | 299 #endif /* DVD_H_INCLUDED */ |