Mercurial > libdvdnav.hg
comparison 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 |
comparison
equal
deleted
inserted
replaced
113:ec2df154be56 | 114:b6834e6359cf |
---|---|
33 * This header defines events and event types | 33 * This header defines events and event types |
34 */ | 34 */ |
35 | 35 |
36 /*** EVENTS ***/ | 36 /*** EVENTS ***/ |
37 | 37 |
38 #define DVDNAV_BLOCK_OK 0 /*!< The next black was returned */ | 38 #define DVDNAV_BLOCK_OK 0 /*!< The next block was returned */ |
39 #define DVDNAV_NOP 1 /*!< No action should be taken */ | 39 #define DVDNAV_NOP 1 /*!< No action should be taken */ |
40 #define DVDNAV_STILL_FRAME 2 /*!< The preceeding block was the last in a | 40 #define DVDNAV_STILL_FRAME 2 /*!< The preceeding block was the last in a still frame */ |
41 still frame. */ | 41 #define DVDNAV_SPU_STREAM_CHANGE 3 /*!< The SPU stream was changed */ |
42 #define DVDNAV_SPU_STREAM_CHANGE 3 /*!< The SPU stream was changed */ | 42 #define DVDNAV_AUDIO_STREAM_CHANGE 4 /*!< The Audio stream was changed */ |
43 #define DVDNAV_AUDIO_STREAM_CHANGE 4 /*!< The Audio stream was changed */ | 43 #define DVDNAV_VTS_CHANGE 5 /*!< We have changed VTS */ |
44 #define DVDNAV_VTS_CHANGE 5 /*!< We have changed VTS */ | 44 #define DVDNAV_CELL_CHANGE 6 /*!< We have jumped to a new cell */ |
45 #define DVDNAV_CELL_CHANGE 6 /*!< We have jumped to a new cell */ | 45 #define DVDNAV_NAV_PACKET 7 /*!< The packet just passed was a NAV packet */ |
46 #define DVDNAV_NAV_PACKET 7 /*!< The packet just passed was the NAV packet */ | 46 #define DVDNAV_STOP 8 /*!< The last block was final, no more are coming */ |
47 #define DVDNAV_STOP 8 /*!< The last block was final, no more are coming */ | 47 #define DVDNAV_HIGHLIGHT 9 /*!< Change highlight region */ |
48 #define DVDNAV_HIGHLIGHT 9 /*!< Change highlight region */ | 48 #define DVDNAV_SPU_CLUT_CHANGE 10 /*!< SPU CLUT changed */ |
49 #define DVDNAV_SPU_CLUT_CHANGE 10 /*!< SPU CLUT */ | 49 #define DVDNAV_HOP_CHANNEL 12 /*!< Sent when non-seemless stream change has happed */ |
50 #define DVDNAV_SEEK_DONE 11 /*!< Seek done, subtitles should be reset */ | 50 |
51 #define DVDNAV_HOP_CHANNEL 12 /*!< Sent when non-seemless stream change has happed | |
52 E.g. Menu button pressed causing change in menu */ | |
53 | 51 |
54 /*** EVENT TYPES ***/ | 52 /*** EVENT TYPES ***/ |
55 | 53 |
56 /** | 54 /** |
57 * Structure providing information on DVDNAV_STILL_FRAME events. | 55 * Structure providing information on DVDNAV_STILL_FRAME events. |
58 */ | 56 */ |
59 typedef struct { | 57 typedef struct { |
60 int length; /*!< | 58 int length; /*!< |
61 The length (in seconds) the still frame | 59 The length (in seconds) the still frame |
62 should be displayed for, or 0xff if | 60 should be displayed for, or 0xff if |
63 indefinate. */ | 61 indefinite. */ |
64 } dvdnav_still_event_t; | 62 } dvdnav_still_event_t; |
65 | 63 |
66 /** | 64 /** |
67 * Structure providing information on DVDNAV_SPU_STREAM_CHANGE events. | 65 * Structure providing information on DVDNAV_SPU_STREAM_CHANGE events. |
68 */ | 66 */ |
69 typedef struct { | 67 typedef struct { |
70 int physical_wide; /*!< The physical (MPEG) stream number for widescreen display. */ | 68 int physical_wide; /*!< The physical (MPEG) stream number for widescreen display. */ |
71 int physical_letterbox; /*!< The physical (MPEG) stream number for letterboxed display. */ | 69 int physical_letterbox; /*!< The physical (MPEG) stream number for letterboxed display. */ |
72 int physical_pan_scan; /*!< The physical (MPEG) stream number for pan&scan display. */ | 70 int physical_pan_scan; /*!< The physical (MPEG) stream number for pan&scan display. */ |
73 int logical; /*!< The logical (DVD) stream number. */ | 71 int logical; /*!< The logical (DVD) stream number. */ |
74 } dvdnav_spu_stream_change_event_t; | 72 } dvdnav_spu_stream_change_event_t; |
75 | 73 |
76 /** | 74 /** |
77 * Structure providing information on DVDNAV_AUDIO_STREAM_CHANGE events. | 75 * Structure providing information on DVDNAV_AUDIO_STREAM_CHANGE events. |
78 */ | 76 */ |
83 | 81 |
84 /** | 82 /** |
85 * Structure providing information on DVDNAV_VTS_CHANGE events. | 83 * Structure providing information on DVDNAV_VTS_CHANGE events. |
86 */ | 84 */ |
87 typedef struct { | 85 typedef struct { |
88 int old_vtsN; /*!< The old VTS number */ | 86 int old_vtsN; /*!< The old VTS number */ |
89 dvd_read_domain_t old_domain; /*!< The old domain */ | 87 dvd_read_domain_t old_domain; /*!< The old domain */ |
90 int new_vtsN; /*!< The new VTS number */ | 88 int new_vtsN; /*!< The new VTS number */ |
91 dvd_read_domain_t new_domain; /*!< The new domain */ | 89 dvd_read_domain_t new_domain; /*!< The new domain */ |
92 } dvdnav_vts_change_event_t; | 90 } dvdnav_vts_change_event_t; |
93 | 91 |
92 /* FIXME: These are unused. */ | |
93 #if 0 | |
94 /** | 94 /** |
95 * Structure providing information on DVDNAV_CELL_CHANGE events. | 95 * Structure providing information on DVDNAV_CELL_CHANGE events. |
96 */ | 96 */ |
97 typedef struct { | 97 typedef struct { |
98 cell_playback_t *old_cell; /*!< The old cell (or NULL if this is | 98 cell_playback_t *old_cell; /*!< The old cell (or NULL if this is |
99 the first cell) */ | 99 the first cell) */ |
100 cell_playback_t *new_cell; /*!< The cell_playback_t for the new cell */ | 100 cell_playback_t *new_cell; /*!< The cell_playback_t for the new cell */ |
101 } dvdnav_cell_change_event_t; | 101 } dvdnav_cell_change_event_t; |
102 | 102 |
103 /** | 103 /** |
104 * Structure providing information on DVDNAV_NAV_PACKET events. | 104 * Structure providing information on DVDNAV_NAV_PACKET events. |
105 */ | 105 */ |
106 typedef struct { | 106 typedef struct { |
107 pci_t *pci; | 107 pci_t *pci; |
108 dsi_t *dsi; | 108 dsi_t *dsi; |
109 } dvdnav_nav_packet_event_t; | 109 } dvdnav_nav_packet_event_t; |
110 #endif | |
110 | 111 |
111 /** | 112 /** |
112 * Structure providing information on DVDNAV_HIGHLIGHT events. | 113 * Structure providing information on DVDNAV_HIGHLIGHT events. |
114 * The event only fills in display and buttonN. | |
115 * The rest can be get with dvdnav_get_highlight_area(). | |
113 */ | 116 */ |
114 typedef struct { | 117 typedef struct { |
115 int display; /*!< 0 - hide, 1 - show, entries below only guaranteed useful | 118 int display; /*!< 0 - hide, 1 - show, entries below only guaranteed useful |
116 if this is '1' */ | 119 if this is '1' */ |
117 uint32_t palette; /*!< The CLUT entries for the highlight palette | 120 uint32_t palette; /*!< The CLUT entries for the highlight palette |
118 (4-bits per entry -> 4 entries) */ | 121 (4-bits per entry -> 4 entries) */ |
119 uint16_t sx,sy,ex,ey; /*!< The start/end x,y positions */ | 122 uint16_t sx,sy,ex,ey; /*!< The start/end x,y positions */ |
120 uint32_t pts; /*!< Highlight PTS to match with SPU */ | 123 uint32_t pts; /*!< Highlight PTS to match with SPU */ |
121 uint32_t buttonN; /*!< Button number for the SPU decoder. */ | 124 uint32_t buttonN; /*!< Button number for the SPU decoder. */ |
122 } dvdnav_highlight_event_t; | 125 } dvdnav_highlight_event_t; |
123 | 126 |