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