Mercurial > libdvdnav.hg
comparison dvdnav_events.h @ 0:3ddf0eaece51 src
Initial revision
author | richwareham |
---|---|
date | Tue, 12 Mar 2002 19:45:53 +0000 |
parents | |
children | 3c1df0cb3aee |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:3ddf0eaece51 |
---|---|
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 */ |