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