📄 nvgadefs.h
字号:
#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 + -