00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #if !defined(_HDMV_VM_H_)
00021 #define _HDMV_VM_H_
00022
00023 #include <util/attributes.h>
00024
00025 #include <stdint.h>
00026
00027
00028
00029
00030
00031 typedef enum {
00032 HDMV_EVENT_NONE = 0,
00033 HDMV_EVENT_END,
00034 HDMV_EVENT_IG_END,
00035
00036 HDMV_EVENT_TITLE,
00037 HDMV_EVENT_PLAY_PL,
00038 HDMV_EVENT_PLAY_PI,
00039 HDMV_EVENT_PLAY_PM,
00040 HDMV_EVENT_PLAY_STOP,
00041
00042 HDMV_EVENT_STILL,
00043
00044 HDMV_EVENT_SET_BUTTON_PAGE,
00045 HDMV_EVENT_ENABLE_BUTTON,
00046 HDMV_EVENT_DISABLE_BUTTON,
00047 HDMV_EVENT_POPUP_OFF,
00048
00049 } hdmv_event_e;
00050
00051 typedef struct hdmv_vm_event_s {
00052 hdmv_event_e event;
00053 uint32_t param;
00054 } HDMV_EVENT;
00055
00056
00057
00058
00059
00060 struct bd_registers_s;
00061 struct indx_root_s;
00062
00063
00064
00065
00066
00067 typedef struct hdmv_vm_s HDMV_VM;
00068
00069 BD_PRIVATE HDMV_VM *hdmv_vm_init(const char *disc_root, struct bd_registers_s *regs, struct indx_root_s *indx);
00070 BD_PRIVATE void hdmv_vm_free(HDMV_VM **p);
00071
00072 BD_PRIVATE int hdmv_vm_select_object(HDMV_VM *p, int object);
00073 BD_PRIVATE int hdmv_vm_set_object(HDMV_VM *p, int num_nav_cmds, void *nav_cmds);
00074 BD_PRIVATE int hdmv_vm_run(HDMV_VM *p, HDMV_EVENT *ev);
00075 BD_PRIVATE int hdmv_vm_get_event(HDMV_VM *p, HDMV_EVENT *ev);
00076
00077 BD_PRIVATE int hdmv_vm_running(HDMV_VM *p);
00078
00079 #define HDMV_MENU_CALL_MASK 0x01
00080 #define HDMV_TITLE_SEARCH_MASK 0x02
00081 BD_PRIVATE uint32_t hdmv_vm_get_uo_mask(HDMV_VM *p);
00082
00099 BD_PRIVATE int hdmv_vm_suspend_pl(HDMV_VM *p);
00100
00112 BD_PRIVATE int hdmv_vm_resume(HDMV_VM *p);
00113
00114 #endif // _HDMV_VM_H_