⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nvgadefs.h

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 H
📖 第 1 页 / 共 3 页
字号:
#endif

	BYTE* power_on_atrt_data_sc_handle;
	BYTE* menu_atrt_data_sc_handle;

	VOLUME_ID	vol_id;
	BYTE		vol_cat;
	BYTE		vts_count;
	BOOL		initialized;
} S_VMG;

/********** C_VTS class translation -data **************/
typedef struct{
	S_DOM  menu;
	S_DOM title;

	S_FPOS  part_table;

	S_SC_STORAGE part_data_sc_st;

	S_FPOS time_table;

#ifdef NO_VTS_DATA_REDUCTION
	S_STORAGE st;
	BYTE data[ VTSI_MAT_SIZE ];
#endif

	BYTE*	title_atrt_data_sc_handle;	
	BYTE*	menu_atrt_data_sc_handle;

	BOOL initialized;

#ifdef LANGUAGE_LEARNING_SUPPORT
	BYTE LanguageLearning_SubStreamID;//0xFF = no data
#endif
}S_VTS;


#define   AOTT_AOB_ATR_SIZE   128
#define   ATS_DM_COEFT_SIZE   288

/********** ATS data **************/
typedef struct{
	S_DOM title;

	S_SC_STORAGE 	aott_aobs_atr_sc_st;
	S_SC_STORAGE 	ats_dm_coeft_sc_st;

	BOOL initialized;
}S_ATS;

/********** CRealTimePlayback class translation - data ********/
typedef struct{
	long  stopPersistence;   // Embedded - suspicius - long is better
	int   cell;
	S_C_PBI   c_pbi;
	S_C_POSIT c_posit;
	S_ATS_C_PBI  ats_c_pbi;
	// cell piece address
	S_CP      cp;

	S_CP vobu; // last played VOBU
	// scheduled operations buffer
	 S_ScheduledOp opBuffer[ MAX_SCHEDULED_OPS ];
	WORD available_angles;
	// actual VTSN
	WORD actualVTSN;
	BOOL stopped;
	BOOL pumpSought;
	// handle EOD
	BOOL EODStatus;
	BOOL starvation;
	BOOL Wait4ASV;
}S_RTPBINFO;
/**************** C_Acton translation - data and defs *********/
typedef DWORD CmdID;   // mainly for the embedded port

enum {
  // Table 4.6.3.2-1. valid in both CNavigationCommand and CAction
  GoToCmd = 0,

  // Table 4.6.3.2-1, but valid only in CNavigationCommand
  Link_Jump = 1, SetSystem = 2, Set = 3, Set_Compare_LinkSIns = 4,
  Compare_and_Set_LinkSIns = 5, Compare_Set_and_LinkSIns = 6, Reserved = 7,

  // Valid only in CAction
  Link = 64, Jump, InitialAccess, PartPlay, TimePlay, 
  CellPlay, BookmarkPlay, NonSeamlessCellPlay,
  Still, 
  Resume, ReportError, Navigation, Breakpoint, Nothing
};

typedef DWORD CmdOpt;   // mainly for the embedded port
enum {
  // although is not always legal
  Nop = 0,

  // Table 4.6.3.2-2 Compare
  BC = 1, EQ = 2, NE = 3, GE = 4, GT = 5, LE = 6, LT = 7,

  // Table 4.6.3.2-3 GoTo
  GoTo = 1, Break = 2, SetTmpPML = 3,

  // Table 4.6.3.2-4 Link
  LinkSIns = 1, LinkTKN = 2, LinkDLISTN = 3, LinkPGCN = 4, LinkPTTN = 5, LinkPGN = 6, LinkCN = 7,
  LinkTKNGP = 10, LinkDLISTNGP = 11, LinkPGCNGP = 12, LinkPGNGP = 14, LinkCNGP = 15,

  // LinkSIns -- see 4.6.4.2
  LinkNoLink  = 0x00, LinkTopC    = 0x01, LinkNextC   = 0x02, LinkPrevC   = 0x03, 
  LinkTopPG   = 0x05, LinkNextPG  = 0x06, LinkPrevPG  = 0x07, LinkTopPGC  = 0x09, 
  LinkNextPGC = 0x0A, LinkPrevPGC = 0x0B, LinkGoUpPGC = 0x0C, LinkTailPGC = 0x0D, RSM = 0x10,
  LinkNextDLIST = 0x12, LinkPrevDLIST = 0x13,

  // Table 4.6.3.2-5 Jump
  Exit = 1, JumpTT = 2, JumpVTS_TT = 3, JumpVTS_PTT = 5, JumpSS = 6, CallSS = 8,
  JumpTT_GR = 9, JumpTK = 10, AMGM_RSM = 11,

  // Table 4.6.3.2-6 SetSystem
  SetSTN = 1, SetNVTMR = 2, SetGPRMMD = 3, SetAMXMD = 4, SetHL_BTTN = 6, 
  PlayerReserved = 7, SPRM0Reserved = 8,

  // Table 4.6.3.2-7 Set
  Mov = 1, Swp = 2, Add = 3, Sub = 4, Mul = 5, Div = 6, 
  Mod = 7, Rnd = 8, And = 9, Or = 10, Xor = 11,

  // BookmarkPlay options
  BmkPlay = 0, BmkRepeat, BmkResume, BmkScan,
  
  // ReportError codes
  NoError = 0, InvalidRegion,
  BadOperand, InvalidOpCode, DivideByZero, WrongContext, 
  MenuDomainIgnored, FirstPlayIgnored, InconsistentData, 
  RestrictedAccess, ProhibitedUOP, PendingUOP, StopState,WrongParentLevel
// <<< ZKR GL082103 : Added "InvalidTVSystem" error report.
#if defined(D_PROHIBIT_PAL_TO_NTSC)
  , InvalidTVSystem
#endif
// ZKR GL082103 >>>
};


#define COMMAND_LENGTH  8

typedef struct{
  DWORD cod;
  DWORD opt;
  DWORD arg;
  BYTE  raw[ COMMAND_LENGTH ]; 
  CmdOpt last_error;
}S_Action;

typedef struct{
  CmdOpt error_code;
  S_Action *dvd_act;
}S_EmitAction;

typedef struct{
  S_STORAGE st;
  S_EmitAction ea;
}S_NavigationCommand;

/**************** C_PGC class translation - data **************/
enum{ 
    start=0, 
    init_pre_command, pre_command,
    init_presentation,
    program_presentation,
    cell_presentation, cell_still, 
    cell_command, cell_command_acp,
    loop_count, loop_count_acp,
    pgc_still, 
    init_post_command, init_post_command_acp,
    post_command, 
#ifdef LANGUAGE_LEARNING_SUPPORT
	grammer_command,
#endif	
    link, 
    stop
};

typedef  BYTE PGC_STATE;

#define MAX_REPEAT                    100

enum { 
  NO_PRECOMMAND    = 0x01,
  TIME_PLAY_SEARCH = 0x02
}; 

typedef enum  { VIDEO_PGC = 0, AUDIO_PGC , AMGM_PGC }  PgcTypes;
typedef struct{
	DWORD cur_pg_pbtime;	/* ZORAN TC0327 : Current program total playback time */
	DWORD e_pg_time;		/* ZORAN TC0327 : Current program elapsed time of previous cells composing the cell */
    DWORD e_cell_time;
    DWORD e_time;
    DWORD entryVOBU;
	S_EmitAction ea;
    // PGC content and navigation
    S_PGC_CNT    pgc_cnt;
    S_PGC_NV_CTL pgc_nv_ctl;
    

	short requested_program_index; /* -1 means no user search requested , in case of PTT play, we must make sure that we play the requested program even if pre_commands wants to link to another CN */
    WORD   e_program_index;
    /* int repeat_value; */
    WORD PGCN;
    // actual program (index in playback_order, 0, ..., repeat - 1)
    WORD program_index; /* start from 1 in VP2K */
    // next cell
    WORD     next_c_n;
    // previous, entry cell, and first non-cell
    WORD     prev_c_n;
    WORD     entry_c_n;
    WORD     fnon_c_n;
    // the cell number used in CellPlay
    WORD     lplay_c_n;
    // first cell in the angle block
    WORD     fagl_c_n;
    // actual cell number and PBI
    WORD       actual_c_n;

    S_C_PBI   actual_c_pbi;
    
    // entry VOBU for Time_Play / Time_Search (valid when != 0x3FFFFFFF)

    S_SC_STORAGE   info_sc_st;  // Contains also the first 6 bytes of the CMDT
    S_SC_STORAGE   cell_position_sc_st;
    S_SC_STORAGE   playback_info_sc_st;
    S_SC_STORAGE  command_table_sc_st;
    S_SC_STORAGE program_map_sc_st;
	S_C_PBI   decoded_c_pbi;


    // PGC_GI -- has 6 more bytes for the size of CMDT


    // Actual data buffer for PGC_GI and PGCI (doesn't contain PGC_GI)


    // actual command
    BYTE     command;
    // actual angle
    BYTE actual_angle;    
    // Any aditional play conditions?
    // PGC state
    PGC_STATE state;
	PGC_STATE next_state;
    BYTE play_mode;
	BOOL initialized;
//  -----  the following extensions are for DVD_AUDIO
	BYTE PgcType;
	WORD ATS_PGIT_SA;
	WORD ATS_C_PBIT_SA;
	WORD ATS_ASV_PBIT_SA;
	DWORD  ATS_PG_CNT;

    S_SC_STORAGE asv_pbit_sc_st;

    DWORD entryTime;
	DWORD curr_fac_s_ptm;
    DWORD aob_cell_time;
}S_PGC;


#define BMARK_RESUME	0
#define BMARK_A			0
#define BMARK_B			1
#define BMARK_1			2
#define BMARK_2			3
#define BMARK_3			4
#define BMARK_MAX		5
#ifdef SUPPORT_FIVE_DVD_BOOKMARKS
#define BMARK_4			5
#define BMARK_5			6
#define BMARK_MAX		7
#endif // SUPPORT_FIVE_DVD_BOOKMARKS

#define BMARK_NUM(n)	(n-1+BMARK_1)

/********** S_DVD_NAVIGATION data structure **********/

#define VTSN_NOT_INITIALIZED 0xFF

#define ANGLE_OFFSET_COUNT		10
#define ANGLE_OFFSET_SIZE		(ANGLE_OFFSET_COUNT*sizeof(DWORD))

typedef struct
{
  DWORD PGC_UOP_CTL;
  DWORD VOBUEndPTM;
  INT8 ScanSpeed;
  INT8 SlowSpeed;
  int UserRepeat;    
  S_DOM              *domain;
  DOMAIN_ID           domainID;
  WORD VideoAttribute;
  WORD prev_VideoAttribute;
  WORD CurrentP_CFGVideo;
  WORD UserP_CFGVideo;
  WORD special_requirements;
  // bookmark data
  DVD_BOOKMARK Bookmark; 


  DVD_BOOKMARK PlayBookmark; /* needed when STOP occurs when bookmark play is requested */

  BYTE EventNumber;
  BYTE  crt_VTSN; /* originally a CSpace private member */
  BYTE SystemASTN;
  BYTE SystemSPSTN;
  BYTE Title_Playback;
  BYTE StillType;
  BOOL  DSIAngleOffset;
  BOOL BreakpointMode;
  BOOL Pause;
  BOOL UseNavigationTimer;
  BOOL Validated;
  BOOL PlayingATS;  // True if playing from ATS , false if playing from VTS
  BYTE CopyBit;
  BYTE CategoryCode;
// <<< ZKR GL082103 : Added TV system validation.
#if defined(D_PROHIBIT_PAL_TO_NTSC)
  BOOL TVSystemValidated;	  
#endif
// ZKR GL082103 >>>

} S_DVD_NAVIGATION_C;

/************ Navigation Manager class translation -data *********/

typedef struct{
	DWORD actualUOP_CTL;
	/* Auto Notification parameter (formerly VOID-Thread switch event ) */
	S_ScheduledOp *auto_notification_schop;
	S_EmitAction ea;
	S_Action action;
	S_Action pending_action;
	// resume data
	DVD_BOOKMARK resume_bookmark;


	// stop waiting flag
	BOOL WaitingForStop;

	// Play mode
	BOOL PlayStatus;

	BOOL    pending;
	BOOL    pending_argument;

} S_NavigationManager;


typedef struct{
	DWORD			npi_stc_offset[MAX_NP_INFO];
//	BYTE			npi_flags[MAX_NP_INFO];
	DWORD			npi_resume_lbn[MAX_NP_INFO];//LX042602
	BYTE			wr_cnt;
	BYTE			rd_cnt;
	BYTE			level;
} S_NAV_PK_INFO_FIFO;

#define PLAY_MODE_NORMAL   0
#define PLAY_MODE_CONTINUE 1
#define PLAY_MODE_FAST     2
#define PLAY_MODE_SLOWR	   3

typedef enum{
	PASSWORD_IN_PROGRESS,
	PASSWORD_FAILED,
	PASSWORD_OK
}PASSWORD_STATUS;

#endif /* __NVGATI_C_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -