Mercurial > libdvdnav.hg
annotate dvdnav.h @ 306:9aea3dbbfa91 src
don't call dvdnav functions from within dvdread
author | nicodvb |
---|---|
date | Thu, 02 Aug 2007 21:58:59 +0000 |
parents | cbd2b606f343 |
children | 5039307a3e7c |
rev | line source |
---|---|
0 | 1 /* |
2 * Copyright (C) 2001 Rich Wareham <richwareham@users.sourceforge.net> | |
3 * | |
4 * This file is part of libdvdnav, a DVD navigation library. | |
5 * | |
6 * libdvdnav 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 2 of the License, or | |
9 * (at your option) any later version. | |
10 * | |
11 * libdvdnav 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, write to the Free Software | |
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA | |
19 * | |
20 * $Id$ | |
21 * | |
22 */ | |
23 | |
147 | 24 /* |
25 * This is the main header file applications should include if they want | |
26 * to access dvdnav functionality. | |
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
|
27 */ |
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
|
28 |
0 | 29 #ifndef DVDNAV_H_INCLUDED |
30 #define DVDNAV_H_INCLUDED | |
31 | |
268
5256576e85cd
define MP_DVDNAV to identify the version of the library used used
nicodvb
parents:
266
diff
changeset
|
32 #define MP_DVDNAV 1 |
5256576e85cd
define MP_DVDNAV to identify the version of the library used used
nicodvb
parents:
266
diff
changeset
|
33 |
5
c1b55dc1bfed
Add API call to get number of programmes in current title.
richwareham
parents:
4
diff
changeset
|
34 #ifdef __cplusplus |
c1b55dc1bfed
Add API call to get number of programmes in current title.
richwareham
parents:
4
diff
changeset
|
35 extern "C" { |
c1b55dc1bfed
Add API call to get number of programmes in current title.
richwareham
parents:
4
diff
changeset
|
36 #endif |
c1b55dc1bfed
Add API call to get number of programmes in current title.
richwareham
parents:
4
diff
changeset
|
37 |
285
52877d182e96
moved all header inclusions from .h to .c files; my word, I've never seen such a horrible entanglement as in this mess
nicodvb
parents:
272
diff
changeset
|
38 #ifndef DVDNAV_COMPILE |
139
f7a26cd00c93
* only install the headers that really are intended for public use
mroi
parents:
132
diff
changeset
|
39 # include <dvdnav/dvd_types.h> |
295
2d75ce9fa252
when compiling against external dvdread add a compile time macro to
nicodvb
parents:
292
diff
changeset
|
40 #ifdef DVDNAV_USES_EXTERNAL_DVDREAD |
2d75ce9fa252
when compiling against external dvdread add a compile time macro to
nicodvb
parents:
292
diff
changeset
|
41 # include <dvdread/dvd_reader.h> |
2d75ce9fa252
when compiling against external dvdread add a compile time macro to
nicodvb
parents:
292
diff
changeset
|
42 # include <dvdread/nav_types.h> |
2d75ce9fa252
when compiling against external dvdread add a compile time macro to
nicodvb
parents:
292
diff
changeset
|
43 # include <dvdread/ifo_types.h> /* For vm_cmd_t */ |
2d75ce9fa252
when compiling against external dvdread add a compile time macro to
nicodvb
parents:
292
diff
changeset
|
44 #else |
169 | 45 # include <dvdnav/dvd_reader.h> |
292
675f6faff0fd
include dvdnav/nav_types.h in the installed dvdnav.h
nicodvb
parents:
285
diff
changeset
|
46 # include <dvdnav/nav_types.h> |
169 | 47 # include <dvdnav/ifo_types.h> /* For vm_cmd_t */ |
295
2d75ce9fa252
when compiling against external dvdread add a compile time macro to
nicodvb
parents:
292
diff
changeset
|
48 #endif |
285
52877d182e96
moved all header inclusions from .h to .c files; my word, I've never seen such a horrible entanglement as in this mess
nicodvb
parents:
272
diff
changeset
|
49 # include <dvdnav/dvdnav_events.h> |
139
f7a26cd00c93
* only install the headers that really are intended for public use
mroi
parents:
132
diff
changeset
|
50 #endif |
0 | 51 |
52 | |
147 | 53 |
54 /********************************************************************* | |
55 * dvdnav data types * | |
56 *********************************************************************/ | |
57 | |
58 /* | |
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
|
59 * Opaque data-type can be viewed as a 'DVD handle'. You should get |
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
|
60 * a pointer to a dvdnav_t from the dvdnav_open() function. |
147 | 61 * Never call free() on the pointer, you have to give it back with |
62 * dvdnav_close(). | |
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
|
63 */ |
0 | 64 typedef struct dvdnav_s dvdnav_t; |
65 | |
147 | 66 /* Status as reported by most of libdvdnav's functions */ |
195 | 67 typedef int32_t dvdnav_status_t; |
0 | 68 |
147 | 69 /* |
70 * Unless otherwise stated, all functions return DVDNAV_STATUS_OK if | |
71 * they succeeded, otherwise DVDNAV_STATUS_ERR is returned and the error may | |
72 * be obtained by calling dvdnav_err_to_string(). | |
73 */ | |
193 | 74 #define DVDNAV_STATUS_ERR 0 |
75 #define DVDNAV_STATUS_OK 1 | |
0 | 76 |
266 | 77 #define DVDNAV_FORMAT_AC3 0 |
78 #define DVDNAV_FORMAT_MPEGAUDIO 3 | |
79 #define DVDNAV_FORMAT_LPCM 4 | |
80 #define DVDNAV_FORMAT_DTS 5 | |
81 #define DVDNAV_FORMAT_SDDS 6 | |
147 | 82 |
83 /********************************************************************* | |
84 * initialisation & housekeeping functions * | |
85 *********************************************************************/ | |
86 | |
87 /* | |
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
|
88 * These functions allow you to open a DVD device and associate it |
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
|
89 * with a dvdnav_t. |
0 | 90 */ |
91 | |
147 | 92 /* |
93 * Attempts to open the DVD drive at the specified path and pre-cache | |
94 * the CSS-keys. libdvdread is used to access the DVD, so any source | |
95 * supported by libdvdread can be given with "path". Currently, | |
96 * libdvdread can access: DVD drives, DVD image files, DVD file-by-file | |
97 * copies. | |
0 | 98 * |
147 | 99 * The resulting dvdnav_t handle will be written to *dest. |
0 | 100 */ |
147 | 101 dvdnav_status_t dvdnav_open(dvdnav_t **dest, const char *path); |
0 | 102 |
147 | 103 /* |
0 | 104 * Closes a dvdnav_t previously opened with dvdnav_open(), freeing any |
105 * memory associated with it. | |
106 */ | |
107 dvdnav_status_t dvdnav_close(dvdnav_t *self); | |
108 | |
147 | 109 /* |
110 * Resets the DVD virtual machine and cache buffers. | |
4
99bed5d6db2f
Added reset patch from Kees Cook <kees@outflux.net>
richwareham
parents:
0
diff
changeset
|
111 */ |
99bed5d6db2f
Added reset patch from Kees Cook <kees@outflux.net>
richwareham
parents:
0
diff
changeset
|
112 dvdnav_status_t dvdnav_reset(dvdnav_t *self); |
99bed5d6db2f
Added reset patch from Kees Cook <kees@outflux.net>
richwareham
parents:
0
diff
changeset
|
113 |
147 | 114 /* |
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
|
115 * Fills a pointer with a value pointing to a string describing |
147 | 116 * the path associated with an open dvdnav_t. It assigns *path to NULL |
0 | 117 * on error. |
118 */ | |
147 | 119 dvdnav_status_t dvdnav_path(dvdnav_t *self, const char **path); |
0 | 120 |
147 | 121 /* |
0 | 122 * Returns a human-readable string describing the last error. |
123 */ | |
114 | 124 const char* dvdnav_err_to_string(dvdnav_t *self); |
0 | 125 |
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
|
126 |
147 | 127 /********************************************************************* |
128 * changing and reading DVD player characteristics * | |
129 *********************************************************************/ | |
130 | |
131 /* | |
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
|
132 * These functions allow you to manipulate the various global characteristics |
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
|
133 * of the DVD playback engine. |
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
|
134 */ |
0 | 135 |
147 | 136 /* |
137 * Sets the region mask (bit 0 set implies region 1, bit 1 set implies | |
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
|
138 * region 2, etc) of the virtual machine. Generally you will only need to set |
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
|
139 * this if you are playing RCE discs which query the virtual machine as to its |
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
|
140 * region setting. |
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
|
141 * |
147 | 142 * This has _nothing_ to do with the region setting of the DVD drive. |
0 | 143 */ |
195 | 144 dvdnav_status_t dvdnav_set_region_mask(dvdnav_t *self, int32_t region_mask); |
0 | 145 |
147 | 146 /* |
147 * Returns the region mask (bit 0 set implies region 1, bit 1 set implies | |
148 * region 2, etc) of the virtual machine. | |
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
|
149 * |
147 | 150 * This has _nothing_ to do with the region setting of the DVD drive. |
0 | 151 */ |
195 | 152 dvdnav_status_t dvdnav_get_region_mask(dvdnav_t *self, int32_t *region_mask); |
0 | 153 |
147 | 154 /* |
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
|
155 * Specify whether read-ahead caching should be used. You may not want this if your |
114 | 156 * decoding engine does its own buffering. |
147 | 157 * |
158 * The default read-ahead cache does not use an additional thread for the reading | |
159 * (see read_cache.c for a threaded cache, but note that this code is currently | |
160 * unmaintained). It prebuffers on VOBU level by reading ahead several buffers | |
161 * on every read request. The speed of this prebuffering has been optimized to | |
162 * also work on slow DVD drives. | |
0 | 163 * |
147 | 164 * If in addition you want to prevent memcpy's to improve performance, have a look |
165 * at dvdnav_get_next_cache_block(). | |
0 | 166 */ |
195 | 167 dvdnav_status_t dvdnav_set_readahead_flag(dvdnav_t *self, int32_t read_ahead_flag); |
0 | 168 |
147 | 169 /* |
170 * Query whether read-ahead caching/buffering will be used. | |
171 */ | |
195 | 172 dvdnav_status_t dvdnav_get_readahead_flag(dvdnav_t *self, int32_t *read_ahead_flag); |
147 | 173 |
174 /* | |
132 | 175 * Specify whether the positioning works PGC or PG based. |
147 | 176 * Programs (PGs) on DVDs are similar to Chapters and a program chain (PGC) |
132 | 177 * usually covers a whole feature. This affects the behaviour of the |
147 | 178 * functions dvdnav_get_position() and dvdnav_sector_search(). See there. |
132 | 179 * Default is PG based positioning. |
180 */ | |
195 | 181 dvdnav_status_t dvdnav_set_PGC_positioning_flag(dvdnav_t *self, int32_t pgc_based_flag); |
132 | 182 |
147 | 183 /* |
132 | 184 * Query whether positioning is PG or PGC based. |
185 */ | |
195 | 186 dvdnav_status_t dvdnav_get_PGC_positioning_flag(dvdnav_t *self, int32_t *pgc_based_flag); |
147 | 187 |
132 | 188 |
147 | 189 /********************************************************************* |
190 * reading data * | |
191 *********************************************************************/ | |
192 | |
193 /* | |
194 * These functions are used to poll the playback enginge and actually get data | |
195 * off the DVD. | |
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
|
196 */ |
0 | 197 |
147 | 198 /* |
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
|
199 * Attempts to get the next block off the DVD and copies it into the buffer 'buf'. |
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
|
200 * If there is any special actions that may need to be performed, the value |
147 | 201 * pointed to by 'event' gets set accordingly. |
0 | 202 * |
203 * If 'event' is DVDNAV_BLOCK_OK then 'buf' is filled with the next block | |
204 * (note that means it has to be at /least/ 2048 bytes big). 'len' is | |
205 * then set to 2048. | |
206 * | |
207 * Otherwise, buf is filled with an appropriate event structure and | |
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
|
208 * len is set to the length of that structure. |
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
|
209 * |
147 | 210 * See the dvdnav_events.h header for information on the various events. |
0 | 211 */ |
195 | 212 dvdnav_status_t dvdnav_get_next_block(dvdnav_t *self, uint8_t *buf, |
213 int32_t *event, int32_t *len); | |
0 | 214 |
147 | 215 /* |
60 | 216 * This basically does the same as dvdnav_get_next_block. The only difference is |
217 * that it avoids a memcopy, when the requested block was found in the cache. | |
218 * I such a case (cache hit) this function will return a different pointer than | |
219 * the one handed in, pointing directly into the relevant block in the cache. | |
147 | 220 * Those pointers must _never_ be freed but instead returned to the library via |
114 | 221 * dvdnav_free_cache_block(). |
60 | 222 */ |
195 | 223 dvdnav_status_t dvdnav_get_next_cache_block(dvdnav_t *self, uint8_t **buf, |
224 int32_t *event, int32_t *len); | |
60 | 225 |
147 | 226 /* |
114 | 227 * All buffers which came from the internal cache (when dvdnav_get_next_cache_block() |
60 | 228 * returned a buffer different from the one handed in) have to be freed with this |
229 * function. Although handing in other buffers not from the cache doesn't cause any harm. | |
230 */ | |
231 dvdnav_status_t dvdnav_free_cache_block(dvdnav_t *self, unsigned char *buf); | |
232 | |
147 | 233 /* |
234 * If we are currently in a still-frame this function skips it. | |
55
5674fbd44f26
report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents:
44
diff
changeset
|
235 * |
147 | 236 * See also the DVDNAV_STILL_FRAME event. |
0 | 237 */ |
238 dvdnav_status_t dvdnav_still_skip(dvdnav_t *self); | |
239 | |
147 | 240 /* |
116 | 241 * If we are currently in WAIT state, that is: the application is required to |
242 * wait for its fifos to become empty, calling this signals libdvdnav that this | |
243 * is achieved and that it can continue. | |
244 * | |
147 | 245 * See also the DVDNAV_WAIT event. |
116 | 246 */ |
247 dvdnav_status_t dvdnav_wait_skip(dvdnav_t *self); | |
248 | |
147 | 249 /* |
250 * Returns the still time from the currently playing cell. | |
251 * The still time is given in seconds with 0xff meaning an indefinite still. | |
114 | 252 * |
147 | 253 * This function can be used to detect still frames before they are reached. |
254 * Some players might need this to prepare for a frame to be shown for a | |
255 * longer time than usual. | |
114 | 256 */ |
257 uint32_t dvdnav_get_next_still_flag(dvdnav_t *self); | |
258 | |
147 | 259 /* |
260 * Stops playback. The next event obtained with one of the get_next_block | |
261 * functions will be a DVDNAV_STOP event. | |
0 | 262 * |
147 | 263 * It is not required to call this before dvdnav_close(). |
264 */ | |
265 dvdnav_status_t dvdnav_stop(dvdnav_t *self); | |
266 | |
267 | |
268 /********************************************************************* | |
269 * title/part navigation * | |
270 *********************************************************************/ | |
271 | |
272 /* | |
273 * Returns the number of titles on the disk. | |
274 */ | |
195 | 275 dvdnav_status_t dvdnav_get_number_of_titles(dvdnav_t *self, int32_t *titles); |
147 | 276 |
277 /* | |
278 * Returns the number of parts within the given title. | |
279 */ | |
195 | 280 dvdnav_status_t dvdnav_get_number_of_parts(dvdnav_t *self, int32_t title, int32_t *parts); |
147 | 281 |
282 /* | |
283 * Plays the specified title of the DVD from its beginning (that is: part 1). | |
0 | 284 */ |
195 | 285 dvdnav_status_t dvdnav_title_play(dvdnav_t *self, int32_t title); |
0 | 286 |
147 | 287 /* |
288 * Plays the specified title, starting from the specified part. | |
0 | 289 */ |
195 | 290 dvdnav_status_t dvdnav_part_play(dvdnav_t *self, int32_t title, int32_t part); |
0 | 291 |
147 | 292 /* |
0 | 293 * Play the specified amount of parts of the specified title of |
294 * the DVD then STOP. | |
295 * | |
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
|
296 * Currently unimplemented! |
0 | 297 */ |
195 | 298 dvdnav_status_t dvdnav_part_play_auto_stop(dvdnav_t *self, int32_t title, |
299 int32_t part, int32_t parts_to_play); | |
0 | 300 |
147 | 301 /* |
302 * Play the specified title starting from the specified time. | |
0 | 303 * |
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
|
304 * Currently unimplemented! |
0 | 305 */ |
195 | 306 dvdnav_status_t dvdnav_time_play(dvdnav_t *self, int32_t title, |
307 uint64_t time); | |
0 | 308 |
147 | 309 /* |
123 | 310 * Stop playing the current position and jump to the specified menu. |
114 | 311 * |
147 | 312 * See also DVDMenuID_t from libdvdread |
114 | 313 */ |
314 dvdnav_status_t dvdnav_menu_call(dvdnav_t *self, DVDMenuID_t menu); | |
315 | |
147 | 316 /* |
164 | 317 * Return the title number and part currently being played. |
318 * A title of 0 indicates, we are in a menu. In this case, part | |
319 * is set to the current menu's ID. | |
114 | 320 */ |
195 | 321 dvdnav_status_t dvdnav_current_title_info(dvdnav_t *self, int32_t *title, |
322 int32_t *part); | |
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
|
323 |
147 | 324 /* |
325 * Return the current position (in blocks) within the current | |
326 * title and the length (in blocks) of said title. | |
327 * | |
328 * Current implementation is wrong and likely to behave unpredictably! | |
329 * Use is discouraged! | |
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
|
330 */ |
147 | 331 dvdnav_status_t dvdnav_get_position_in_title(dvdnav_t *self, |
195 | 332 uint32_t *pos, |
333 uint32_t *len); | |
0 | 334 |
147 | 335 /* |
336 * This function is only available for compatibility reasons. | |
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
|
337 * |
147 | 338 * Stop playing the current position and start playback of the current title |
339 * from the specified part. | |
0 | 340 */ |
195 | 341 dvdnav_status_t dvdnav_part_search(dvdnav_t *self, int32_t part); |
147 | 342 |
0 | 343 |
147 | 344 /********************************************************************* |
345 * program chain/program navigation * | |
346 *********************************************************************/ | |
347 | |
348 /* | |
123 | 349 * Stop playing the current position and start playback from the last |
350 * VOBU boundary before the given sector. The sector number is not | |
351 * meant to be an absolute physical DVD sector, but a relative sector | |
352 * in the current program. This function cannot leave the current | |
353 * program and will fail, if asked to do so. | |
0 | 354 * |
147 | 355 * If program chain based positioning is enabled |
356 * (see dvdnav_set_PGC_positioning_flag()), this will seek to the relative | |
357 * sector inside the current program chain. | |
358 * | |
359 * 'origin' can be one of SEEK_SET, SEEK_CUR, SEEK_END as defined in | |
360 * fcntl.h. | |
0 | 361 */ |
362 dvdnav_status_t dvdnav_sector_search(dvdnav_t *self, | |
195 | 363 uint64_t offset, int32_t origin); |
0 | 364 |
147 | 365 /* |
269
77e472cef5f8
implemented dvdnav_get_current_time() with obvious meaning
nicodvb
parents:
268
diff
changeset
|
366 returns the current stream time in PTS ticks as reported by the IFO structures |
77e472cef5f8
implemented dvdnav_get_current_time() with obvious meaning
nicodvb
parents:
268
diff
changeset
|
367 divide it by 90000 to get the current play time in seconds |
77e472cef5f8
implemented dvdnav_get_current_time() with obvious meaning
nicodvb
parents:
268
diff
changeset
|
368 */ |
77e472cef5f8
implemented dvdnav_get_current_time() with obvious meaning
nicodvb
parents:
268
diff
changeset
|
369 int64_t dvdnav_get_current_time(dvdnav_t *this); |
77e472cef5f8
implemented dvdnav_get_current_time() with obvious meaning
nicodvb
parents:
268
diff
changeset
|
370 |
77e472cef5f8
implemented dvdnav_get_current_time() with obvious meaning
nicodvb
parents:
268
diff
changeset
|
371 /* |
147 | 372 * Stop playing the current position and start playback of the title |
373 * from the specified timecode. | |
0 | 374 * |
147 | 375 * Currently unimplemented! |
0 | 376 */ |
147 | 377 dvdnav_status_t dvdnav_time_search(dvdnav_t *self, |
195 | 378 uint64_t time); |
0 | 379 |
147 | 380 /* |
381 * Stop playing current position and play the "GoUp"-program chain. | |
382 * (which generally leads to the title menu or a higer-level menu). | |
383 */ | |
384 dvdnav_status_t dvdnav_go_up(dvdnav_t *self); | |
385 | |
386 /* | |
123 | 387 * Stop playing the current position and start playback at the |
388 * previous program (if it exists). | |
0 | 389 */ |
390 dvdnav_status_t dvdnav_prev_pg_search(dvdnav_t *self); | |
391 | |
147 | 392 /* |
123 | 393 * Stop playing the current position and start playback at the |
394 * first program. | |
0 | 395 */ |
396 dvdnav_status_t dvdnav_top_pg_search(dvdnav_t *self); | |
397 | |
147 | 398 /* |
123 | 399 * Stop playing the current position and start playback at the |
400 * next program (if it exists). | |
0 | 401 */ |
402 dvdnav_status_t dvdnav_next_pg_search(dvdnav_t *self); | |
403 | |
147 | 404 /* |
0 | 405 * Return the current position (in blocks) within the current |
123 | 406 * program and the length (in blocks) of current program. |
147 | 407 * |
408 * If program chain based positioning is enabled | |
409 * (see dvdnav_set_PGC_positioning_flag()), this will return the | |
410 * relative position in and the length of the current program chain. | |
0 | 411 */ |
195 | 412 dvdnav_status_t dvdnav_get_position(dvdnav_t *self, uint32_t *pos, |
413 uint32_t *len); | |
8
66708b4a1b5e
Stop C++ bitching about some things and extend the menus example
richwareham
parents:
5
diff
changeset
|
414 |
0 | 415 |
147 | 416 /********************************************************************* |
417 * menu highlights * | |
418 *********************************************************************/ | |
0 | 419 |
147 | 420 /* |
114 | 421 * Most functions related to highlights take a NAV PCI packet as a parameter. |
422 * While you can get the such a packet from libdvdnav, for players with internal | |
423 * FIFOs, this will result in errors, because due to the FIFO length, libdvdnav will | |
424 * be ahead in the stream compared to what the user is seeing on screen. | |
425 * Therefore, player applications who have a NAV packet available, which is | |
426 * better in sync with the actual playback should always pass this one to these | |
427 * functions. | |
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
|
428 */ |
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
|
429 |
147 | 430 /* |
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
|
431 * Get the currently highlighted button |
147 | 432 * number (1..36) or 0 if no button is highlighted. |
0 | 433 */ |
195 | 434 dvdnav_status_t dvdnav_get_current_highlight(dvdnav_t *self, int32_t *button); |
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
|
435 |
147 | 436 /* |
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
|
437 * Returns the Presentation Control Information (PCI) structure associated |
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
|
438 * with the current position. |
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
|
439 * |
147 | 440 * Read the general notes above. |
441 * See also libdvdreads nav_types.h for definition of pci_t. | |
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
|
442 */ |
22
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
21
diff
changeset
|
443 pci_t* dvdnav_get_current_nav_pci(dvdnav_t *self); |
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
|
444 |
147 | 445 /* |
446 * Returns the DSI (data search information) structure associated | |
66
2bd4a78eefce
Patch from aschultz@cs.uni-magdeburg.de to allow for still-frame 'peek-ahead'
richwareham
parents:
60
diff
changeset
|
447 * with the current position. |
2bd4a78eefce
Patch from aschultz@cs.uni-magdeburg.de to allow for still-frame 'peek-ahead'
richwareham
parents:
60
diff
changeset
|
448 * |
147 | 449 * Read the general notes above. |
450 * See also libdvdreads nav_types.h for definition of dsi_t. | |
66
2bd4a78eefce
Patch from aschultz@cs.uni-magdeburg.de to allow for still-frame 'peek-ahead'
richwareham
parents:
60
diff
changeset
|
451 */ |
2bd4a78eefce
Patch from aschultz@cs.uni-magdeburg.de to allow for still-frame 'peek-ahead'
richwareham
parents:
60
diff
changeset
|
452 dsi_t* dvdnav_get_current_nav_dsi(dvdnav_t *self); |
2bd4a78eefce
Patch from aschultz@cs.uni-magdeburg.de to allow for still-frame 'peek-ahead'
richwareham
parents:
60
diff
changeset
|
453 |
147 | 454 /* |
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
|
455 * Get the area associated with a certain button. |
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
|
456 */ |
147 | 457 dvdnav_status_t dvdnav_get_highlight_area(pci_t *nav_pci , int32_t button, int32_t mode, |
458 dvdnav_highlight_area_t *highlight); | |
0 | 459 |
147 | 460 /* |
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
|
461 * Move button highlight around as suggested by function name (e.g. with arrow keys). |
0 | 462 */ |
98 | 463 dvdnav_status_t dvdnav_upper_button_select(dvdnav_t *self, pci_t *pci); |
464 dvdnav_status_t dvdnav_lower_button_select(dvdnav_t *self, pci_t *pci); | |
465 dvdnav_status_t dvdnav_right_button_select(dvdnav_t *self, pci_t *pci); | |
466 dvdnav_status_t dvdnav_left_button_select(dvdnav_t *self, pci_t *pci); | |
0 | 467 |
147 | 468 /* |
469 * Activate ("press") the currently highlighted button. | |
0 | 470 */ |
98 | 471 dvdnav_status_t dvdnav_button_activate(dvdnav_t *self, pci_t *pci); |
0 | 472 |
147 | 473 /* |
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
|
474 * Highlight a specific button. |
0 | 475 */ |
195 | 476 dvdnav_status_t dvdnav_button_select(dvdnav_t *self, pci_t *pci, int32_t button); |
0 | 477 |
147 | 478 /* |
479 * Activate ("press") specified button. | |
0 | 480 */ |
195 | 481 dvdnav_status_t dvdnav_button_select_and_activate(dvdnav_t *self, pci_t *pci, int32_t button); |
0 | 482 |
147 | 483 /* |
91
df9712507b30
Add a new API function, to allow for more flexible menu button control.
jcdutton
parents:
90
diff
changeset
|
484 * Activate (press) a button and execute specified command. |
df9712507b30
Add a new API function, to allow for more flexible menu button control.
jcdutton
parents:
90
diff
changeset
|
485 */ |
df9712507b30
Add a new API function, to allow for more flexible menu button control.
jcdutton
parents:
90
diff
changeset
|
486 dvdnav_status_t dvdnav_button_activate_cmd(dvdnav_t *self, int32_t button, vm_cmd_t *cmd); |
df9712507b30
Add a new API function, to allow for more flexible menu button control.
jcdutton
parents:
90
diff
changeset
|
487 |
147 | 488 /* |
489 * Select button at specified video frame coordinates. | |
0 | 490 */ |
195 | 491 dvdnav_status_t dvdnav_mouse_select(dvdnav_t *self, pci_t *pci, int32_t x, int32_t y); |
0 | 492 |
147 | 493 /* |
494 * Activate ("press") button at specified video frame coordinates. | |
0 | 495 */ |
195 | 496 dvdnav_status_t dvdnav_mouse_activate(dvdnav_t *self, pci_t *pci, int32_t x, int32_t y); |
0 | 497 |
147 | 498 |
499 /********************************************************************* | |
500 * languages * | |
501 *********************************************************************/ | |
502 | |
503 /* | |
504 * The language codes expected by these functions are two character | |
505 * codes as defined in ISO639. | |
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
|
506 */ |
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
|
507 |
147 | 508 /* |
207 | 509 * Set which menu language we should use per default. |
0 | 510 */ |
44 | 511 dvdnav_status_t dvdnav_menu_language_select(dvdnav_t *self, |
512 char *code); | |
513 | |
147 | 514 /* |
207 | 515 * Set which audio language we should use per default. |
44 | 516 */ |
517 dvdnav_status_t dvdnav_audio_language_select(dvdnav_t *self, | |
518 char *code); | |
519 | |
147 | 520 /* |
207 | 521 * Set which spu language we should use per default. |
44 | 522 */ |
523 dvdnav_status_t dvdnav_spu_language_select(dvdnav_t *self, | |
0 | 524 char *code); |
525 | |
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
|
526 |
147 | 527 /********************************************************************* |
528 * obtaining stream attributes * | |
529 *********************************************************************/ | |
0 | 530 |
147 | 531 /* |
532 * Return a string describing the title of the DVD. | |
533 * This is an ID string encoded on the disc by the author. In many cases | |
534 * this is a descriptive string such as `THE_MATRIX' but sometimes is sigularly | |
535 * uninformative such as `PDVD-011421'. Some DVD authors even forget to set this, | |
536 * so you may also read the default of the authoring software they used, like | |
537 * `DVDVolume'. | |
0 | 538 */ |
147 | 539 dvdnav_status_t dvdnav_get_title_string(dvdnav_t *self, const char **title_str); |
0 | 540 |
147 | 541 /* |
542 * Get video aspect code. | |
543 * The aspect code does only change on VTS boundaries. | |
544 * See the DVDNAV_VTS_CHANGE event. | |
545 * | |
546 * 0 -- 4:3, 2 -- 16:9 | |
0 | 547 */ |
147 | 548 uint8_t dvdnav_get_video_aspect(dvdnav_t *self); |
0 | 549 |
147 | 550 /* |
551 * Get video scaling permissions. | |
552 * The scaling permission does only change on VTS boundaries. | |
553 * See the DVDNAV_VTS_CHANGE event. | |
0 | 554 * |
147 | 555 * bit0 set = deny letterboxing, bit1 set = deny pan&scan |
0 | 556 */ |
147 | 557 uint8_t dvdnav_get_video_scale_permission(dvdnav_t *self); |
0 | 558 |
147 | 559 /* |
560 * Converts a *logical* audio stream id into language code | |
561 * (returns 0xffff if no such stream). | |
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
|
562 */ |
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
|
563 uint16_t dvdnav_audio_stream_to_lang(dvdnav_t *self, uint8_t stream); |
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
|
564 |
147 | 565 /* |
266 | 566 * Returns the format of *logical* audio stream 'stream' |
567 * (returns 0xffff if no such stream). | |
568 */ | |
271
814e79060099
renamed dvdnav_audio_stream_to_format() as dvdnav_audio_stream_format() as implemeted in dvdnav.c; patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents:
269
diff
changeset
|
569 uint16_t dvdnav_audio_stream_format(dvdnav_t *self, uint8_t stream); |
266 | 570 |
571 /* | |
272
baec6f29fb76
added dvdnav_audio_stream_channels(); patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents:
271
diff
changeset
|
572 * Returns number of channelsn in *logical* audio stream 'stream' |
baec6f29fb76
added dvdnav_audio_stream_channels(); patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents:
271
diff
changeset
|
573 * (returns 0xffff if no such stream). |
baec6f29fb76
added dvdnav_audio_stream_channels(); patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents:
271
diff
changeset
|
574 */ |
baec6f29fb76
added dvdnav_audio_stream_channels(); patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents:
271
diff
changeset
|
575 uint16_t dvdnav_audio_stream_channels(dvdnav_t *self, uint8_t stream); |
baec6f29fb76
added dvdnav_audio_stream_channels(); patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents:
271
diff
changeset
|
576 |
baec6f29fb76
added dvdnav_audio_stream_channels(); patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents:
271
diff
changeset
|
577 /* |
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
|
578 * Converts a *logical* subpicture stream id into country code |
147 | 579 * (returns 0xffff if no such stream). |
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
|
580 */ |
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
|
581 uint16_t dvdnav_spu_stream_to_lang(dvdnav_t *self, uint8_t stream); |
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
|
582 |
147 | 583 /* |
584 * Converts a *physical* (MPEG) audio stream id into a logical stream number. | |
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
|
585 */ |
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
|
586 int8_t dvdnav_get_audio_logical_stream(dvdnav_t *self, uint8_t audio_num); |
0 | 587 |
300
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
588 #define HAVE_GET_AUDIO_ATTR |
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
589 /* |
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
590 * Get audio attr |
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
591 */ |
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
592 dvdnav_status_t dvdnav_get_audio_attr(dvdnav_t *self, uint8_t audio_mum, audio_attr_t *audio_attr); |
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
593 |
147 | 594 /* |
595 * Converts a *physical* (MPEG) subpicture stream id into a logical stream number. | |
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
|
596 */ |
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
|
597 int8_t dvdnav_get_spu_logical_stream(dvdnav_t *self, uint8_t subp_num); |
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
|
598 |
300
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
599 #define HAVE_GET_SPU_ATTR |
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
600 /* |
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
601 * Get spu attr |
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
602 */ |
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
603 dvdnav_status_t dvdnav_get_spu_attr(dvdnav_t *self, uint8_t audio_mum, subp_attr_t *subp_attr); |
cbd2b606f343
implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents:
295
diff
changeset
|
604 |
147 | 605 /* |
114 | 606 * Get active audio stream. |
607 */ | |
608 int8_t dvdnav_get_active_audio_stream(dvdnav_t *self); | |
609 | |
147 | 610 /* |
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
|
611 * Get active spu stream. |
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
|
612 */ |
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
|
613 int8_t dvdnav_get_active_spu_stream(dvdnav_t *self); |
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
|
614 |
262 | 615 /* |
616 * Get the set of user operations that are currently prohibited. | |
617 * There are potentially new restrictions right after | |
618 * DVDNAV_CHANNEL_HOP and DVDNAV_NAV_PACKET. | |
619 */ | |
620 user_ops_t dvdnav_get_restrictions(dvdnav_t *self); | |
147 | 621 |
264 | 622 |
147 | 623 /********************************************************************* |
624 * multiple angles * | |
625 *********************************************************************/ | |
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
|
626 |
147 | 627 /* |
628 * The libdvdnav library abstracts away the difference between seamless and | |
629 * non-seamless angles. From the point of view of the programmer you just set the | |
630 * angle number and all is well in the world. You will always see only the | |
631 * selected angle coming from the get_next_block functions. | |
0 | 632 * |
147 | 633 * Note: |
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
|
634 * It is quite possible that some tremendously strange DVD feature might change the |
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
|
635 * angle number from under you. Generally you should always view the results from |
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
|
636 * dvdnav_get_angle_info() as definitive only up to the next time you call |
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
|
637 * dvdnav_get_next_block(). |
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
|
638 */ |
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
|
639 |
147 | 640 /* |
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
|
641 * Sets the current angle. If you try to follow a non existant angle |
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
|
642 * the call fails. |
0 | 643 */ |
195 | 644 dvdnav_status_t dvdnav_angle_change(dvdnav_t *self, int32_t angle); |
0 | 645 |
147 | 646 /* |
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
|
647 * Returns the current angle and number of angles present. |
0 | 648 */ |
195 | 649 dvdnav_status_t dvdnav_get_angle_info(dvdnav_t *self, int32_t *current_angle, |
650 int32_t *number_of_angles); | |
66
2bd4a78eefce
Patch from aschultz@cs.uni-magdeburg.de to allow for still-frame 'peek-ahead'
richwareham
parents:
60
diff
changeset
|
651 |
147 | 652 /********************************************************************* |
653 * domain queries * | |
654 *********************************************************************/ | |
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
|
655 |
147 | 656 /* |
657 * Are we in the First Play domain? | |
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
|
658 */ |
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
|
659 int8_t dvdnav_is_domain_fp(dvdnav_t *self); |
114 | 660 |
147 | 661 /* |
662 * Are we in the Video management Menu domain? | |
0 | 663 */ |
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
|
664 int8_t dvdnav_is_domain_vmgm(dvdnav_t *self); |
114 | 665 |
147 | 666 /* |
667 * Are we in the Video Title Menu domain? | |
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
|
668 */ |
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
|
669 int8_t dvdnav_is_domain_vtsm(dvdnav_t *self); |
114 | 670 |
147 | 671 /* |
672 * Are we in the Video Title Set domain? | |
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
|
673 */ |
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
|
674 int8_t dvdnav_is_domain_vts(dvdnav_t *self); |
0 | 675 |
676 | |
5
c1b55dc1bfed
Add API call to get number of programmes in current title.
richwareham
parents:
4
diff
changeset
|
677 #ifdef __cplusplus |
c1b55dc1bfed
Add API call to get number of programmes in current title.
richwareham
parents:
4
diff
changeset
|
678 } |
c1b55dc1bfed
Add API call to get number of programmes in current title.
richwareham
parents:
4
diff
changeset
|
679 #endif |
c1b55dc1bfed
Add API call to get number of programmes in current title.
richwareham
parents:
4
diff
changeset
|
680 |
0 | 681 #endif /* DVDNAV_H_INCLUDED */ |