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