12 #define DVDNAV_COMPILE 15 #include "dvdnav/dvdnav.h" 25 #include "dvdnav/dvd_types.h" 27 #ifdef WIN32 // WIN32INCLUDES 31 #include "DynamicDll.h" 37 virtual dvdnav_status_t dvdnav_open(dvdnav_t **dest,
const char *path)=0;
38 virtual dvdnav_status_t dvdnav_open2(dvdnav_t** dest,
41 const char* path) = 0;
42 virtual dvdnav_status_t dvdnav_open_stream(dvdnav_t **dest,
void *stream,
dvdnav_stream_cb *stream_cb) = 0;
43 virtual dvdnav_status_t dvdnav_open_stream2(dvdnav_t** dest,
47 virtual dvdnav_status_t dvdnav_close(dvdnav_t *
self)=0;
48 virtual dvdnav_status_t dvdnav_reset(dvdnav_t *
self)=0;
49 virtual const char* dvdnav_err_to_string(dvdnav_t *
self)=0;
50 virtual dvdnav_status_t dvdnav_set_readahead_flag(dvdnav_t *
self, int32_t read_ahead_flag)=0;
51 virtual dvdnav_status_t dvdnav_set_PGC_positioning_flag(dvdnav_t *
self, int32_t pgc_based_flag)=0;
52 virtual dvdnav_status_t dvdnav_get_next_cache_block(dvdnav_t *
self, uint8_t **buf, int32_t *event, int32_t *len)=0;
53 virtual dvdnav_status_t dvdnav_free_cache_block(dvdnav_t *
self,
unsigned char *buf)=0;
54 virtual dvdnav_status_t dvdnav_still_skip(dvdnav_t *
self)=0;
55 virtual dvdnav_status_t dvdnav_wait_skip(dvdnav_t *
self)=0;
56 virtual dvdnav_status_t dvdnav_stop(dvdnav_t *
self)=0;
57 virtual dvdnav_status_t dvdnav_button_select(dvdnav_t *
self, pci_t *pci, int32_t button)=0;
58 virtual dvdnav_status_t dvdnav_button_activate(dvdnav_t *
self, pci_t *pci)=0;
59 virtual dvdnav_status_t dvdnav_upper_button_select(dvdnav_t *
self, pci_t *pci)=0;
60 virtual dvdnav_status_t dvdnav_lower_button_select(dvdnav_t *
self, pci_t *pci)=0;
61 virtual dvdnav_status_t dvdnav_right_button_select(dvdnav_t *
self, pci_t *pci)=0;
62 virtual dvdnav_status_t dvdnav_left_button_select(dvdnav_t *
self, pci_t *pci)=0;
63 virtual dvdnav_status_t dvdnav_sector_search(dvdnav_t *
self, uint64_t offset, int32_t origin)=0;
64 virtual pci_t* dvdnav_get_current_nav_pci(dvdnav_t *
self)=0;
65 virtual dsi_t* dvdnav_get_current_nav_dsi(dvdnav_t *
self)=0;
66 virtual dvdnav_status_t dvdnav_get_position(dvdnav_t *
self, uint32_t *
pos, uint32_t *len)=0;
67 virtual dvdnav_status_t dvdnav_current_title_info(dvdnav_t *
self, int32_t *title, int32_t *part)=0;
68 virtual dvdnav_status_t dvdnav_spu_language_select(dvdnav_t *
self,
char *
code)=0;
69 virtual dvdnav_status_t dvdnav_audio_language_select(dvdnav_t *
self,
char *code)=0;
70 virtual dvdnav_status_t dvdnav_menu_language_select(dvdnav_t *
self,
char *code)=0;
71 virtual int8_t dvdnav_is_domain_vts(dvdnav_t *
self)=0;
72 virtual int8_t dvdnav_get_active_spu_stream(dvdnav_t *
self)=0;
73 virtual int8_t dvdnav_get_spu_logical_stream(dvdnav_t *
self, uint8_t subp_num)=0;
74 virtual uint16_t dvdnav_spu_stream_to_lang(dvdnav_t *
self, uint8_t stream)=0;
75 virtual dvdnav_status_t dvdnav_get_current_highlight(dvdnav_t *
self, int32_t *button)=0;
76 virtual dvdnav_status_t dvdnav_menu_call(dvdnav_t *
self, DVDMenuID_t menu)=0;
77 virtual dvdnav_status_t dvdnav_prev_pg_search(dvdnav_t *
self)=0;
78 virtual dvdnav_status_t dvdnav_next_pg_search(dvdnav_t *
self)=0;
79 virtual dvdnav_status_t dvdnav_get_highlight_area(pci_t *nav_pci , int32_t button, int32_t mode,
dvdnav_highlight_area_t *highlight)=0;
80 virtual dvdnav_status_t dvdnav_go_up(dvdnav_t *
self)=0;
81 virtual int8_t dvdnav_get_active_audio_stream(dvdnav_t *
self)=0;
82 virtual uint16_t dvdnav_audio_stream_to_lang(dvdnav_t *
self, uint8_t stream)=0;
83 virtual int8_t dvdnav_get_audio_logical_stream(dvdnav_t *
self, uint8_t audio_num)=0;
84 virtual dvdnav_status_t dvdnav_set_region_mask(dvdnav_t *
self, int32_t region_mask)=0;
85 virtual uint8_t dvdnav_get_video_aspect(dvdnav_t *
self)=0;
86 virtual uint8_t dvdnav_get_video_scale_permission(dvdnav_t *
self)=0;
87 virtual dvdnav_status_t dvdnav_get_number_of_titles(dvdnav_t *
self, int32_t *titles)=0;
88 virtual dvdnav_status_t dvdnav_get_number_of_parts(dvdnav_t *
self, int32_t title, int32_t *parts)=0;
89 virtual dvdnav_status_t dvdnav_title_play(dvdnav_t *
self, int32_t title)=0;
90 virtual dvdnav_status_t dvdnav_part_play(dvdnav_t *
self, int32_t title, int32_t part)=0;
91 virtual dvdnav_status_t dvdnav_get_audio_attr(dvdnav_t *
self, int32_t streamid, audio_attr_t* audio_attributes)=0;
92 virtual dvdnav_status_t dvdnav_get_spu_attr(dvdnav_t *
self, int32_t streamid, subp_attr_t* stitle_attributes)=0;
93 virtual dvdnav_status_t dvdnav_jump_to_sector_by_time(dvdnav_t*
self,
96 virtual int64_t dvdnav_convert_time(dvd_time_t *time)=0;
97 virtual dvdnav_status_t dvdnav_get_angle_info(dvdnav_t *
self, int32_t *current_angle,int32_t *number_of_angles)=0;
98 virtual dvdnav_status_t dvdnav_angle_change(dvdnav_t *
self, int32_t angle) = 0;
99 virtual dvdnav_status_t dvdnav_mouse_activate(dvdnav_t *
self, pci_t *pci, int32_t x, int32_t y)=0;
100 virtual dvdnav_status_t dvdnav_mouse_select(dvdnav_t *
self, pci_t *pci, int32_t x, int32_t y)=0;
101 virtual dvdnav_status_t dvdnav_get_title_string(dvdnav_t *
self,
const char **title_str)=0;
102 virtual dvdnav_status_t dvdnav_get_serial_string(dvdnav_t *
self,
const char **serial_str)=0;
103 virtual const char* dvdnav_get_volid_string(dvdnav_t*
self) = 0;
104 virtual dvdnav_status_t dvdnav_get_disk_region_mask(dvdnav_t*
self, int32_t* region_mask) = 0;
105 virtual uint32_t dvdnav_describe_title_chapters(dvdnav_t*
self, uint32_t title, uint64_t** times, uint64_t* duration)=0;
106 virtual int64_t dvdnav_get_current_time(dvdnav_t*
self) = 0;
107 virtual int dvdnav_get_video_resolution(dvdnav_t*
self, uint32_t* width, uint32_t* height)=0;
108 virtual int8_t dvdnav_get_number_of_streams(dvdnav_t*
self, dvdnav_stream_type_t stream_type) = 0;
109 virtual dvdnav_status_t dvdnav_toggle_spu_stream(dvdnav_t*
self, uint8_t visibility) = 0;
110 virtual dvdnav_status_t dvdnav_set_active_stream(dvdnav_t*
self,
112 dvdnav_stream_type_t stream_type) = 0;
113 virtual dvdnav_status_t dvdnav_program_play(dvdnav_t*
self,
117 virtual dvdnav_status_t dvdnav_current_title_program(dvdnav_t*
self,
125 DECLARE_DLL_WRAPPER(
DllDvdNav, DLL_PATH_LIBDVDNAV)
127 DEFINE_METHOD2(dvdnav_status_t, dvdnav_open, (dvdnav_t **p1,
const char *p2))
128 DEFINE_METHOD4(dvdnav_status_t,
131 DEFINE_METHOD3(dvdnav_status_t, dvdnav_open_stream, (dvdnav_t **p1,
void *p2,
dvdnav_stream_cb *p3))
132 DEFINE_METHOD4(dvdnav_status_t,
135 DEFINE_METHOD1(dvdnav_status_t, dvdnav_close, (dvdnav_t *p1))
136 DEFINE_METHOD1(dvdnav_status_t, dvdnav_reset, (dvdnav_t *p1))
137 DEFINE_METHOD1(
const char*, dvdnav_err_to_string, (dvdnav_t *p1))
138 DEFINE_METHOD2(dvdnav_status_t, dvdnav_set_readahead_flag, (dvdnav_t *p1, int32_t p2))
139 DEFINE_METHOD2(dvdnav_status_t, dvdnav_set_PGC_positioning_flag, (dvdnav_t *p1, int32_t p2))
140 DEFINE_METHOD4(dvdnav_status_t, dvdnav_get_next_cache_block, (dvdnav_t *p1, uint8_t **p2, int32_t *p3, int32_t *p4))
141 DEFINE_METHOD2(dvdnav_status_t, dvdnav_free_cache_block, (dvdnav_t *p1,
unsigned char *p2))
142 DEFINE_METHOD1(dvdnav_status_t, dvdnav_still_skip, (dvdnav_t *p1))
143 DEFINE_METHOD1(dvdnav_status_t, dvdnav_wait_skip, (dvdnav_t *p1))
144 DEFINE_METHOD1(dvdnav_status_t, dvdnav_stop, (dvdnav_t *p1))
145 DEFINE_METHOD3(dvdnav_status_t, dvdnav_button_select, (dvdnav_t *p1, pci_t *p2, int32_t p3))
146 DEFINE_METHOD2(dvdnav_status_t, dvdnav_button_activate,(dvdnav_t *p1, pci_t *p2))
147 DEFINE_METHOD2(dvdnav_status_t, dvdnav_upper_button_select, (dvdnav_t *p1, pci_t *p2))
148 DEFINE_METHOD2(dvdnav_status_t, dvdnav_lower_button_select, (dvdnav_t *p1, pci_t *p2))
149 DEFINE_METHOD2(dvdnav_status_t, dvdnav_right_button_select, (dvdnav_t *p1, pci_t *p2))
150 DEFINE_METHOD2(dvdnav_status_t, dvdnav_left_button_select, (dvdnav_t *p1, pci_t *p2))
151 DEFINE_METHOD3(dvdnav_status_t, dvdnav_sector_search, (dvdnav_t *p1, uint64_t p2, int32_t p3))
152 DEFINE_METHOD1(pci_t*, dvdnav_get_current_nav_pci, (dvdnav_t *p1))
153 DEFINE_METHOD1(dsi_t*, dvdnav_get_current_nav_dsi, (dvdnav_t *p1))
154 DEFINE_METHOD3(dvdnav_status_t, dvdnav_get_position, (dvdnav_t *p1, uint32_t *p2, uint32_t *p3))
155 DEFINE_METHOD3(dvdnav_status_t, dvdnav_current_title_info, (dvdnav_t *p1, int32_t *p2, int32_t *p3))
156 DEFINE_METHOD2(dvdnav_status_t, dvdnav_spu_language_select, (dvdnav_t *p1,
char *p2))
157 DEFINE_METHOD2(dvdnav_status_t, dvdnav_audio_language_select, (dvdnav_t *p1,
char *p2))
158 DEFINE_METHOD2(dvdnav_status_t, dvdnav_menu_language_select, (dvdnav_t *p1,
char *p2))
159 DEFINE_METHOD1(int8_t, dvdnav_is_domain_vts, (dvdnav_t *p1))
160 DEFINE_METHOD1(int8_t, dvdnav_get_active_spu_stream, (dvdnav_t *p1))
161 DEFINE_METHOD2(int8_t, dvdnav_get_spu_logical_stream, (dvdnav_t *p1, uint8_t p2))
162 DEFINE_METHOD2(uint16_t, dvdnav_spu_stream_to_lang, (dvdnav_t *p1, uint8_t p2))
163 DEFINE_METHOD2(dvdnav_status_t, dvdnav_get_current_highlight, (dvdnav_t *p1, int32_t *p2))
164 DEFINE_METHOD2(dvdnav_status_t, dvdnav_menu_call, (dvdnav_t *p1, DVDMenuID_t p2))
165 DEFINE_METHOD2(dvdnav_status_t, dvdnav_get_disk_region_mask, (dvdnav_t * p1, int32_t* p2))
166 DEFINE_METHOD1(dvdnav_status_t, dvdnav_prev_pg_search, (dvdnav_t *p1))
167 DEFINE_METHOD1(dvdnav_status_t, dvdnav_next_pg_search, (dvdnav_t *p1))
168 DEFINE_METHOD4(dvdnav_status_t, dvdnav_get_highlight_area, (pci_t *p1, int32_t p2, int32_t p3,
dvdnav_highlight_area_t *p4))
169 DEFINE_METHOD1(dvdnav_status_t, dvdnav_go_up, (dvdnav_t *p1))
170 DEFINE_METHOD1(int8_t, dvdnav_get_active_audio_stream, (dvdnav_t *p1))
171 DEFINE_METHOD2(uint16_t, dvdnav_audio_stream_to_lang, (dvdnav_t *p1, uint8_t p2))
172 DEFINE_METHOD2(int8_t, dvdnav_get_audio_logical_stream, (dvdnav_t *p1, uint8_t p2))
173 DEFINE_METHOD2(int8_t, dvdnav_get_number_of_streams, (dvdnav_t * p1, dvdnav_stream_type_t p2))
174 DEFINE_METHOD2(dvdnav_status_t, dvdnav_set_region_mask, (dvdnav_t *p1, int32_t p2))
175 DEFINE_METHOD1(uint8_t, dvdnav_get_video_aspect, (dvdnav_t *p1))
176 DEFINE_METHOD1(uint8_t, dvdnav_get_video_scale_permission, (dvdnav_t *p1))
177 DEFINE_METHOD2(dvdnav_status_t, dvdnav_get_number_of_titles, (dvdnav_t *p1, int32_t *p2))
178 DEFINE_METHOD3(dvdnav_status_t, dvdnav_get_number_of_parts, (dvdnav_t *p1, int32_t p2, int32_t *p3))
179 DEFINE_METHOD2(dvdnav_status_t, dvdnav_title_play, (dvdnav_t *p1, int32_t p2))
180 DEFINE_METHOD3(dvdnav_status_t, dvdnav_part_play, (dvdnav_t *p1, int32_t p2, int32_t p3))
181 DEFINE_METHOD3(dvdnav_status_t, dvdnav_get_audio_attr, (dvdnav_t * p1, int32_t p2, audio_attr_t* p3))
182 DEFINE_METHOD3(dvdnav_status_t, dvdnav_get_spu_attr, (dvdnav_t * p1, int32_t p2, subp_attr_t* p3))
183 DEFINE_METHOD3(dvdnav_status_t, dvdnav_jump_to_sector_by_time, (dvdnav_t * p1, uint64_t p2, int32_t p3))
184 DEFINE_METHOD1(int64_t, dvdnav_convert_time, (dvd_time_t *p1))
185 DEFINE_METHOD3(dvdnav_status_t, dvdnav_get_angle_info, (dvdnav_t *p1, int32_t *p2,int32_t *p3))
186 DEFINE_METHOD2(dvdnav_status_t, dvdnav_angle_change, (dvdnav_t *p1, int32_t p2))
187 DEFINE_METHOD4(dvdnav_status_t, dvdnav_mouse_activate, (dvdnav_t *p1, pci_t *p2, int32_t p3, int32_t p4))
188 DEFINE_METHOD4(dvdnav_status_t, dvdnav_mouse_select, (dvdnav_t *p1, pci_t *p2, int32_t p3, int32_t p4))
189 DEFINE_METHOD2(dvdnav_status_t, dvdnav_get_title_string, (dvdnav_t *p1,
const char **p2))
190 DEFINE_METHOD2(dvdnav_status_t, dvdnav_get_serial_string, (dvdnav_t *p1,
const char **p2))
191 DEFINE_METHOD1(
const char*, dvdnav_get_volid_string, (dvdnav_t * p1))
192 DEFINE_METHOD4(uint32_t, dvdnav_describe_title_chapters, (dvdnav_t* p1, uint32_t p2, uint64_t** p3, uint64_t* p4))
193 DEFINE_METHOD1(int64_t, dvdnav_get_current_time, (dvdnav_t * p1))
194 DEFINE_METHOD3(
int, dvdnav_get_video_resolution, (dvdnav_t * p1, uint32_t* p2, uint32_t* p3))
195 DEFINE_METHOD2(dvdnav_status_t, dvdnav_toggle_spu_stream, (dvdnav_t * p1, uint8_t p2))
196 DEFINE_METHOD3(dvdnav_status_t,
197 dvdnav_set_active_stream,
198 (dvdnav_t * p1, uint8_t p2, dvdnav_stream_type_t p3))
199 DEFINE_METHOD4(dvdnav_status_t,
201 (dvdnav_t * p1, int32_t p2, int32_t p3, int32_t p4))
202 DEFINE_METHOD4(dvdnav_status_t,
203 dvdnav_current_title_program,
204 (dvdnav_t * p1, int32_t* p2, int32_t* p3, int32_t* p4))
205 BEGIN_METHOD_RESOLVE()
206 RESOLVE_METHOD(dvdnav_open)
207 RESOLVE_METHOD(dvdnav_open2)
208 RESOLVE_METHOD(dvdnav_open_stream)
209 RESOLVE_METHOD(dvdnav_open_stream2)
210 RESOLVE_METHOD(dvdnav_close)
211 RESOLVE_METHOD(dvdnav_reset)
212 RESOLVE_METHOD(dvdnav_err_to_string)
213 RESOLVE_METHOD(dvdnav_set_readahead_flag)
214 RESOLVE_METHOD(dvdnav_set_PGC_positioning_flag)
215 RESOLVE_METHOD(dvdnav_get_next_cache_block)
216 RESOLVE_METHOD(dvdnav_free_cache_block)
217 RESOLVE_METHOD(dvdnav_still_skip)
218 RESOLVE_METHOD(dvdnav_wait_skip)
219 RESOLVE_METHOD(dvdnav_stop)
220 RESOLVE_METHOD(dvdnav_get_number_of_streams)
221 RESOLVE_METHOD(dvdnav_get_disk_region_mask)
222 RESOLVE_METHOD(dvdnav_button_select)
223 RESOLVE_METHOD(dvdnav_button_activate)
224 RESOLVE_METHOD(dvdnav_upper_button_select)
225 RESOLVE_METHOD(dvdnav_lower_button_select)
226 RESOLVE_METHOD(dvdnav_right_button_select)
227 RESOLVE_METHOD(dvdnav_left_button_select)
228 RESOLVE_METHOD(dvdnav_sector_search)
229 RESOLVE_METHOD(dvdnav_get_current_nav_pci)
230 RESOLVE_METHOD(dvdnav_get_current_nav_dsi)
231 RESOLVE_METHOD(dvdnav_get_position)
232 RESOLVE_METHOD(dvdnav_current_title_info)
233 RESOLVE_METHOD(dvdnav_spu_language_select)
234 RESOLVE_METHOD(dvdnav_audio_language_select)
235 RESOLVE_METHOD(dvdnav_menu_language_select)
236 RESOLVE_METHOD(dvdnav_is_domain_vts)
237 RESOLVE_METHOD(dvdnav_get_active_spu_stream)
238 RESOLVE_METHOD(dvdnav_get_spu_logical_stream)
239 RESOLVE_METHOD(dvdnav_spu_stream_to_lang)
240 RESOLVE_METHOD(dvdnav_get_current_highlight)
241 RESOLVE_METHOD(dvdnav_menu_call)
242 RESOLVE_METHOD(dvdnav_prev_pg_search)
243 RESOLVE_METHOD(dvdnav_next_pg_search)
244 RESOLVE_METHOD(dvdnav_get_highlight_area)
245 RESOLVE_METHOD(dvdnav_go_up)
246 RESOLVE_METHOD(dvdnav_get_active_audio_stream)
247 RESOLVE_METHOD(dvdnav_audio_stream_to_lang)
248 RESOLVE_METHOD(dvdnav_get_audio_logical_stream)
249 RESOLVE_METHOD(dvdnav_set_region_mask)
250 RESOLVE_METHOD(dvdnav_get_video_aspect)
251 RESOLVE_METHOD(dvdnav_get_video_scale_permission)
252 RESOLVE_METHOD(dvdnav_get_number_of_titles)
253 RESOLVE_METHOD(dvdnav_get_number_of_parts)
254 RESOLVE_METHOD(dvdnav_title_play)
255 RESOLVE_METHOD(dvdnav_part_play)
256 RESOLVE_METHOD(dvdnav_get_audio_attr)
257 RESOLVE_METHOD(dvdnav_get_spu_attr)
258 RESOLVE_METHOD(dvdnav_jump_to_sector_by_time)
259 RESOLVE_METHOD(dvdnav_convert_time)
260 RESOLVE_METHOD(dvdnav_get_angle_info)
261 RESOLVE_METHOD(dvdnav_angle_change)
262 RESOLVE_METHOD(dvdnav_mouse_activate)
263 RESOLVE_METHOD(dvdnav_mouse_select)
264 RESOLVE_METHOD(dvdnav_get_title_string)
265 RESOLVE_METHOD(dvdnav_get_serial_string)
266 RESOLVE_METHOD(dvdnav_get_volid_string)
267 RESOLVE_METHOD(dvdnav_describe_title_chapters)
268 RESOLVE_METHOD(dvdnav_get_current_time)
269 RESOLVE_METHOD(dvdnav_get_video_resolution)
270 RESOLVE_METHOD(dvdnav_toggle_spu_stream)
271 RESOLVE_METHOD(dvdnav_set_active_stream)
272 RESOLVE_METHOD(dvdnav_program_play)
273 RESOLVE_METHOD(dvdnav_current_title_program)
Definition: DynamicDll.h:514
Definition: DllDvdNav.h:123
Definition: dvd_types.h:69
Definition: LibInputPointer.h:13
Definition: DllDvdNav.h:33
Definition: inftrees.h:24
Definition: dvd_reader.h:81