annotate dvdnav.h @ 147:26334f5fac2b src

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