annotate dvdnav.h @ 384:9991d074349a src

remove unused #define
author rathann
date Sun, 13 Jul 2008 13:17:35 +0000
parents 5a28a534ecf9
children 2f1fd852da24
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
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
36 #ifndef DVDNAV_COMPILE
139
f7a26cd00c93 * only install the headers that really are intended for public use
mroi
parents: 132
diff changeset
37 # include <dvdnav/dvd_types.h>
368
62dd6af82d7b adapted the tree to the dvdread->libdvdread transition
nicodvb
parents: 315
diff changeset
38 # include <libdvdread/dvd_reader.h>
62dd6af82d7b adapted the tree to the dvdread->libdvdread transition
nicodvb
parents: 315
diff changeset
39 # include <libdvdread/nav_types.h>
62dd6af82d7b adapted the tree to the dvdread->libdvdread transition
nicodvb
parents: 315
diff changeset
40 # 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
41 # include <dvdnav/dvdnav_events.h>
139
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
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
45
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
46 /*********************************************************************
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
47 * dvdnav data types *
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
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
50 /*
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
51 * 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
52 * 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
53 * 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
54 * 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
55 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
56 typedef struct dvdnav_s dvdnav_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
57
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
58 /* Status as reported by most of libdvdnav's functions */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
59 typedef int32_t dvdnav_status_t;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
60
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
61 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
62 * 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
63 * 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
64 * be obtained by calling dvdnav_err_to_string().
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
65 */
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 190
diff changeset
66 #define DVDNAV_STATUS_ERR 0
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 190
diff changeset
67 #define DVDNAV_STATUS_OK 1
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
68
266
21ba13a7b77a Implement:
jcdutton
parents: 264
diff changeset
69 #define DVDNAV_FORMAT_AC3 0
21ba13a7b77a Implement:
jcdutton
parents: 264
diff changeset
70 #define DVDNAV_FORMAT_MPEGAUDIO 3
21ba13a7b77a Implement:
jcdutton
parents: 264
diff changeset
71 #define DVDNAV_FORMAT_LPCM 4
21ba13a7b77a Implement:
jcdutton
parents: 264
diff changeset
72 #define DVDNAV_FORMAT_DTS 5
21ba13a7b77a Implement:
jcdutton
parents: 264
diff changeset
73 #define DVDNAV_FORMAT_SDDS 6
147
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 * initialisation & housekeeping functions *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
77 *********************************************************************/
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
78
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
79 /*
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
80 * 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
81 * with a dvdnav_t.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
82 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
83
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
84 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
85 * 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
86 * 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
87 * supported by libdvdread can be given with "path". Currently,
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
88 * 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
89 * copies.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
90 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
91 * The resulting dvdnav_t handle will be written to *dest.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
92 */
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
93 dvdnav_status_t dvdnav_open(dvdnav_t **dest, const char *path);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
94
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
95 /*
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
96 * Closes a dvdnav_t previously opened with dvdnav_open(), freeing any
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
97 * memory associated with it.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
98 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
99 dvdnav_status_t dvdnav_close(dvdnav_t *self);
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
100
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
101 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
102 * Resets the DVD virtual machine and cache buffers.
4
99bed5d6db2f Added reset patch from Kees Cook <kees@outflux.net>
richwareham
parents: 0
diff changeset
103 */
99bed5d6db2f Added reset patch from Kees Cook <kees@outflux.net>
richwareham
parents: 0
diff changeset
104 dvdnav_status_t dvdnav_reset(dvdnav_t *self);
99bed5d6db2f Added reset patch from Kees Cook <kees@outflux.net>
richwareham
parents: 0
diff changeset
105
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
106 /*
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
107 * 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
108 * the path associated with an open dvdnav_t. It assigns *path to NULL
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
109 * on error.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
110 */
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
111 dvdnav_status_t dvdnav_path(dvdnav_t *self, const char **path);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
112
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
113 /*
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
114 * Returns a human-readable string describing the last error.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
115 */
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
116 const char* dvdnav_err_to_string(dvdnav_t *self);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
117
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
118
147
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 * changing and reading DVD player characteristics *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
121 *********************************************************************/
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
122
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
123 /*
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
124 * 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
125 * 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
126 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
127
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
128 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
129 * 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
130 * 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
131 * 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
132 * 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
133 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
134 * This has _nothing_ to do with the region setting of the DVD drive.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
135 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
136 dvdnav_status_t dvdnav_set_region_mask(dvdnav_t *self, int32_t region_mask);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
137
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
138 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
139 * 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
140 * 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
141 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
142 * This has _nothing_ to do with the region setting of the DVD drive.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
143 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
144 dvdnav_status_t dvdnav_get_region_mask(dvdnav_t *self, int32_t *region_mask);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
145
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
146 /*
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
147 * 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
148 * decoding engine does its own buffering.
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
149 *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
150 * 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
151 * (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
152 * 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
153 * 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
154 * also work on slow DVD drives.
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 * 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
157 * at dvdnav_get_next_cache_block().
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
158 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
159 dvdnav_status_t dvdnav_set_readahead_flag(dvdnav_t *self, int32_t read_ahead_flag);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
160
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
161 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
162 * Query whether read-ahead caching/buffering will be used.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
163 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
164 dvdnav_status_t dvdnav_get_readahead_flag(dvdnav_t *self, int32_t *read_ahead_flag);
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
165
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
166 /*
132
f22458f928b8 PGC based positioning
mroi
parents: 123
diff changeset
167 * 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
168 * Programs (PGs) on DVDs are similar to Chapters and a program chain (PGC)
132
f22458f928b8 PGC based positioning
mroi
parents: 123
diff changeset
169 * 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
170 * functions dvdnav_get_position() and dvdnav_sector_search(). See there.
132
f22458f928b8 PGC based positioning
mroi
parents: 123
diff changeset
171 * Default is PG based positioning.
f22458f928b8 PGC based positioning
mroi
parents: 123
diff changeset
172 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
173 dvdnav_status_t dvdnav_set_PGC_positioning_flag(dvdnav_t *self, int32_t pgc_based_flag);
132
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 /*
132
f22458f928b8 PGC based positioning
mroi
parents: 123
diff changeset
176 * Query whether positioning is PG or PGC based.
f22458f928b8 PGC based positioning
mroi
parents: 123
diff changeset
177 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
178 dvdnav_status_t dvdnav_get_PGC_positioning_flag(dvdnav_t *self, int32_t *pgc_based_flag);
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
179
132
f22458f928b8 PGC based positioning
mroi
parents: 123
diff changeset
180
147
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 * reading data *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
183 *********************************************************************/
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
184
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
185 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
186 * 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
187 * 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
188 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
189
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
190 /*
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
191 * 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
192 * 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
193 * pointed to by 'event' gets set accordingly.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
194 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
195 * If 'event' is DVDNAV_BLOCK_OK then 'buf' is filled with the next block
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
196 * (note that means it has to be at /least/ 2048 bytes big). 'len' is
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
197 * then set to 2048.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
198 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
199 * 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
200 * 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
201 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
202 * See the dvdnav_events.h header for information on the various events.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
203 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
204 dvdnav_status_t dvdnav_get_next_block(dvdnav_t *self, uint8_t *buf,
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
205 int32_t *event, int32_t *len);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
206
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
207 /*
60
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 59
diff changeset
208 * 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
209 * 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
210 * 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
211 * 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
212 * 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
213 * dvdnav_free_cache_block().
60
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 59
diff changeset
214 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
215 dvdnav_status_t dvdnav_get_next_cache_block(dvdnav_t *self, uint8_t **buf,
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
216 int32_t *event, int32_t *len);
60
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 59
diff changeset
217
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
218 /*
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
219 * 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
220 * 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
221 * 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
222 */
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 59
diff changeset
223 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
224
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
225 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
226 * 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
227 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
228 * See also the DVDNAV_STILL_FRAME event.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
229 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
230 dvdnav_status_t dvdnav_still_skip(dvdnav_t *self);
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
231
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
232 /*
116
4d711d0518e9 new event DVDNAV_WAIT
mroi
parents: 114
diff changeset
233 * If we are currently in WAIT state, that is: the application is required to
4d711d0518e9 new event DVDNAV_WAIT
mroi
parents: 114
diff changeset
234 * wait for its fifos to become empty, calling this signals libdvdnav that this
4d711d0518e9 new event DVDNAV_WAIT
mroi
parents: 114
diff changeset
235 * is achieved and that it can continue.
4d711d0518e9 new event DVDNAV_WAIT
mroi
parents: 114
diff changeset
236 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
237 * See also the DVDNAV_WAIT event.
116
4d711d0518e9 new event DVDNAV_WAIT
mroi
parents: 114
diff changeset
238 */
4d711d0518e9 new event DVDNAV_WAIT
mroi
parents: 114
diff changeset
239 dvdnav_status_t dvdnav_wait_skip(dvdnav_t *self);
4d711d0518e9 new event DVDNAV_WAIT
mroi
parents: 114
diff changeset
240
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
241 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
242 * Returns the still time from the currently playing cell.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
243 * 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
244 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
245 * 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
246 * 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
247 * longer time than usual.
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
248 */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
249 uint32_t dvdnav_get_next_still_flag(dvdnav_t *self);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
250
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
251 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
252 * 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
253 * functions will be a DVDNAV_STOP event.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
254 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
255 * 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
256 */
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
257 dvdnav_status_t dvdnav_stop(dvdnav_t *self);
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
258
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 * title/part navigation *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
262 *********************************************************************/
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 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
265 * Returns the number of titles on the disk.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
266 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
267 dvdnav_status_t dvdnav_get_number_of_titles(dvdnav_t *self, int32_t *titles);
147
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 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
270 * Returns the number of parts within the given title.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
271 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
272 dvdnav_status_t dvdnav_get_number_of_parts(dvdnav_t *self, int32_t title, int32_t *parts);
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
273
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
274 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
275 * Plays the specified title of the DVD from its beginning (that is: part 1).
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
276 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
277 dvdnav_status_t dvdnav_title_play(dvdnav_t *self, int32_t title);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
278
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
279 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
280 * Plays the specified title, starting from the specified part.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
281 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
282 dvdnav_status_t dvdnav_part_play(dvdnav_t *self, int32_t title, int32_t part);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
283
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
284 /*
313
152e19b2b6a1 added dvdnav_describe_title_chapters(title)
nicodvb
parents: 308
diff changeset
285 * Stores in *times an array (that the application *must* free) of
152e19b2b6a1 added dvdnav_describe_title_chapters(title)
nicodvb
parents: 308
diff changeset
286 * 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
287 * *duration will have the duration of the title
313
152e19b2b6a1 added dvdnav_describe_title_chapters(title)
nicodvb
parents: 308
diff changeset
288 * The number of entries in *times is the result of the function.
152e19b2b6a1 added dvdnav_describe_title_chapters(title)
nicodvb
parents: 308
diff changeset
289 * On error *times is NULL and the output is 0
152e19b2b6a1 added dvdnav_describe_title_chapters(title)
nicodvb
parents: 308
diff changeset
290 */
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
291 uint32_t dvdnav_describe_title_chapters(dvdnav_t *self, int32_t title, uint64_t **times, uint64_t *duration);
313
152e19b2b6a1 added dvdnav_describe_title_chapters(title)
nicodvb
parents: 308
diff changeset
292
152e19b2b6a1 added dvdnav_describe_title_chapters(title)
nicodvb
parents: 308
diff changeset
293 /*
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
294 * Play the specified amount of parts of the specified title of
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
295 * the DVD then STOP.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
296 *
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
297 * Currently unimplemented!
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
298 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
299 dvdnav_status_t dvdnav_part_play_auto_stop(dvdnav_t *self, int32_t title,
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
300 int32_t part, int32_t parts_to_play);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
301
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
302 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
303 * Play the specified title starting from the specified time.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
304 *
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
305 * Currently unimplemented!
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
306 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
307 dvdnav_status_t dvdnav_time_play(dvdnav_t *self, int32_t title,
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
308 uint64_t time);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
309
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
310 /*
123
da88fc974592 update some comments
mroi
parents: 116
diff changeset
311 * Stop playing the current position and jump to the specified menu.
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
312 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
313 * See also DVDMenuID_t from libdvdread
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
314 */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
315 dvdnav_status_t dvdnav_menu_call(dvdnav_t *self, DVDMenuID_t menu);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
316
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
317 /*
164
58c914a3ccbd update comment
mroi
parents: 147
diff changeset
318 * Return the title number and part currently being played.
58c914a3ccbd update comment
mroi
parents: 147
diff changeset
319 * A title of 0 indicates, we are in a menu. In this case, part
58c914a3ccbd update comment
mroi
parents: 147
diff changeset
320 * is set to the current menu's ID.
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
321 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
322 dvdnav_status_t dvdnav_current_title_info(dvdnav_t *self, int32_t *title,
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
323 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
324
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
325 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
326 * Return the current position (in blocks) within the current
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
327 * title and the length (in blocks) of said title.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
328 *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
329 * Current implementation is wrong and likely to behave unpredictably!
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
330 * 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
331 */
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
332 dvdnav_status_t dvdnav_get_position_in_title(dvdnav_t *self,
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
333 uint32_t *pos,
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
334 uint32_t *len);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
335
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
336 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
337 * 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
338 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
339 * 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
340 * from the specified part.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
341 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
342 dvdnav_status_t dvdnav_part_search(dvdnav_t *self, int32_t part);
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
343
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
344
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
345 /*********************************************************************
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
346 * program chain/program navigation *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
347 *********************************************************************/
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
348
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
349 /*
123
da88fc974592 update some comments
mroi
parents: 116
diff changeset
350 * Stop playing the current position and start playback from the last
da88fc974592 update some comments
mroi
parents: 116
diff changeset
351 * VOBU boundary before the given sector. The sector number is not
da88fc974592 update some comments
mroi
parents: 116
diff changeset
352 * meant to be an absolute physical DVD sector, but a relative sector
da88fc974592 update some comments
mroi
parents: 116
diff changeset
353 * in the current program. This function cannot leave the current
da88fc974592 update some comments
mroi
parents: 116
diff changeset
354 * program and will fail, if asked to do so.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
355 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
356 * If program chain based positioning is enabled
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
357 * (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
358 * sector inside the current program chain.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
359 *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
360 * '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
361 * fcntl.h.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
362 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
363 dvdnav_status_t dvdnav_sector_search(dvdnav_t *self,
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
364 uint64_t offset, int32_t origin);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
365
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
366 /*
269
77e472cef5f8 implemented dvdnav_get_current_time() with obvious meaning
nicodvb
parents: 268
diff changeset
367 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
368 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
369 */
308
494842974e55 - fix compilation of C++ code using dvdnav.h (this is a reserved C++ keyword)
rathann
parents: 307
diff changeset
370 int64_t dvdnav_get_current_time(dvdnav_t *self);
269
77e472cef5f8 implemented dvdnav_get_current_time() with obvious meaning
nicodvb
parents: 268
diff changeset
371
77e472cef5f8 implemented dvdnav_get_current_time() with obvious meaning
nicodvb
parents: 268
diff changeset
372 /*
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
373 * 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
374 * from the specified timecode.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
375 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
376 * Currently unimplemented!
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
377 */
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
378 dvdnav_status_t dvdnav_time_search(dvdnav_t *self,
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
379 uint64_t time);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
380
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
381 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
382 * 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
383 * (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
384 */
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
385 dvdnav_status_t dvdnav_go_up(dvdnav_t *self);
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
386
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
387 /*
123
da88fc974592 update some comments
mroi
parents: 116
diff changeset
388 * Stop playing the current position and start playback at the
da88fc974592 update some comments
mroi
parents: 116
diff changeset
389 * previous program (if it exists).
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
390 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
391 dvdnav_status_t dvdnav_prev_pg_search(dvdnav_t *self);
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
392
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
393 /*
123
da88fc974592 update some comments
mroi
parents: 116
diff changeset
394 * Stop playing the current position and start playback at the
da88fc974592 update some comments
mroi
parents: 116
diff changeset
395 * first program.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
396 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
397 dvdnav_status_t dvdnav_top_pg_search(dvdnav_t *self);
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
398
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
399 /*
123
da88fc974592 update some comments
mroi
parents: 116
diff changeset
400 * Stop playing the current position and start playback at the
da88fc974592 update some comments
mroi
parents: 116
diff changeset
401 * next program (if it exists).
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
402 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
403 dvdnav_status_t dvdnav_next_pg_search(dvdnav_t *self);
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
404
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
405 /*
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
406 * Return the current position (in blocks) within the current
123
da88fc974592 update some comments
mroi
parents: 116
diff changeset
407 * 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
408 *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
409 * If program chain based positioning is enabled
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
410 * (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
411 * relative position in and the length of the current program chain.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
412 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
413 dvdnav_status_t dvdnav_get_position(dvdnav_t *self, uint32_t *pos,
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
414 uint32_t *len);
8
66708b4a1b5e Stop C++ bitching about some things and extend the menus example
richwareham
parents: 5
diff changeset
415
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
416
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
417 /*********************************************************************
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
418 * menu highlights *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
419 *********************************************************************/
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
420
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
421 /*
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
422 * 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
423 * 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
424 * 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
425 * 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
426 * Therefore, player applications who have a NAV packet available, which is
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
427 * 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
428 * 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
429 */
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
430
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
431 /*
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
432 * Get the currently highlighted button
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
433 * number (1..36) or 0 if no button is highlighted.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
434 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
435 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
436
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
437 /*
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 * 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
439 * 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
440 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
441 * Read the general notes above.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
442 * 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
443 */
22
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 21
diff changeset
444 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
445
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
446 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
447 * 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
448 * with the current position.
2bd4a78eefce Patch from aschultz@cs.uni-magdeburg.de to allow for still-frame 'peek-ahead'
richwareham
parents: 60
diff changeset
449 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
450 * Read the general notes above.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
451 * 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
452 */
2bd4a78eefce Patch from aschultz@cs.uni-magdeburg.de to allow for still-frame 'peek-ahead'
richwareham
parents: 60
diff changeset
453 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
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 * 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
457 */
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
458 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
459 dvdnav_highlight_area_t *highlight);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
460
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
461 /*
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
462 * Move button highlight around as suggested by function name (e.g. with arrow keys).
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
463 */
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 95
diff changeset
464 dvdnav_status_t dvdnav_upper_button_select(dvdnav_t *self, pci_t *pci);
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 95
diff changeset
465 dvdnav_status_t dvdnav_lower_button_select(dvdnav_t *self, pci_t *pci);
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 95
diff changeset
466 dvdnav_status_t dvdnav_right_button_select(dvdnav_t *self, pci_t *pci);
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 95
diff changeset
467 dvdnav_status_t dvdnav_left_button_select(dvdnav_t *self, pci_t *pci);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
468
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
469 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
470 * Activate ("press") the currently highlighted button.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
471 */
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 95
diff changeset
472 dvdnav_status_t dvdnav_button_activate(dvdnav_t *self, pci_t *pci);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
473
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
474 /*
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
475 * Highlight a specific button.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
476 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
477 dvdnav_status_t dvdnav_button_select(dvdnav_t *self, pci_t *pci, int32_t button);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
478
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
479 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
480 * Activate ("press") specified button.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
481 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
482 dvdnav_status_t dvdnav_button_select_and_activate(dvdnav_t *self, pci_t *pci, int32_t button);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
483
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
484 /*
91
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 90
diff changeset
485 * 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
486 */
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 90
diff changeset
487 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
488
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
489 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
490 * Select button at specified video frame coordinates.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
491 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
492 dvdnav_status_t dvdnav_mouse_select(dvdnav_t *self, pci_t *pci, int32_t x, int32_t y);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
493
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
494 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
495 * Activate ("press") button at specified video frame coordinates.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
496 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
497 dvdnav_status_t dvdnav_mouse_activate(dvdnav_t *self, pci_t *pci, int32_t x, int32_t y);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
498
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
499
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
500 /*********************************************************************
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
501 * languages *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
502 *********************************************************************/
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
503
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
504 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
505 * 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
506 * 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
507 */
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 /*
207
a2eb1afa1af8 clarify these functions
mroi
parents: 195
diff changeset
510 * Set which menu language we should use per default.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
511 */
44
c50cb59dbb19 Add dvd menu language selection api.
jcdutton
parents: 43
diff changeset
512 dvdnav_status_t dvdnav_menu_language_select(dvdnav_t *self,
c50cb59dbb19 Add dvd menu language selection api.
jcdutton
parents: 43
diff changeset
513 char *code);
c50cb59dbb19 Add dvd menu language selection api.
jcdutton
parents: 43
diff changeset
514
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
515 /*
207
a2eb1afa1af8 clarify these functions
mroi
parents: 195
diff changeset
516 * Set which audio language we should use per default.
44
c50cb59dbb19 Add dvd menu language selection api.
jcdutton
parents: 43
diff changeset
517 */
c50cb59dbb19 Add dvd menu language selection api.
jcdutton
parents: 43
diff changeset
518 dvdnav_status_t dvdnav_audio_language_select(dvdnav_t *self,
c50cb59dbb19 Add dvd menu language selection api.
jcdutton
parents: 43
diff changeset
519 char *code);
c50cb59dbb19 Add dvd menu language selection api.
jcdutton
parents: 43
diff changeset
520
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
521 /*
207
a2eb1afa1af8 clarify these functions
mroi
parents: 195
diff changeset
522 * Set which spu language we should use per default.
44
c50cb59dbb19 Add dvd menu language selection api.
jcdutton
parents: 43
diff changeset
523 */
c50cb59dbb19 Add dvd menu language selection api.
jcdutton
parents: 43
diff changeset
524 dvdnav_status_t dvdnav_spu_language_select(dvdnav_t *self,
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
525 char *code);
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
526
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
527
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
528 /*********************************************************************
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
529 * obtaining stream attributes *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
530 *********************************************************************/
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 * Return a string describing the title of the DVD.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
534 * 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
535 * 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
536 * 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
537 * 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
538 * `DVDVolume'.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
539 */
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
540 dvdnav_status_t dvdnav_get_title_string(dvdnav_t *self, const char **title_str);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
541
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
542 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
543 * Get video aspect code.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
544 * The aspect code does only change on VTS boundaries.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
545 * See the DVDNAV_VTS_CHANGE event.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
546 *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
547 * 0 -- 4:3, 2 -- 16:9
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
548 */
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
549 uint8_t dvdnav_get_video_aspect(dvdnav_t *self);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
550
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
551 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
552 * Get video scaling permissions.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
553 * The scaling permission does only change on VTS boundaries.
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
554 * See the DVDNAV_VTS_CHANGE event.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
555 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
556 * bit0 set = deny letterboxing, bit1 set = deny pan&scan
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 uint8_t dvdnav_get_video_scale_permission(dvdnav_t *self);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
559
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
560 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
561 * Converts a *logical* audio stream id into language code
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
562 * (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
563 */
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
564 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
565
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
566 /*
266
21ba13a7b77a Implement:
jcdutton
parents: 264
diff changeset
567 * Returns the format of *logical* audio stream 'stream'
21ba13a7b77a Implement:
jcdutton
parents: 264
diff changeset
568 * (returns 0xffff if no such stream).
21ba13a7b77a Implement:
jcdutton
parents: 264
diff changeset
569 */
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
570 uint16_t dvdnav_audio_stream_format(dvdnav_t *self, uint8_t stream);
266
21ba13a7b77a Implement:
jcdutton
parents: 264
diff changeset
571
21ba13a7b77a Implement:
jcdutton
parents: 264
diff changeset
572 /*
272
baec6f29fb76 added dvdnav_audio_stream_channels(); patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents: 271
diff changeset
573 * 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
574 * (returns 0xffff if no such stream).
baec6f29fb76 added dvdnav_audio_stream_channels(); patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents: 271
diff changeset
575 */
baec6f29fb76 added dvdnav_audio_stream_channels(); patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents: 271
diff changeset
576 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
577
baec6f29fb76 added dvdnav_audio_stream_channels(); patch by Andreas Oman (andreas olebyn nu)
nicodvb
parents: 271
diff changeset
578 /*
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
579 * 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
580 * (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
581 */
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
582 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
583
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
584 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
585 * 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
586 */
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 int8_t dvdnav_get_audio_logical_stream(dvdnav_t *self, uint8_t audio_num);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
588
300
cbd2b606f343 implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents: 295
diff changeset
589 #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
590 /*
cbd2b606f343 implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents: 295
diff changeset
591 * 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 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
594
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
595 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
596 * 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
597 */
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 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
599
300
cbd2b606f343 implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents: 295
diff changeset
600 #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
601 /*
cbd2b606f343 implemented dvdnav_get_audio_attr and dvdnav_get_spu_attr; patch by Attila Otvos
nicodvb
parents: 295
diff changeset
602 * 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 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
605
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
606 /*
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
607 * Get active audio stream.
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
608 */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
609 int8_t dvdnav_get_active_audio_stream(dvdnav_t *self);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
610
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
611 /*
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
612 * 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
613 */
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 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
615
262
7708d2fc1745 added dvdnav_get_restrictions()
mrouthier
parents: 207
diff changeset
616 /*
7708d2fc1745 added dvdnav_get_restrictions()
mrouthier
parents: 207
diff changeset
617 * Get the set of user operations that are currently prohibited.
7708d2fc1745 added dvdnav_get_restrictions()
mrouthier
parents: 207
diff changeset
618 * There are potentially new restrictions right after
7708d2fc1745 added dvdnav_get_restrictions()
mrouthier
parents: 207
diff changeset
619 * DVDNAV_CHANNEL_HOP and DVDNAV_NAV_PACKET.
7708d2fc1745 added dvdnav_get_restrictions()
mrouthier
parents: 207
diff changeset
620 */
7708d2fc1745 added dvdnav_get_restrictions()
mrouthier
parents: 207
diff changeset
621 user_ops_t dvdnav_get_restrictions(dvdnav_t *self);
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
622
264
8c86b61eb06f fix compiler warnings related to aliasing violations
mroi
parents: 262
diff changeset
623
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
624 /*********************************************************************
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
625 * multiple angles *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
626 *********************************************************************/
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
627
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
628 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
629 * 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
630 * 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
631 * 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
632 * selected angle coming from the get_next_block functions.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
633 *
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
634 * 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
635 * 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
636 * 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
637 * 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
638 * 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
639 */
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
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
641 /*
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
642 * 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
643 * the call fails.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
644 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
645 dvdnav_status_t dvdnav_angle_change(dvdnav_t *self, int32_t angle);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
646
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
647 /*
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
648 * Returns the current angle and number of angles present.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
649 */
195
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
650 dvdnav_status_t dvdnav_get_angle_info(dvdnav_t *self, int32_t *current_angle,
6b1bfe8f5283 Start some cleanups.
jcdutton
parents: 193
diff changeset
651 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
652
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
653 /*********************************************************************
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
654 * domain queries *
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
655 *********************************************************************/
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
656
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
657 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
658 * 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
659 */
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
660 int8_t dvdnav_is_domain_fp(dvdnav_t *self);
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
661
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
662 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
663 * Are we in the Video management Menu domain?
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
664 */
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
665 int8_t dvdnav_is_domain_vmgm(dvdnav_t *self);
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
666
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
667 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
668 * 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
669 */
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
670 int8_t dvdnav_is_domain_vtsm(dvdnav_t *self);
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
671
147
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
672 /*
26334f5fac2b since noone objected, I will get serious with that:
mroi
parents: 139
diff changeset
673 * 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
674 */
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
675 int8_t dvdnav_is_domain_vts(dvdnav_t *self);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
676
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
677
5
c1b55dc1bfed Add API call to get number of programmes in current title.
richwareham
parents: 4
diff changeset
678 #ifdef __cplusplus
c1b55dc1bfed Add API call to get number of programmes in current title.
richwareham
parents: 4
diff changeset
679 }
c1b55dc1bfed Add API call to get number of programmes in current title.
richwareham
parents: 4
diff changeset
680 #endif
c1b55dc1bfed Add API call to get number of programmes in current title.
richwareham
parents: 4
diff changeset
681
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
682 #endif /* DVDNAV_H_INCLUDED */