/xbmc/cores/dvdplayer/DVDInputStreams/DllDvdNav.h

http://github.com/xbmc/xbmc · C Header · 389 lines · 354 code · 15 blank · 20 comment · 0 complexity · c9beea6b9a78ef35babdb93f380273a6 MD5 · raw file

  1. #pragma once
  2. /*
  3. * Copyright (C) 2005-2013 Team XBMC
  4. * http://xbmc.org
  5. *
  6. * This Program 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, or (at your option)
  9. * any later version.
  10. *
  11. * This Program 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 XBMC; see the file COPYING. If not, see
  18. * <http://www.gnu.org/licenses/>.
  19. *
  20. */
  21. extern "C" {
  22. #define DVDNAV_COMPILE
  23. #include <stdint.h>
  24. #include "dvdnav/dvdnav.h"
  25. #ifndef WIN32
  26. #define WIN32
  27. #endif // WIN32
  28. #ifndef HAVE_CONFIG_H
  29. #define HAVE_CONFIG_H
  30. #endif
  31. #include "dvdnav/dvdnav_internal.h"
  32. #include "dvdnav/vm.h"
  33. #include "dvdnav/dvd_types.h"
  34. #ifdef WIN32 // WIN32INCLUDES
  35. #undef HAVE_CONFIG_H
  36. #endif
  37. }
  38. #include "DynamicDll.h"
  39. class DllDvdNavInterface
  40. {
  41. public:
  42. virtual ~DllDvdNavInterface() {}
  43. virtual dvdnav_status_t dvdnav_open(dvdnav_t **dest, const char *path)=0;
  44. virtual dvdnav_status_t dvdnav_close(dvdnav_t *self)=0;
  45. virtual dvdnav_status_t dvdnav_reset(dvdnav_t *self)=0;
  46. virtual const char* dvdnav_err_to_string(dvdnav_t *self)=0;
  47. virtual dvdnav_status_t dvdnav_set_readahead_flag(dvdnav_t *self, int32_t read_ahead_flag)=0;
  48. virtual dvdnav_status_t dvdnav_set_PGC_positioning_flag(dvdnav_t *self, int32_t pgc_based_flag)=0;
  49. virtual dvdnav_status_t dvdnav_get_next_cache_block(dvdnav_t *self, uint8_t **buf, int32_t *event, int32_t *len)=0;
  50. virtual dvdnav_status_t dvdnav_free_cache_block(dvdnav_t *self, unsigned char *buf)=0;
  51. virtual dvdnav_status_t dvdnav_still_skip(dvdnav_t *self)=0;
  52. virtual dvdnav_status_t dvdnav_wait_skip(dvdnav_t *self)=0;
  53. virtual dvdnav_status_t dvdnav_stop(dvdnav_t *self)=0;
  54. virtual dvdnav_status_t dvdnav_button_select(dvdnav_t *self, pci_t *pci, int32_t button)=0;
  55. virtual dvdnav_status_t dvdnav_button_activate(dvdnav_t *self, pci_t *pci)=0;
  56. virtual dvdnav_status_t dvdnav_upper_button_select(dvdnav_t *self, pci_t *pci)=0;
  57. virtual dvdnav_status_t dvdnav_lower_button_select(dvdnav_t *self, pci_t *pci)=0;
  58. virtual dvdnav_status_t dvdnav_right_button_select(dvdnav_t *self, pci_t *pci)=0;
  59. virtual dvdnav_status_t dvdnav_left_button_select(dvdnav_t *self, pci_t *pci)=0;
  60. virtual dvdnav_status_t dvdnav_sector_search(dvdnav_t *self, uint64_t offset, int32_t origin)=0;
  61. virtual pci_t* dvdnav_get_current_nav_pci(dvdnav_t *self)=0;
  62. virtual dsi_t* dvdnav_get_current_nav_dsi(dvdnav_t *self)=0;
  63. virtual dvdnav_status_t dvdnav_get_position(dvdnav_t *self, uint32_t *pos, uint32_t *len)=0;
  64. virtual dvdnav_status_t dvdnav_current_title_info(dvdnav_t *self, int32_t *title, int32_t *part)=0;
  65. virtual dvdnav_status_t dvdnav_spu_language_select(dvdnav_t *self, char *code)=0;
  66. virtual dvdnav_status_t dvdnav_audio_language_select(dvdnav_t *self, char *code)=0;
  67. virtual dvdnav_status_t dvdnav_menu_language_select(dvdnav_t *self, char *code)=0;
  68. virtual int8_t dvdnav_is_domain_vts(dvdnav_t *self)=0;
  69. virtual int8_t dvdnav_get_active_spu_stream(dvdnav_t *self)=0;
  70. virtual int8_t dvdnav_get_spu_logical_stream(dvdnav_t *self, uint8_t subp_num)=0;
  71. virtual uint16_t dvdnav_spu_stream_to_lang(dvdnav_t *self, uint8_t stream)=0;
  72. virtual dvdnav_status_t dvdnav_get_current_highlight(dvdnav_t *self, int32_t *button)=0;
  73. virtual dvdnav_status_t dvdnav_menu_call(dvdnav_t *self, DVDMenuID_t menu)=0;
  74. virtual dvdnav_status_t dvdnav_prev_pg_search(dvdnav_t *self)=0;
  75. virtual dvdnav_status_t dvdnav_next_pg_search(dvdnav_t *self)=0;
  76. virtual dvdnav_status_t dvdnav_get_highlight_area(pci_t *nav_pci , int32_t button, int32_t mode, dvdnav_highlight_area_t *highlight)=0;
  77. virtual dvdnav_status_t dvdnav_go_up(dvdnav_t *self)=0;
  78. virtual int8_t dvdnav_get_active_audio_stream(dvdnav_t *self)=0;
  79. virtual uint16_t dvdnav_audio_stream_to_lang(dvdnav_t *self, uint8_t stream)=0;
  80. virtual vm_t* dvdnav_get_vm(dvdnav_t *self)=0;
  81. virtual int dvdnav_get_nr_of_subtitle_streams(dvdnav_t *self)=0;
  82. virtual int dvdnav_get_nr_of_audio_streams(dvdnav_t *self)=0;
  83. virtual int dvdnav_get_button_info(dvdnav_t* self, int alpha[2][4], int color[2][4])=0;
  84. virtual int8_t dvdnav_get_audio_logical_stream(dvdnav_t *self, uint8_t audio_num)=0;
  85. virtual dvdnav_status_t dvdnav_set_region_mask(dvdnav_t *self, int32_t region_mask)=0;
  86. virtual uint8_t dvdnav_get_video_aspect(dvdnav_t *self)=0;
  87. virtual uint8_t dvdnav_get_video_scale_permission(dvdnav_t *self)=0;
  88. virtual dvdnav_status_t dvdnav_get_number_of_titles(dvdnav_t *self, int32_t *titles)=0;
  89. virtual dvdnav_status_t dvdnav_get_number_of_parts(dvdnav_t *self, int32_t title, int32_t *parts)=0;
  90. virtual dvdnav_status_t dvdnav_title_play(dvdnav_t *self, int32_t title)=0;
  91. virtual dvdnav_status_t dvdnav_part_play(dvdnav_t *self, int32_t title, int32_t part)=0;
  92. virtual dvdnav_status_t dvdnav_subpicture_change(dvdnav_t *self, int32_t subpicture)=0;
  93. virtual dvdnav_status_t dvdnav_audio_change(dvdnav_t *self, int32_t audio)=0;
  94. virtual dvdnav_status_t dvdnav_get_audio_info(dvdnav_t * self, int32_t streamid, audio_attr_t* audio_attributes)=0;
  95. virtual dvdnav_status_t dvdnav_get_stitle_info(dvdnav_t * self, int32_t streamid, subp_attr_t* stitle_attributes)=0;
  96. virtual dvdnav_status_t dvdnav_time_search(dvdnav_t * self, uint64_t timepos)=0;
  97. virtual int64_t dvdnav_convert_time(dvd_time_t *time)=0;
  98. virtual dvdnav_status_t dvdnav_get_state(dvdnav_t *self, dvd_state_t *save_state)=0;
  99. virtual dvdnav_status_t dvdnav_set_state(dvdnav_t *self, dvd_state_t *save_state)=0;
  100. virtual dvdnav_status_t dvdnav_get_angle_info(dvdnav_t *self, int32_t *current_angle,int32_t *number_of_angles)=0;
  101. virtual dvdnav_status_t dvdnav_mouse_activate(dvdnav_t *self, pci_t *pci, int32_t x, int32_t y)=0;
  102. virtual dvdnav_status_t dvdnav_mouse_select(dvdnav_t *self, pci_t *pci, int32_t x, int32_t y)=0;
  103. virtual dvdnav_status_t dvdnav_get_title_string(dvdnav_t *self, const char **title_str)=0;
  104. virtual dvdnav_status_t dvdnav_get_serial_string(dvdnav_t *self, const char **serial_str)=0;
  105. };
  106. #if (defined USE_STATIC_LIBDVDNAV)
  107. #error "Use of static libdvdnav is currently unsupported."
  108. class DllDvdNav : public DllDynamic, DllDvdNavInterface
  109. {
  110. public:
  111. virtual ~DllDvdNav() {}
  112. virtual dvdnav_status_t dvdnav_open(dvdnav_t **dest, const char *path)
  113. { return ::dvdnav_open(dest, path); }
  114. virtual dvdnav_status_t dvdnav_close(dvdnav_t *self)
  115. { return ::dvdnav_close(self); }
  116. virtual dvdnav_status_t dvdnav_reset(dvdnav_t *self)
  117. { return ::dvdnav_reset(self); }
  118. virtual const char* dvdnav_err_to_string(dvdnav_t *self)
  119. { return ::dvdnav_err_to_string(self); }
  120. virtual dvdnav_status_t dvdnav_set_readahead_flag(dvdnav_t *self, int32_t read_ahead_flag)
  121. { return ::dvdnav_set_readahead_flag(self, read_ahead_flag); }
  122. virtual dvdnav_status_t dvdnav_set_PGC_positioning_flag(dvdnav_t *self, int32_t pgc_based_flag)
  123. { return ::dvdnav_set_PGC_positioning_flag(self, pgc_based_flag); }
  124. virtual dvdnav_status_t dvdnav_get_next_cache_block(dvdnav_t *self, uint8_t **buf, int32_t *event, int32_t *len)
  125. { return ::dvdnav_get_next_cache_block(self, buf, event, len); }
  126. virtual dvdnav_status_t dvdnav_free_cache_block(dvdnav_t *self, unsigned char *buf)
  127. { return ::dvdnav_free_cache_block(self, buf); }
  128. virtual dvdnav_status_t dvdnav_still_skip(dvdnav_t *self)
  129. { return ::dvdnav_still_skip(self); }
  130. virtual dvdnav_status_t dvdnav_wait_skip(dvdnav_t *self)
  131. { return ::dvdnav_wait_skip(self); }
  132. virtual dvdnav_status_t dvdnav_stop(dvdnav_t *self)
  133. { return ::dvdnav_stop(self); }
  134. virtual dvdnav_status_t dvdnav_button_select(dvdnav_t *self, pci_t *pci, int32_t button)
  135. { return ::dvdnav_button_select(self, pci, button); }
  136. virtual dvdnav_status_t dvdnav_button_activate(dvdnav_t *self, pci_t *pci)
  137. { return ::dvdnav_button_activate(self, pci); }
  138. virtual dvdnav_status_t dvdnav_upper_button_select(dvdnav_t *self, pci_t *pci)
  139. { return ::dvdnav_upper_button_select(self, pci); }
  140. virtual dvdnav_status_t dvdnav_lower_button_select(dvdnav_t *self, pci_t *pci)
  141. { return ::dvdnav_lower_button_select(self, pci); }
  142. virtual dvdnav_status_t dvdnav_right_button_select(dvdnav_t *self, pci_t *pci)
  143. { return ::dvdnav_right_button_select(self, pci); }
  144. virtual dvdnav_status_t dvdnav_left_button_select(dvdnav_t *self, pci_t *pci)
  145. { return ::dvdnav_left_button_select(self, pci); }
  146. virtual dvdnav_status_t dvdnav_sector_search(dvdnav_t *self, uint64_t offset, int32_t origin)
  147. { return ::dvdnav_sector_search(self, offset, origin); }
  148. virtual pci_t* dvdnav_get_current_nav_pci(dvdnav_t *self)
  149. { return ::dvdnav_get_current_nav_pci(self); }
  150. virtual dsi_t* dvdnav_get_current_nav_dsi(dvdnav_t *self)
  151. { return ::dvdnav_get_current_nav_dsi(self); }
  152. virtual dvdnav_status_t dvdnav_get_position(dvdnav_t *self, uint32_t *pos, uint32_t *len)
  153. { return ::dvdnav_get_position(self, pos, len); }
  154. virtual dvdnav_status_t dvdnav_current_title_info(dvdnav_t *self, int32_t *title, int32_t *part)
  155. { return ::dvdnav_current_title_info(self, title, part); }
  156. virtual dvdnav_status_t dvdnav_spu_language_select(dvdnav_t *self, char *code)
  157. { return ::dvdnav_spu_language_select(self, code); }
  158. virtual dvdnav_status_t dvdnav_audio_language_select(dvdnav_t *self, char *code)
  159. { return ::dvdnav_audio_language_select(self, code); }
  160. virtual dvdnav_status_t dvdnav_menu_language_select(dvdnav_t *self, char *code)
  161. { return ::dvdnav_menu_language_select(self, code); }
  162. virtual int8_t dvdnav_is_domain_vts(dvdnav_t *self)
  163. { return ::dvdnav_is_domain_vts(self); }
  164. virtual int8_t dvdnav_get_active_spu_stream(dvdnav_t *self)
  165. { return ::dvdnav_get_active_spu_stream(self); }
  166. virtual int8_t dvdnav_get_spu_logical_stream(dvdnav_t *self, uint8_t subp_num)
  167. { return ::dvdnav_get_spu_logical_stream(self, subp_num); }
  168. virtual uint16_t dvdnav_spu_stream_to_lang(dvdnav_t *self, uint8_t stream)
  169. { return ::dvdnav_spu_stream_to_lang(self, stream); }
  170. virtual dvdnav_status_t dvdnav_get_current_highlight(dvdnav_t *self, int32_t *button)
  171. { return ::dvdnav_get_current_highlight(self, button); }
  172. virtual dvdnav_status_t dvdnav_menu_call(dvdnav_t *self, DVDMenuID_t menu)
  173. { return ::dvdnav_menu_call(self, menu); }
  174. virtual dvdnav_status_t dvdnav_prev_pg_search(dvdnav_t *self)
  175. { return ::dvdnav_prev_pg_search(self); }
  176. virtual dvdnav_status_t dvdnav_next_pg_search(dvdnav_t *self)
  177. { return ::dvdnav_next_pg_search(self); }
  178. virtual dvdnav_status_t dvdnav_get_highlight_area(pci_t *nav_pci , int32_t button, int32_t mode, dvdnav_highlight_area_t *highlight)
  179. { return ::dvdnav_get_highlight_area(nav_pci, button, mode, highlight); }
  180. virtual dvdnav_status_t dvdnav_go_up(dvdnav_t *self)
  181. { return ::dvdnav_go_up(self); }
  182. virtual int8_t dvdnav_get_active_audio_stream(dvdnav_t *self)
  183. { return ::dvdnav_get_active_audio_stream(self); }
  184. virtual uint16_t dvdnav_audio_stream_to_lang(dvdnav_t *self, uint8_t stream)
  185. { return ::dvdnav_audio_stream_to_lang(self, stream); }
  186. virtual vm_t* dvdnav_get_vm(dvdnav_t *self)
  187. { return ::dvdnav_get_vm(self); }
  188. virtual int dvdnav_get_nr_of_subtitle_streams(dvdnav_t *self)
  189. { return ::dvdnav_get_nr_of_subtitle_streams(self); }
  190. virtual int dvdnav_get_nr_of_audio_streams(dvdnav_t *self)
  191. { return ::dvdnav_get_nr_of_audio_streams(self); }
  192. virtual int dvdnav_get_button_info(dvdnav_t* self, int alpha[2][4], int color[2][4])
  193. { return ::dvdnav_get_button_info(self, alpha, color); }
  194. virtual int8_t dvdnav_get_audio_logical_stream(dvdnav_t *self, uint8_t audio_num)
  195. { return ::dvdnav_get_audio_logical_stream(self, audio_num); }
  196. virtual dvdnav_status_t dvdnav_set_region_mask(dvdnav_t *self, int32_t region_mask)
  197. { return ::dvdnav_set_region_mask(self, region_mask); }
  198. virtual uint8_t dvdnav_get_video_aspect(dvdnav_t *self)
  199. { return ::dvdnav_get_video_aspect(self); }
  200. virtual uint8_t dvdnav_get_video_scale_permission(dvdnav_t *self)
  201. { return ::dvdnav_get_video_scale_permission(self); }
  202. virtual dvdnav_status_t dvdnav_get_number_of_titles(dvdnav_t *self, int32_t *titles)
  203. { return ::dvdnav_get_number_of_titles(self, titles); }
  204. virtual dvdnav_status_t dvdnav_get_number_of_parts(dvdnav_t *self, int32_t title, int32_t *parts)
  205. { return ::dvdnav_get_number_of_parts(self, title, parts); }
  206. virtual dvdnav_status_t dvdnav_title_play(dvdnav_t *self, int32_t title)
  207. { return ::dvdnav_title_play(self, title); }
  208. virtual dvdnav_status_t dvdnav_part_play(dvdnav_t *self, int32_t title, int32_t part)
  209. { return ::dvdnav_part_play(self, title, part); }
  210. virtual dvdnav_status_t dvdnav_subpicture_change(dvdnav_t *self, int32_t subpicture)
  211. { return ::dvdnav_subpicture_change(self, subpicture); }
  212. virtual dvdnav_status_t dvdnav_audio_change(dvdnav_t *self, int32_t audio)
  213. { return ::dvdnav_audio_change(self, audio); }
  214. virtual dvdnav_status_t dvdnav_get_audio_info(dvdnav_t * self, int32_t streamid, audio_attr_t* audio_attributes)
  215. { return ::dvdnav_get_audio_info(self, streamid, audio_attributes); }
  216. virtual dvdnav_status_t dvdnav_get_stitle_info(dvdnav_t * self, int32_t streamid, subp_attr_t* stitle_attributes)
  217. { return ::dvdnav_get_stitle_info(self, streamid, stitle_attributes); }
  218. virtual dvdnav_status_t dvdnav_time_search(dvdnav_t * self, uint64_t timepos)
  219. { return ::dvdnav_time_search(self, timepos); }
  220. virtual int64_t dvdnav_convert_time(dvd_time_t *time)
  221. { return ::dvdnav_convert_time(time); }
  222. virtual dvdnav_status_t dvdnav_get_state(dvdnav_t *self, dvd_state_t *save_state)
  223. { return ::dvdnav_get_state(self, save_state); }
  224. virtual dvdnav_status_t dvdnav_set_state(dvdnav_t *self, dvd_state_t *save_state)
  225. { return ::dvdnav_set_state(self, save_state); }
  226. virtual dvdnav_status_t dvdnav_get_angle_info(dvdnav_t *self, int32_t *current_angle,int32_t *number_of_angles)
  227. { return ::dvdnav_get_angle_info(self, current_angle, number_of_angles); }
  228. virtual dvdnav_status_t dvdnav_mouse_activate(dvdnav_t *self, pci_t *pci, int32_t x, int32_t y)
  229. { return ::dvdnav_mouse_activate(self, pci, x, y); }
  230. virtual dvdnav_status_t dvdnav_mouse_select(dvdnav_t *self, pci_t *pci, int32_t x, int32_t y)
  231. { return ::dvdnav_mouse_select(self, pci, x, y); }
  232. virtual dvdnav_status_t dvdnav_get_title_string(dvdnav_t *self, const char **title_str)
  233. { return ::dvdnav_get_title_string(self, title_str); }
  234. virtual dvdnav_status_t dvdnav_get_serial_string(dvdnav_t *self, const char **serial_str)
  235. { return ::dvdnav_get_serial_string(self, serial_str); }
  236. // DLL faking.
  237. virtual bool ResolveExports() { return true; }
  238. virtual bool Load() { return true; }
  239. virtual void Unload() {}
  240. };
  241. #else
  242. class DllDvdNav : public DllDynamic, DllDvdNavInterface
  243. {
  244. DECLARE_DLL_WRAPPER(DllDvdNav, DLL_PATH_LIBDVDNAV)
  245. DEFINE_METHOD2(dvdnav_status_t, dvdnav_open, (dvdnav_t **p1, const char *p2))
  246. DEFINE_METHOD1(dvdnav_status_t, dvdnav_close, (dvdnav_t *p1))
  247. DEFINE_METHOD1(dvdnav_status_t, dvdnav_reset, (dvdnav_t *p1))
  248. DEFINE_METHOD1(const char*, dvdnav_err_to_string, (dvdnav_t *p1))
  249. DEFINE_METHOD2(dvdnav_status_t, dvdnav_set_readahead_flag, (dvdnav_t *p1, int32_t p2))
  250. DEFINE_METHOD2(dvdnav_status_t, dvdnav_set_PGC_positioning_flag, (dvdnav_t *p1, int32_t p2))
  251. DEFINE_METHOD4(dvdnav_status_t, dvdnav_get_next_cache_block, (dvdnav_t *p1, uint8_t **p2, int32_t *p3, int32_t *p4))
  252. DEFINE_METHOD2(dvdnav_status_t, dvdnav_free_cache_block, (dvdnav_t *p1, unsigned char *p2))
  253. DEFINE_METHOD1(dvdnav_status_t, dvdnav_still_skip, (dvdnav_t *p1))
  254. DEFINE_METHOD1(dvdnav_status_t, dvdnav_wait_skip, (dvdnav_t *p1))
  255. DEFINE_METHOD1(dvdnav_status_t, dvdnav_stop, (dvdnav_t *p1))
  256. DEFINE_METHOD3(dvdnav_status_t, dvdnav_button_select, (dvdnav_t *p1, pci_t *p2, int32_t p3))
  257. DEFINE_METHOD2(dvdnav_status_t, dvdnav_button_activate,(dvdnav_t *p1, pci_t *p2))
  258. DEFINE_METHOD2(dvdnav_status_t, dvdnav_upper_button_select, (dvdnav_t *p1, pci_t *p2))
  259. DEFINE_METHOD2(dvdnav_status_t, dvdnav_lower_button_select, (dvdnav_t *p1, pci_t *p2))
  260. DEFINE_METHOD2(dvdnav_status_t, dvdnav_right_button_select, (dvdnav_t *p1, pci_t *p2))
  261. DEFINE_METHOD2(dvdnav_status_t, dvdnav_left_button_select, (dvdnav_t *p1, pci_t *p2))
  262. DEFINE_METHOD3(dvdnav_status_t, dvdnav_sector_search, (dvdnav_t *p1, uint64_t p2, int32_t p3))
  263. DEFINE_METHOD1(pci_t*, dvdnav_get_current_nav_pci, (dvdnav_t *p1))
  264. DEFINE_METHOD1(dsi_t*, dvdnav_get_current_nav_dsi, (dvdnav_t *p1))
  265. DEFINE_METHOD3(dvdnav_status_t, dvdnav_get_position, (dvdnav_t *p1, uint32_t *p2, uint32_t *p3))
  266. DEFINE_METHOD3(dvdnav_status_t, dvdnav_current_title_info, (dvdnav_t *p1, int32_t *p2, int32_t *p3))
  267. DEFINE_METHOD2(dvdnav_status_t, dvdnav_spu_language_select, (dvdnav_t *p1, char *p2))
  268. DEFINE_METHOD2(dvdnav_status_t, dvdnav_audio_language_select, (dvdnav_t *p1, char *p2))
  269. DEFINE_METHOD2(dvdnav_status_t, dvdnav_menu_language_select, (dvdnav_t *p1, char *p2))
  270. DEFINE_METHOD1(int8_t, dvdnav_is_domain_vts, (dvdnav_t *p1))
  271. DEFINE_METHOD1(int8_t, dvdnav_get_active_spu_stream, (dvdnav_t *p1))
  272. DEFINE_METHOD2(int8_t, dvdnav_get_spu_logical_stream, (dvdnav_t *p1, uint8_t p2))
  273. DEFINE_METHOD2(uint16_t, dvdnav_spu_stream_to_lang, (dvdnav_t *p1, uint8_t p2))
  274. DEFINE_METHOD2(dvdnav_status_t, dvdnav_get_current_highlight, (dvdnav_t *p1, int32_t *p2))
  275. DEFINE_METHOD2(dvdnav_status_t, dvdnav_menu_call, (dvdnav_t *p1, DVDMenuID_t p2))
  276. DEFINE_METHOD1(dvdnav_status_t, dvdnav_prev_pg_search, (dvdnav_t *p1))
  277. DEFINE_METHOD1(dvdnav_status_t, dvdnav_next_pg_search, (dvdnav_t *p1))
  278. DEFINE_METHOD4(dvdnav_status_t, dvdnav_get_highlight_area, (pci_t *p1, int32_t p2, int32_t p3, dvdnav_highlight_area_t *p4))
  279. DEFINE_METHOD1(dvdnav_status_t, dvdnav_go_up, (dvdnav_t *p1))
  280. DEFINE_METHOD1(int8_t, dvdnav_get_active_audio_stream, (dvdnav_t *p1))
  281. DEFINE_METHOD2(uint16_t, dvdnav_audio_stream_to_lang, (dvdnav_t *p1, uint8_t p2))
  282. DEFINE_METHOD1(vm_t*, dvdnav_get_vm, (dvdnav_t *p1))
  283. DEFINE_METHOD1(int, dvdnav_get_nr_of_subtitle_streams, (dvdnav_t *p1))
  284. DEFINE_METHOD1(int, dvdnav_get_nr_of_audio_streams, (dvdnav_t *p1))
  285. DEFINE_METHOD3(int, dvdnav_get_button_info, (dvdnav_t* p1, int p2[2][4], int p3[2][4]))
  286. DEFINE_METHOD2(int8_t, dvdnav_get_audio_logical_stream, (dvdnav_t *p1, uint8_t p2))
  287. DEFINE_METHOD2(dvdnav_status_t, dvdnav_set_region_mask, (dvdnav_t *p1, int32_t p2))
  288. DEFINE_METHOD1(uint8_t, dvdnav_get_video_aspect, (dvdnav_t *p1))
  289. DEFINE_METHOD1(uint8_t, dvdnav_get_video_scale_permission, (dvdnav_t *p1))
  290. DEFINE_METHOD2(dvdnav_status_t, dvdnav_get_number_of_titles, (dvdnav_t *p1, int32_t *p2))
  291. DEFINE_METHOD3(dvdnav_status_t, dvdnav_get_number_of_parts, (dvdnav_t *p1, int32_t p2, int32_t *p3))
  292. DEFINE_METHOD2(dvdnav_status_t, dvdnav_title_play, (dvdnav_t *p1, int32_t p2))
  293. DEFINE_METHOD3(dvdnav_status_t, dvdnav_part_play, (dvdnav_t *p1, int32_t p2, int32_t p3))
  294. DEFINE_METHOD2(dvdnav_status_t, dvdnav_subpicture_change, (dvdnav_t *p1, int32_t p2))
  295. DEFINE_METHOD2(dvdnav_status_t, dvdnav_audio_change, (dvdnav_t *p1, int32_t p2))
  296. DEFINE_METHOD3(dvdnav_status_t, dvdnav_get_audio_info, (dvdnav_t * p1, int32_t p2, audio_attr_t* p3))
  297. DEFINE_METHOD3(dvdnav_status_t, dvdnav_get_stitle_info, (dvdnav_t * p1, int32_t p2, subp_attr_t* p3))
  298. DEFINE_METHOD2(dvdnav_status_t, dvdnav_time_search, (dvdnav_t * p1, uint64_t p2))
  299. DEFINE_METHOD3(dvdnav_status_t, dvdnav_jump_to_sector_by_time, (dvdnav_t * p1, uint64_t p2, int32_t p3))
  300. DEFINE_METHOD1(int64_t, dvdnav_convert_time, (dvd_time_t *p1))
  301. DEFINE_METHOD2(dvdnav_status_t, dvdnav_get_state, (dvdnav_t *p1, dvd_state_t *p2))
  302. DEFINE_METHOD2(dvdnav_status_t, dvdnav_set_state, (dvdnav_t *p1, dvd_state_t *p2))
  303. DEFINE_METHOD3(dvdnav_status_t, dvdnav_get_angle_info, (dvdnav_t *p1, int32_t *p2,int32_t *p3))
  304. DEFINE_METHOD4(dvdnav_status_t, dvdnav_mouse_activate, (dvdnav_t *p1, pci_t *p2, int32_t p3, int32_t p4))
  305. DEFINE_METHOD4(dvdnav_status_t, dvdnav_mouse_select, (dvdnav_t *p1, pci_t *p2, int32_t p3, int32_t p4))
  306. DEFINE_METHOD2(dvdnav_status_t, dvdnav_get_title_string, (dvdnav_t *p1, const char **p2))
  307. DEFINE_METHOD2(dvdnav_status_t, dvdnav_get_serial_string, (dvdnav_t *p1, const char **p2))
  308. BEGIN_METHOD_RESOLVE()
  309. RESOLVE_METHOD(dvdnav_open)
  310. RESOLVE_METHOD(dvdnav_close)
  311. RESOLVE_METHOD(dvdnav_reset)
  312. RESOLVE_METHOD(dvdnav_err_to_string)
  313. RESOLVE_METHOD(dvdnav_set_readahead_flag)
  314. RESOLVE_METHOD(dvdnav_set_PGC_positioning_flag)
  315. RESOLVE_METHOD(dvdnav_get_next_cache_block)
  316. RESOLVE_METHOD(dvdnav_free_cache_block)
  317. RESOLVE_METHOD(dvdnav_still_skip)
  318. RESOLVE_METHOD(dvdnav_wait_skip)
  319. RESOLVE_METHOD(dvdnav_stop)
  320. RESOLVE_METHOD(dvdnav_button_select)
  321. RESOLVE_METHOD(dvdnav_button_activate)
  322. RESOLVE_METHOD(dvdnav_upper_button_select)
  323. RESOLVE_METHOD(dvdnav_lower_button_select)
  324. RESOLVE_METHOD(dvdnav_right_button_select)
  325. RESOLVE_METHOD(dvdnav_left_button_select)
  326. RESOLVE_METHOD(dvdnav_sector_search)
  327. RESOLVE_METHOD(dvdnav_get_current_nav_pci)
  328. RESOLVE_METHOD(dvdnav_get_current_nav_dsi)
  329. RESOLVE_METHOD(dvdnav_get_position)
  330. RESOLVE_METHOD(dvdnav_current_title_info)
  331. RESOLVE_METHOD(dvdnav_spu_language_select)
  332. RESOLVE_METHOD(dvdnav_audio_language_select)
  333. RESOLVE_METHOD(dvdnav_menu_language_select)
  334. RESOLVE_METHOD(dvdnav_is_domain_vts)
  335. RESOLVE_METHOD(dvdnav_get_active_spu_stream)
  336. RESOLVE_METHOD(dvdnav_get_spu_logical_stream)
  337. RESOLVE_METHOD(dvdnav_spu_stream_to_lang)
  338. RESOLVE_METHOD(dvdnav_get_current_highlight)
  339. RESOLVE_METHOD(dvdnav_menu_call)
  340. RESOLVE_METHOD(dvdnav_prev_pg_search)
  341. RESOLVE_METHOD(dvdnav_next_pg_search)
  342. RESOLVE_METHOD(dvdnav_get_highlight_area)
  343. RESOLVE_METHOD(dvdnav_go_up)
  344. RESOLVE_METHOD(dvdnav_get_active_audio_stream)
  345. RESOLVE_METHOD(dvdnav_audio_stream_to_lang)
  346. RESOLVE_METHOD(dvdnav_get_vm)
  347. RESOLVE_METHOD(dvdnav_get_nr_of_subtitle_streams)
  348. RESOLVE_METHOD(dvdnav_get_nr_of_audio_streams)
  349. RESOLVE_METHOD(dvdnav_get_button_info)
  350. RESOLVE_METHOD(dvdnav_get_audio_logical_stream)
  351. RESOLVE_METHOD(dvdnav_set_region_mask)
  352. RESOLVE_METHOD(dvdnav_get_video_aspect)
  353. RESOLVE_METHOD(dvdnav_get_video_scale_permission)
  354. RESOLVE_METHOD(dvdnav_get_number_of_titles)
  355. RESOLVE_METHOD(dvdnav_get_number_of_parts)
  356. RESOLVE_METHOD(dvdnav_title_play)
  357. RESOLVE_METHOD(dvdnav_part_play)
  358. RESOLVE_METHOD(dvdnav_subpicture_change)
  359. RESOLVE_METHOD(dvdnav_audio_change)
  360. RESOLVE_METHOD(dvdnav_get_audio_info)
  361. RESOLVE_METHOD(dvdnav_get_stitle_info)
  362. RESOLVE_METHOD(dvdnav_time_search)
  363. RESOLVE_METHOD(dvdnav_jump_to_sector_by_time)
  364. RESOLVE_METHOD(dvdnav_convert_time)
  365. RESOLVE_METHOD(dvdnav_get_state)
  366. RESOLVE_METHOD(dvdnav_set_state)
  367. RESOLVE_METHOD(dvdnav_get_angle_info)
  368. RESOLVE_METHOD(dvdnav_mouse_activate)
  369. RESOLVE_METHOD(dvdnav_mouse_select)
  370. RESOLVE_METHOD(dvdnav_get_title_string)
  371. RESOLVE_METHOD(dvdnav_get_serial_string)
  372. END_METHOD_RESOLVE()
  373. };
  374. #endif