0
|
1 /*
|
|
2 * Copyright (C) 2001 Rich Wareham <richwareham@users.sourceforge.net>
|
|
3 *
|
|
4 * This file is part of libdvdnav, a DVD navigation library.
|
|
5 *
|
|
6 * libdvdnav is free software; you can redistribute it and/or modify
|
|
7 * it under the terms of the GNU General Public License as published by
|
|
8 * the Free Software Foundation; either version 2 of the License, or
|
|
9 * (at your option) any later version.
|
|
10 *
|
|
11 * libdvdnav is distributed in the hope that it will be useful,
|
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14 * GNU General Public License for more details.
|
|
15 *
|
|
16 * You should have received a copy of the GNU General Public License
|
|
17 * along with this program; if not, write to the Free Software
|
|
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
19 *
|
|
20 * $Id$
|
|
21 *
|
|
22 */
|
|
23
|
|
24 #ifndef DVDNAV_EVENTS_H_INCLUDED
|
|
25 #define DVDNAV_EVENTS_H_INCLUDED
|
|
26
|
|
27 #include <dvdread/ifo_types.h>
|
|
28 #include <dvdread/nav_types.h>
|
|
29 #include <dvdread/dvd_reader.h>
|
|
30
|
|
31 /* This header defines events and event types */
|
|
32
|
|
33 /*** EVENTS ***/
|
|
34
|
|
35 #define DVDNAV_BLOCK_OK 0 /* The next black was returned */
|
|
36 #define DVDNAV_NOP 1 /* No action should be taken */
|
|
37 #define DVDNAV_STILL_FRAME 2 /* The preceeding block was the last in a
|
|
38 still frame. */
|
|
39 #define DVDNAV_SPU_STREAM_CHANGE 3 /* The SPU stream was changed */
|
|
40 #define DVDNAV_AUDIO_STREAM_CHANGE 4 /* The Audio stream was changed */
|
|
41 #define DVDNAV_VTS_CHANGE 5 /* We have changed VTS */
|
|
42 #define DVDNAV_CELL_CHANGE 6 /* We have jumped to a new cell */
|
|
43 #define DVDNAV_NAV_PACKET 7 /* The packet just passed was the NAV packet */
|
|
44 #define DVDNAV_STOP 8 /* The last block was final, no more are coming */
|
|
45 #define DVDNAV_HIGHLIGHT 9 /* Change highlight region */
|
|
46 #define DVDNAV_SPU_CLUT_CHANGE 10 /* SPU CLUT */
|
|
47 #define DVDNAV_SEEK_DONE 11 /* Seek done, subtitles should be reset */
|
|
48
|
|
49 /*** EVENT TYPES ***/
|
|
50
|
|
51 typedef struct {
|
|
52 int length; /* The length (in seconds) the still frame
|
|
53 * should be displayed for, or 0xff if
|
|
54 * indefinate. */
|
|
55 } dvdnav_still_event_t;
|
|
56
|
|
57 typedef struct {
|
|
58 int physical; /* The physical (MPEG) stream number. */
|
|
59 int logical; /* The logical (DVD) stream number. */
|
|
60 } dvdnav_stream_change_event_t;
|
|
61
|
|
62 typedef struct {
|
|
63 int old_vtsN; /* The old VTS number */
|
|
64 dvd_read_domain_t old_domain; /* The old domain */
|
|
65 int new_vtsN; /* The new one */
|
|
66 dvd_read_domain_t new_domain;
|
|
67 } dvdnav_vts_change_event_t;
|
|
68
|
|
69 typedef struct {
|
|
70 cell_playback_t *old_cell; /* The old cell (or NULL if this is
|
|
71 the first cell) */
|
|
72 cell_playback_t *new_cell; /* The cell_playback_t for the new cell */
|
|
73 } dvdnav_cell_change_event_t;
|
|
74
|
|
75 typedef struct {
|
|
76 pci_t *pci;
|
|
77 dsi_t *dsi;
|
|
78 } dvdnav_nav_packet_event_t;
|
|
79
|
|
80 typedef struct {
|
|
81 int display; /* 0 - hide, 1 - show, entries below only guaranteed useful
|
|
82 if this is '1' */
|
|
83 uint32_t palette; /* The CLUT entries for the highlight palette
|
|
84 (4-bits per entry -> 4 entries) */
|
|
85 uint16_t sx,sy,ex,ey; /* The start/end x,y positions */
|
|
86 uint32_t pts; /* Highlight PTS to match with SPU */
|
|
87 uint32_t buttonN; /* Button number for the SPU decoder. */
|
|
88 } dvdnav_highlight_event_t;
|
|
89
|
|
90 #endif /* DVDNAV_EVENTS_H_INCLUDED */
|