annotate dvdnav_events.h @ 134:d9d75a22a061 src

- new event on cell changes to report program and cell number and some time info - get rid of memcopies in event handling
author mroi
date Tue, 25 Mar 2003 12:46:29 +0000
parents bd8601b74c3d
children 593b267a963a
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/dvd_reader.h>
119
bd8601b74c3d this is causing more harm than good
mroi
parents: 118
diff changeset
29 #include <dvdread/nav_types.h>
0
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 */
116
4d711d0518e9 new event DVDNAV_WAIT
mroi
parents: 114
diff changeset
50 #define DVDNAV_WAIT 13 /*!< The application should wait for its fifos to run dry */
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
51
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
52
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
53 /*** EVENT TYPES ***/
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
54
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 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate 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 * 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
57 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
58 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
59 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
60 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
61 should be displayed for, or 0xff if
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
62 indefinite. */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
63 } dvdnav_still_event_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
64
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
65 /**
55
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
66 * 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
67 */
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
68 typedef struct {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
69 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
70 int physical_letterbox; /*!< The physical (MPEG) stream number for letterboxed display. */
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
71 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
72 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
73 } dvdnav_spu_stream_change_event_t;
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 /**
5674fbd44f26 report all spu types (widescreen, letterbox and pan&scan), not widescreen
mroi
parents: 43
diff changeset
76 * 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
77 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
78 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
79 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
80 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
81 } dvdnav_audio_stream_change_event_t;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
82
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
83 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate 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 * 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
85 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
86 typedef struct {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
87 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
88 dvd_read_domain_t old_domain; /*!< The old domain */
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
89 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
90 dvd_read_domain_t new_domain; /*!< The new domain */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
91 } dvdnav_vts_change_event_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
92
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
93 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate 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 * 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
95 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
96 typedef struct {
134
d9d75a22a061 - new event on cell changes to report program and cell number and some time info
mroi
parents: 119
diff changeset
97 int cellN; /*!< The new cell number */
d9d75a22a061 - new event on cell changes to report program and cell number and some time info
mroi
parents: 119
diff changeset
98 int pgN; /*!< The current program number */
d9d75a22a061 - new event on cell changes to report program and cell number and some time info
mroi
parents: 119
diff changeset
99 int64_t cell_length; /*!< The length of the current cell in PTS ticks */
d9d75a22a061 - new event on cell changes to report program and cell number and some time info
mroi
parents: 119
diff changeset
100 int64_t pg_length; /*!< The length of the current program in PTS ticks */
d9d75a22a061 - new event on cell changes to report program and cell number and some time info
mroi
parents: 119
diff changeset
101 int64_t pgc_length; /*!< The length of the current program chain in PTS ticks */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
102 } dvdnav_cell_change_event_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
103
134
d9d75a22a061 - new event on cell changes to report program and cell number and some time info
mroi
parents: 119
diff changeset
104 /* FIXME: These are unused. */
d9d75a22a061 - new event on cell changes to report program and cell number and some time info
mroi
parents: 119
diff changeset
105 #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
106 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate 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 * 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
108 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
109 typedef struct {
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
110 pci_t *pci;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
111 dsi_t *dsi;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
112 } dvdnav_nav_packet_event_t;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
113 #endif
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
114
43
0ba15bf3dc25 Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents: 22
diff changeset
115 /**
0ba15bf3dc25 Biiiiiiig change to let doxygen generate 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 * Structure providing information on DVDNAV_HIGHLIGHT events.
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
117 * The event only fills in display and buttonN.
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
118 * 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
119 */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
120 typedef struct {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
121 int display; /*!< 0 - hide, 1 - show, entries below only guaranteed useful
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
122 if this is '1' */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
123 uint32_t palette; /*!< The CLUT entries for the highlight palette
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 55
diff changeset
124 (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
125 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
126 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
127 uint32_t buttonN; /*!< Button number for the SPU decoder. */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
128 } dvdnav_highlight_event_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
129
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
130 #endif /* DVDNAV_EVENTS_H_INCLUDED */