annotate dvdnav_events.h @ 114:b6834e6359cf src

big libdvdnav cleanup, quoting the ChangeLog: * some bugfixes * code cleanup * build process polishing * more sensible event order in get_next_block to ensure useful event delivery * VOBU level resume * fixed: seeking in a multiangle feature briefly showed the wrong angle
author mroi
date Thu, 20 Feb 2003 15:32:21 +0000
parents 5674fbd44f26
children 4d711d0518e9
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
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
24 #ifndef DVDNAV_EVENTS_H_INCLUDED
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
25 #define DVDNAV_EVENTS_H_INCLUDED
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
26
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
27 #include <dvdread/ifo_types.h>
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
28 #include <dvdread/nav_types.h>
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
29 #include <dvdread/dvd_reader.h>
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
30
43
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
31 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
32 * \file dvdnav_events.h
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
33 * This header defines events and event types
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
34 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
35
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
36 /*** EVENTS ***/
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
37
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
38 #define DVDNAV_BLOCK_OK 0 /*!< The next block was returned */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
39 #define DVDNAV_NOP 1 /*!< No action should be taken */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
40 #define DVDNAV_STILL_FRAME 2 /*!< The preceeding block was the last in a still frame */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
41 #define DVDNAV_SPU_STREAM_CHANGE 3 /*!< The SPU stream was changed */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
42 #define DVDNAV_AUDIO_STREAM_CHANGE 4 /*!< The Audio stream was changed */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
43 #define DVDNAV_VTS_CHANGE 5 /*!< We have changed VTS */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
44 #define DVDNAV_CELL_CHANGE 6 /*!< We have jumped to a new cell */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
45 #define DVDNAV_NAV_PACKET 7 /*!< The packet just passed was a NAV packet */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
46 #define DVDNAV_STOP 8 /*!< The last block was final, no more are coming */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
47 #define DVDNAV_HIGHLIGHT 9 /*!< Change highlight region */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
48 #define DVDNAV_SPU_CLUT_CHANGE 10 /*!< SPU CLUT changed */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
49 #define DVDNAV_HOP_CHANNEL 12 /*!< Sent when non-seemless stream change has happed */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
50
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
51
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
52 /*** EVENT TYPES ***/
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
53
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
54 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate 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 * Structure providing information on DVDNAV_STILL_FRAME events.
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
56 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
57 typedef struct {
43
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
58 int length; /*!<
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
59 The length (in seconds) the still frame
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
60 should be displayed for, or 0xff if
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
61 indefinite. */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
62 } dvdnav_still_event_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
63
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
64 /**
55
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
65 * Structure providing information on DVDNAV_SPU_STREAM_CHANGE events.
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
66 */
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
67 typedef struct {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
68 int physical_wide; /*!< The physical (MPEG) stream number for widescreen display. */
55
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
69 int physical_letterbox; /*!< The physical (MPEG) stream number for letterboxed display. */
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
70 int physical_pan_scan; /*!< The physical (MPEG) stream number for pan&scan display. */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
71 int logical; /*!< The logical (DVD) stream number. */
55
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
72 } dvdnav_spu_stream_change_event_t;
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
73
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
74 /**
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
75 * Structure providing information on DVDNAV_AUDIO_STREAM_CHANGE events.
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
76 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
77 typedef struct {
43
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
78 int physical; /*!< The physical (MPEG) stream number. */
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
79 int logical; /*!< The logical (DVD) stream number. */
55
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
80 } dvdnav_audio_stream_change_event_t;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
81
43
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
82 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
83 * Structure providing information on DVDNAV_VTS_CHANGE events.
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
84 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
85 typedef struct {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
86 int old_vtsN; /*!< The old VTS 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
87 dvd_read_domain_t old_domain; /*!< The old domain */
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
88 int new_vtsN; /*!< The new VTS 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
89 dvd_read_domain_t new_domain; /*!< The new domain */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
90 } dvdnav_vts_change_event_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
91
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
92 /* FIXME: These are unused. */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
93 #if 0
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
94 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
95 * Structure providing information on DVDNAV_CELL_CHANGE events.
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
96 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
97 typedef struct {
43
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
98 cell_playback_t *old_cell; /*!< The old cell (or NULL if this is
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
99 the first cell) */
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
100 cell_playback_t *new_cell; /*!< The cell_playback_t for the new cell */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
101 } dvdnav_cell_change_event_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
102
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
103 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
104 * Structure providing information on DVDNAV_NAV_PACKET events.
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
105 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
106 typedef struct {
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
107 pci_t *pci;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
108 dsi_t *dsi;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
109 } dvdnav_nav_packet_event_t;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
110 #endif
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
111
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
112 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
113 * Structure providing information on DVDNAV_HIGHLIGHT events.
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
114 * The event only fills in display and buttonN.
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
115 * The rest can be get with dvdnav_get_highlight_area().
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
116 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
117 typedef struct {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
118 int display; /*!< 0 - hide, 1 - show, entries below only guaranteed useful
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
119 if this is '1' */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
120 uint32_t palette; /*!< The CLUT entries for the highlight palette
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
121 (4-bits per entry -> 4 entries) */
43
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
122 uint16_t sx,sy,ex,ey; /*!< The start/end x,y positions */
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
123 uint32_t pts; /*!< Highlight PTS to match with SPU */
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
124 uint32_t buttonN; /*!< Button number for the SPU decoder. */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
125 } dvdnav_highlight_event_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
126
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
127 #endif /* DVDNAV_EVENTS_H_INCLUDED */