hdmv_vm.c File Reference

Go to the source code of this file.

Classes

struct  NV_TIMER
struct  hdmv_vm_s

Functions

static int _is_valid_reg (uint32_t reg)
static int _store_reg (HDMV_VM *p, uint32_t reg, uint32_t val)
static uint32_t _read_reg (HDMV_VM *p, uint32_t reg)
static uint32_t _read_setstream_regs (HDMV_VM *p, uint32_t val)
static uint32_t _read_setbuttonpage_reg (HDMV_VM *p, uint32_t val)
static int _store_result (HDMV_VM *p, MOBJ_CMD *cmd, uint32_t src, uint32_t dst, uint32_t src0, uint32_t dst0)
static uint32_t _fetch_operand (HDMV_VM *p, int setstream, int setbuttonpage, int imm, uint32_t value)
static void _fetch_operands (HDMV_VM *p, MOBJ_CMD *cmd, uint32_t *dst, uint32_t *src)
static int _get_event (HDMV_VM *p, HDMV_EVENT *ev)
static int _queue_event (HDMV_VM *p, uint32_t event, uint32_t param)
HDMV_VMhdmv_vm_init (const char *disc_root, BD_REGISTERS *regs, INDX_ROOT *indx)
static void _free_ig_object (HDMV_VM *p)
void hdmv_vm_free (HDMV_VM **p)
static int _suspended_at_play_pl (HDMV_VM *p)
static int _suspend_for_play_pl (HDMV_VM *p)
static int _resume_from_play_pl (HDMV_VM *p)
static void _suspend_object (HDMV_VM *p, int psr_backup)
static int _resume_object (HDMV_VM *p, int psr_restore)
static int _is_valid_title (HDMV_VM *p, int title)
static int _jump_object (HDMV_VM *p, int object)
static int _jump_title (HDMV_VM *p, int title)
static int _call_object (HDMV_VM *p, int object)
static int _call_title (HDMV_VM *p, int title)
static int _play_at (HDMV_VM *p, int playlist, int playitem, int playmark)
static int _play_stop (HDMV_VM *p)
static void _set_stream (HDMV_VM *p, uint32_t dst, uint32_t src)
static void _set_sec_stream (HDMV_VM *p, uint32_t dst, uint32_t src)
static void _set_button_page (HDMV_VM *p, uint32_t dst, uint32_t src)
static void _enable_button (HDMV_VM *p, uint32_t dst, int enable)
static void _set_still_mode (HDMV_VM *p, int enable)
static void _popup_off (HDMV_VM *p)
static void _set_nv_timer (HDMV_VM *p, uint32_t dst, uint32_t src)
static void _hdmv_trace_cmd (int pc, MOBJ_CMD *cmd)
static void _hdmv_trace_res (uint32_t new_src, uint32_t new_dst, uint32_t orig_src, uint32_t orig_dst)
static uint32_t RAND_u32 (uint32_t range)
static uint32_t ADD_u32 (uint32_t a, uint32_t b)
static uint32_t MUL_u32 (uint32_t a, uint32_t b)
static int _hdmv_step (HDMV_VM *p)
int hdmv_vm_select_object (HDMV_VM *p, int object)
int hdmv_vm_set_object (HDMV_VM *p, int num_nav_cmds, void *nav_cmds)
int hdmv_vm_get_event (HDMV_VM *p, HDMV_EVENT *ev)
int hdmv_vm_running (HDMV_VM *p)
uint32_t hdmv_vm_get_uo_mask (HDMV_VM *p)
int hdmv_vm_resume (HDMV_VM *p)
 Resume HDMV execution.
int hdmv_vm_suspend_pl (HDMV_VM *p)
 Suspend playlist playback.
static int _vm_run (HDMV_VM *p, HDMV_EVENT *ev)
int hdmv_vm_run (HDMV_VM *p, HDMV_EVENT *ev)

Function Documentation

static int _is_valid_reg ( uint32_t  reg  )  [static]

Definition at line 77 of file hdmv_vm.c.

Referenced by _read_reg(), and _store_reg().

static int _store_reg ( HDMV_VM p,
uint32_t  reg,
uint32_t  val 
) [static]

Definition at line 91 of file hdmv_vm.c.

Referenced by _store_result().

static uint32_t _read_reg ( HDMV_VM p,
uint32_t  reg 
) [static]

Definition at line 106 of file hdmv_vm.c.

Referenced by _fetch_operand().

static uint32_t _read_setstream_regs ( HDMV_VM p,
uint32_t  val 
) [static]

Definition at line 120 of file hdmv_vm.c.

Referenced by _fetch_operand().

static uint32_t _read_setbuttonpage_reg ( HDMV_VM p,
uint32_t  val 
) [static]

Definition at line 132 of file hdmv_vm.c.

Referenced by _fetch_operand().

static int _store_result ( HDMV_VM p,
MOBJ_CMD cmd,
uint32_t  src,
uint32_t  dst,
uint32_t  src0,
uint32_t  dst0 
) [static]

Definition at line 142 of file hdmv_vm.c.

Referenced by _hdmv_step().

static uint32_t _fetch_operand ( HDMV_VM p,
int  setstream,
int  setbuttonpage,
int  imm,
uint32_t  value 
) [static]

Definition at line 166 of file hdmv_vm.c.

Referenced by _fetch_operands().

static void _fetch_operands ( HDMV_VM p,
MOBJ_CMD cmd,
uint32_t dst,
uint32_t src 
) [static]

Definition at line 183 of file hdmv_vm.c.

Referenced by _hdmv_step().

static int _get_event ( HDMV_VM p,
HDMV_EVENT ev 
) [static]

Definition at line 210 of file hdmv_vm.c.

Referenced by _vm_run(), and hdmv_vm_get_event().

static int _queue_event ( HDMV_VM p,
uint32_t  event,
uint32_t  param 
) [static]
HDMV_VM* hdmv_vm_init ( const char *  disc_root,
BD_REGISTERS regs,
INDX_ROOT indx 
)

Definition at line 242 of file hdmv_vm.c.

Referenced by _play_hdmv().

static void _free_ig_object ( HDMV_VM p  )  [static]
void hdmv_vm_free ( HDMV_VM **  p  ) 

Definition at line 272 of file hdmv_vm.c.

Referenced by bd_close(), and bd_play().

static int _suspended_at_play_pl ( HDMV_VM p  )  [static]

Definition at line 290 of file hdmv_vm.c.

Referenced by _resume_object().

static int _suspend_for_play_pl ( HDMV_VM p  )  [static]

Definition at line 306 of file hdmv_vm.c.

Referenced by _play_at().

static int _resume_from_play_pl ( HDMV_VM p  )  [static]

Definition at line 321 of file hdmv_vm.c.

Referenced by hdmv_vm_resume().

static void _suspend_object ( HDMV_VM p,
int  psr_backup 
) [static]

Definition at line 338 of file hdmv_vm.c.

Referenced by _call_object(), and _call_title().

static int _resume_object ( HDMV_VM p,
int  psr_restore 
) [static]

Definition at line 378 of file hdmv_vm.c.

Referenced by _hdmv_step().

static int _is_valid_title ( HDMV_VM p,
int  title 
) [static]

Definition at line 420 of file hdmv_vm.c.

Referenced by _call_title(), and _jump_title().

static int _jump_object ( HDMV_VM p,
int  object 
) [static]

Definition at line 435 of file hdmv_vm.c.

Referenced by _call_object(), _hdmv_step(), and hdmv_vm_select_object().

static int _jump_title ( HDMV_VM p,
int  title 
) [static]

Definition at line 458 of file hdmv_vm.c.

Referenced by _hdmv_step().

static int _call_object ( HDMV_VM p,
int  object 
) [static]

Definition at line 477 of file hdmv_vm.c.

Referenced by _hdmv_step().

static int _call_title ( HDMV_VM p,
int  title 
) [static]

Definition at line 487 of file hdmv_vm.c.

Referenced by _hdmv_step().

static int _play_at ( HDMV_VM p,
int  playlist,
int  playitem,
int  playmark 
) [static]

Definition at line 508 of file hdmv_vm.c.

Referenced by _hdmv_step().

static int _play_stop ( HDMV_VM p  )  [static]

Definition at line 543 of file hdmv_vm.c.

Referenced by _hdmv_step().

static void _set_stream ( HDMV_VM p,
uint32_t  dst,
uint32_t  src 
) [static]

Definition at line 560 of file hdmv_vm.c.

Referenced by _hdmv_step().

static void _set_sec_stream ( HDMV_VM p,
uint32_t  dst,
uint32_t  src 
) [static]

Definition at line 600 of file hdmv_vm.c.

Referenced by _hdmv_step().

static void _set_button_page ( HDMV_VM p,
uint32_t  dst,
uint32_t  src 
) [static]

Definition at line 658 of file hdmv_vm.c.

Referenced by _hdmv_step().

static void _enable_button ( HDMV_VM p,
uint32_t  dst,
int  enable 
) [static]

Definition at line 686 of file hdmv_vm.c.

Referenced by _hdmv_step().

static void _set_still_mode ( HDMV_VM p,
int  enable 
) [static]

Definition at line 698 of file hdmv_vm.c.

Referenced by _hdmv_step().

static void _popup_off ( HDMV_VM p  )  [static]

Definition at line 706 of file hdmv_vm.c.

Referenced by _hdmv_step().

static void _set_nv_timer ( HDMV_VM p,
uint32_t  dst,
uint32_t  src 
) [static]

Definition at line 718 of file hdmv_vm.c.

Referenced by _hdmv_step().

static void _hdmv_trace_cmd ( int  pc,
MOBJ_CMD cmd 
) [static]

Definition at line 780 of file hdmv_vm.c.

Referenced by _hdmv_step().

static void _hdmv_trace_res ( uint32_t  new_src,
uint32_t  new_dst,
uint32_t  orig_src,
uint32_t  orig_dst 
) [static]

Definition at line 793 of file hdmv_vm.c.

Referenced by _hdmv_step().

static uint32_t RAND_u32 ( uint32_t  range  )  [inline, static]

Definition at line 824 of file hdmv_vm.c.

Referenced by _hdmv_step().

static uint32_t ADD_u32 ( uint32_t  a,
uint32_t  b 
) [inline, static]

Definition at line 829 of file hdmv_vm.c.

Referenced by _hdmv_step().

static uint32_t MUL_u32 ( uint32_t  a,
uint32_t  b 
) [inline, static]

Definition at line 836 of file hdmv_vm.c.

Referenced by _hdmv_step().

static int _hdmv_step ( HDMV_VM p  )  [static]

Definition at line 847 of file hdmv_vm.c.

Referenced by _vm_run().

int hdmv_vm_select_object ( HDMV_VM p,
int  object 
)

Definition at line 1007 of file hdmv_vm.c.

Referenced by _play_hdmv().

int hdmv_vm_set_object ( HDMV_VM p,
int  num_nav_cmds,
void *  nav_cmds 
)

Definition at line 1018 of file hdmv_vm.c.

Referenced by _run_gc().

int hdmv_vm_get_event ( HDMV_VM p,
HDMV_EVENT ev 
)

Definition at line 1045 of file hdmv_vm.c.

Referenced by _run_hdmv().

int hdmv_vm_running ( HDMV_VM p  ) 

Definition at line 1056 of file hdmv_vm.c.

Referenced by _play_hdmv(), _run_gc(), _run_hdmv(), and bd_read_ext().

uint32_t hdmv_vm_get_uo_mask ( HDMV_VM p  ) 

Definition at line 1067 of file hdmv_vm.c.

Referenced by bd_menu_call(), and bd_play_title().

int hdmv_vm_resume ( HDMV_VM p  ) 

Resume HDMV execution.

Continue execution of movie object after playlist playback. Do not restore backup PSRs. This function is called when playlist playback ends.

Parameters:
p HDMV_VM object
Returns:
0 on success, -1 if error

Definition at line 1083 of file hdmv_vm.c.

Referenced by bd_read_ext().

int hdmv_vm_suspend_pl ( HDMV_VM p  ) 

Suspend playlist playback.

This function assumes playlist is currently playing and movie object execution is suspended at PLAY_PL instruction.

If resume_intention_flag of current movie object is 1: Copy playback position PSRs to backup registers (suspend playlist playback at current position) If resume_intention_flag of current movie object is 0: Discard current movie object

Parameters:
p HDMV_VM object
Returns:
0 on success, -1 if error

Definition at line 1094 of file hdmv_vm.c.

Referenced by bd_menu_call().

static int _vm_run ( HDMV_VM p,
HDMV_EVENT ev 
) [static]

Definition at line 1128 of file hdmv_vm.c.

Referenced by hdmv_vm_run().

int hdmv_vm_run ( HDMV_VM p,
HDMV_EVENT ev 
)

Definition at line 1183 of file hdmv_vm.c.

Referenced by _run_hdmv().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends
Generated on Mon May 28 06:41:48 2012 for MythTV by  doxygen 1.6.3