32 #include "dvd_reader.h" 33 #include "dvd_types.h" 34 #include "dvdnav_events.h" 35 #include "nav_types.h" 50 typedef struct dvdnav_s dvdnav_t;
53 typedef int32_t dvdnav_status_t;
62 #define DVDNAV_STATUS_ERR 0 63 #define DVDNAV_STATUS_OK 1 74 DVDNAV_LOGGER_LEVEL_INFO,
75 DVDNAV_LOGGER_LEVEL_ERROR,
76 DVDNAV_LOGGER_LEVEL_WARN,
77 DVDNAV_LOGGER_LEVEL_DEBUG,
78 } dvdnav_logger_level_t;
82 void (*pf_log)(
void*, dvdnav_logger_level_t,
const char*, va_list);
101 dvdnav_status_t dvdnav_open(dvdnav_t **dest,
const char *path);
102 dvdnav_status_t dvdnav_open_stream(dvdnav_t** dest,
void* priv, dvdnav_stream_cb* stream_cb);
104 dvdnav_status_t dvdnav_open2(dvdnav_t** dest,
void*,
const dvdnav_logger_cb*,
const char* path);
105 dvdnav_status_t dvdnav_open_stream2(dvdnav_t** dest,
108 dvdnav_stream_cb* stream_cb);
110 dvdnav_status_t dvdnav_dup(dvdnav_t** dest, dvdnav_t* src);
111 dvdnav_status_t dvdnav_free_dup(dvdnav_t* _this);
117 dvdnav_status_t dvdnav_close(dvdnav_t *
self);
122 dvdnav_status_t dvdnav_reset(dvdnav_t *
self);
129 dvdnav_status_t dvdnav_path(dvdnav_t *
self,
const char **path);
134 const char* dvdnav_err_to_string(dvdnav_t *
self);
136 const char* dvdnav_version(
void);
155 dvdnav_status_t dvdnav_set_region_mask(dvdnav_t *
self, int32_t region_mask);
163 dvdnav_status_t dvdnav_get_region_mask(dvdnav_t *
self, int32_t *region_mask);
178 dvdnav_status_t dvdnav_set_readahead_flag(dvdnav_t *
self, int32_t read_ahead_flag);
183 dvdnav_status_t dvdnav_get_readahead_flag(dvdnav_t *
self, int32_t *read_ahead_flag);
192 dvdnav_status_t dvdnav_set_PGC_positioning_flag(dvdnav_t *
self, int32_t pgc_based_flag);
197 dvdnav_status_t dvdnav_get_PGC_positioning_flag(dvdnav_t *
self, int32_t *pgc_based_flag);
223 dvdnav_status_t dvdnav_get_next_block(dvdnav_t*
self, uint8_t* buf, int32_t* event, int32_t* len);
233 dvdnav_status_t dvdnav_get_next_cache_block(dvdnav_t*
self,
243 dvdnav_status_t dvdnav_free_cache_block(dvdnav_t *
self,
unsigned char *buf);
250 dvdnav_status_t dvdnav_still_skip(dvdnav_t *
self);
259 dvdnav_status_t dvdnav_wait_skip(dvdnav_t *
self);
269 uint32_t dvdnav_get_next_still_flag(dvdnav_t *
self);
277 dvdnav_status_t dvdnav_stop(dvdnav_t *
self);
291 dvdnav_status_t dvdnav_get_disk_region_mask(dvdnav_t*
self, int32_t* region_mask);
300 dvdnav_status_t dvdnav_get_number_of_titles(dvdnav_t *
self, int32_t *titles);
305 dvdnav_status_t dvdnav_get_number_of_parts(dvdnav_t *
self, int32_t title, int32_t *parts);
310 dvdnav_status_t dvdnav_get_number_of_angles(dvdnav_t*
self, int32_t title, int32_t* angles);
315 dvdnav_status_t dvdnav_title_play(dvdnav_t *
self, int32_t title);
320 dvdnav_status_t dvdnav_part_play(dvdnav_t *
self, int32_t title, int32_t part);
325 dvdnav_status_t dvdnav_program_play(dvdnav_t *
self, int32_t title, int32_t pgcn, int32_t pgn);
334 uint32_t dvdnav_describe_title_chapters(dvdnav_t *
self, int32_t title, uint64_t **times, uint64_t *duration);
342 dvdnav_status_t dvdnav_part_play_auto_stop(dvdnav_t*
self,
345 int32_t parts_to_play);
352 dvdnav_status_t dvdnav_time_play(dvdnav_t*
self, int32_t title, uint64_t time);
359 dvdnav_status_t dvdnav_menu_call(dvdnav_t *
self, DVDMenuID_t menu);
366 dvdnav_status_t dvdnav_current_title_info(dvdnav_t*
self, int32_t* title, int32_t* part);
372 dvdnav_status_t dvdnav_current_title_program(dvdnav_t*
self,
384 dvdnav_status_t dvdnav_get_position_in_title(dvdnav_t*
self, uint32_t*
pos, uint32_t* len);
392 dvdnav_status_t dvdnav_part_search(dvdnav_t *
self, int32_t part);
413 dvdnav_status_t dvdnav_sector_search(dvdnav_t*
self, int64_t offset, int32_t origin);
419 int64_t dvdnav_get_current_time(dvdnav_t *
self);
428 dvdnav_status_t dvdnav_time_search(dvdnav_t*
self, uint64_t time);
440 dvdnav_status_t dvdnav_jump_to_sector_by_time(dvdnav_t*
self,
441 uint64_t time_in_pts_ticks,
448 dvdnav_status_t dvdnav_go_up(dvdnav_t *
self);
454 dvdnav_status_t dvdnav_prev_pg_search(dvdnav_t *
self);
460 dvdnav_status_t dvdnav_top_pg_search(dvdnav_t *
self);
466 dvdnav_status_t dvdnav_next_pg_search(dvdnav_t *
self);
476 dvdnav_status_t dvdnav_get_position(dvdnav_t*
self, uint32_t* pos, uint32_t* len);
496 dvdnav_status_t dvdnav_get_current_highlight(dvdnav_t *
self, int32_t *button);
505 pci_t* dvdnav_get_current_nav_pci(dvdnav_t *
self);
514 dsi_t* dvdnav_get_current_nav_dsi(dvdnav_t *
self);
519 dvdnav_status_t dvdnav_get_highlight_area(pci_t* nav_pci,
527 dvdnav_status_t dvdnav_upper_button_select(dvdnav_t *
self, pci_t *pci);
528 dvdnav_status_t dvdnav_lower_button_select(dvdnav_t *
self, pci_t *pci);
529 dvdnav_status_t dvdnav_right_button_select(dvdnav_t *
self, pci_t *pci);
530 dvdnav_status_t dvdnav_left_button_select(dvdnav_t *
self, pci_t *pci);
535 dvdnav_status_t dvdnav_button_activate(dvdnav_t *
self, pci_t *pci);
540 dvdnav_status_t dvdnav_button_select(dvdnav_t *
self, pci_t *pci, int32_t button);
545 dvdnav_status_t dvdnav_button_select_and_activate(dvdnav_t *
self, pci_t *pci, int32_t button);
550 dvdnav_status_t dvdnav_button_activate_cmd(dvdnav_t *
self, int32_t button, vm_cmd_t *cmd);
555 dvdnav_status_t dvdnav_mouse_select(dvdnav_t *
self, pci_t *pci, int32_t x, int32_t y);
560 dvdnav_status_t dvdnav_mouse_activate(dvdnav_t *
self, pci_t *pci, int32_t x, int32_t y);
575 dvdnav_status_t dvdnav_menu_language_select(dvdnav_t*
self,
char*
code);
580 dvdnav_status_t dvdnav_audio_language_select(dvdnav_t*
self,
char* code);
585 dvdnav_status_t dvdnav_spu_language_select(dvdnav_t*
self,
char* code);
599 dvdnav_status_t dvdnav_get_title_string(dvdnav_t *
self,
const char **title_str);
606 dvdnav_status_t dvdnav_get_serial_string(dvdnav_t *
self,
const char **serial_str);
619 const char* dvdnav_get_volid_string(dvdnav_t*
self);
628 uint8_t dvdnav_get_video_aspect(dvdnav_t *
self);
633 dvdnav_status_t dvdnav_get_video_resolution(dvdnav_t*
self, uint32_t* width, uint32_t* height);
642 uint8_t dvdnav_get_video_scale_permission(dvdnav_t *
self);
648 uint16_t dvdnav_audio_stream_to_lang(dvdnav_t *
self, uint8_t stream);
654 uint16_t dvdnav_audio_stream_format(dvdnav_t *
self, uint8_t stream);
660 uint16_t dvdnav_audio_stream_channels(dvdnav_t *
self, uint8_t stream);
666 uint16_t dvdnav_spu_stream_to_lang(dvdnav_t *
self, uint8_t stream);
671 int8_t dvdnav_get_audio_logical_stream(dvdnav_t *
self, uint8_t audio_num);
673 #define HAVE_GET_AUDIO_ATTR 677 dvdnav_status_t dvdnav_get_audio_attr(dvdnav_t *
self, uint8_t audio_mum, audio_attr_t *audio_attr);
682 int8_t dvdnav_get_spu_logical_stream(dvdnav_t *
self, uint8_t subp_num);
684 #define HAVE_GET_SPU_ATTR 688 dvdnav_status_t dvdnav_get_spu_attr(dvdnav_t *
self, uint8_t audio_mum, subp_attr_t *subp_attr);
693 int8_t dvdnav_get_active_audio_stream(dvdnav_t *
self);
698 int8_t dvdnav_get_active_spu_stream(dvdnav_t *
self);
705 user_ops_t dvdnav_get_restrictions(dvdnav_t *
self);
710 int8_t dvdnav_get_number_of_streams(dvdnav_t*
self, dvdnav_stream_type_t stream_type);
721 dvdnav_status_t dvdnav_toggle_spu_stream(dvdnav_t*
self, uint8_t visibility);
728 dvdnav_status_t dvdnav_set_active_stream(dvdnav_t*
self,
730 dvdnav_stream_type_t stream_type);
753 dvdnav_status_t dvdnav_angle_change(dvdnav_t *
self, int32_t angle);
758 dvdnav_status_t dvdnav_get_angle_info(dvdnav_t*
self,
759 int32_t* current_angle,
760 int32_t* number_of_angles);
769 int8_t dvdnav_is_domain_fp(dvdnav_t *
self);
774 int8_t dvdnav_is_domain_vmgm(dvdnav_t *
self);
779 int8_t dvdnav_is_domain_vtsm(dvdnav_t *
self);
784 int8_t dvdnav_is_domain_vts(dvdnav_t *
self);
Definition: dvd_types.h:69
Definition: LibInputPointer.h:13
Definition: inftrees.h:24
Definition: dvd_reader.h:81