📄 navigate.h
字号:
#define STATE_RESERVED 0 // Central control will by pass this state#define STATE_INITIAL 1 // Initialized#define STATE_STOP 2 // Stop#define STATE_PRECMD 3 //#define STATE_POSTCMD 4 //#define STATE_MARK_CMD STATE_POSTCMD#define STATE_PG 5 //#define STATE_STILL 6 //#define STATE_CELL 7 //#define STATE_NEXTLINK 8 //#define STATE_NEXTPG_NONV 9 // ** TCH2.37; It's for NEXTPG// State status defineition :#define STATUS_UNDEF 0#define STATUS_READY 1 // Wait to execute#define STATUS_DONE 2 // Already be executed and ended#define STATUS_RUNNING 3 // within execute#define STATUS_SUSPEND 4 // Suspended; after this mode will transfer to STATUS_WAITING#define STATUS_WAITING 5 // Wainging some trigger signal#define STATUS_REDO 6 // re-do the state back from some sleep mode#define STATUS_NVCMD 7 // Doing NVCMD Now ( STATE_CELL only )#define STATUS_NVCMD_EXECUTE 8 // Execute NVCMD Now (<ex> Jump/ Link issue )#define STATUS_ERROR 20 // Error occurred#define STATUS_SAVE 30 // SAVE status#define STATUS_RESTORE 31 // Restore status#define STATUS_DISCARD 32 // Discard some items#define STATUS_EXIST_RSM 33 // Exist RSM////////////////////////////////////////////////////////// _PGC_BitsDiscontinue definition#define DISCONTINUE_AV 0#define DISCONTINUE_AV_CDROM 1 // ** TCH1.03; ?? Remove it later#define DISCONTINUE_AV_ONLY 5 // ** TCH1.61a; #define DISCONTINUE_AUDIO_SP 10//////////////////////////////////////////////////////////////// dvd.cpp [OS issue]#include "nvcmd.h"////////////////////////////////////////////////////////////////////// DVD part// DVD Information Part// Navigator PartBYTE NV_TitlePlay ( BYTE bTitle, WORD wPTT );BYTE NV_TimePlay ( BYTE bTitle, DWORD dwTime ); // ** TCH0.36;BYTE NV_TitleTimePlay ( WORD wTime ); // ** TCH1.23; Add it for TimePlay within one Title.BYTE NV_MenuCall ( BYTE bTypeMenu );BYTE NV_Action ( BYTE bAction, WORD wParam );BYTE NV_Setting ( BYTE bSetItem, BYTE bParam ); // ** TCH0.371;BYTE NV_QueryUOP ( DWORD dwUOP ); // ** TCH0.37;BYTE NV_RSMControl ( BYTE bStatus );void NV_Trigger (void); // ** TCH1.72q; void NV_UpdateVersion(void); //Aron1.02-909, Update NV module versionvoid NV_SetErrorConParm(BYTE bMaxLoadVTSFailCnt, DWORD dwServoReadyTimeOut); //Aron2.31-909R, add to init error concealment mechanism parmater//////////////////////////////////////////////////////// PGC Part [PGC] ModuleBYTE PGC_Playback ( BYTE bPGN, BYTE bOperation );BYTE PGC_Trigger (void); // ** TCH1.72q; //////////////////////////////////////////////////////// State Controlvoid SMAN_GetStateInfo ( void );void SMAN_SaveStateInfo ( void );BYTE SMAN_GetState ( void );BYTE SMAN_GetStatus ( void );BYTE SMAN_PushStateInfo ( BYTE bState, BYTE bStatus );BYTE SMAN_ChangeStatus ( BYTE bStatus );/////////////////////////////////////////// Protected function// Navigator UsageBOOL _NV_Convert_TTCC2PGC ( BYTE bDirection ); // ** TCH0.31;BOOL _NV_Convert_STN2STNO ( BYTE bSetItem, BYTE bDirection ); // ** TCH0.451;BOOL _NV_BuildPGCInfor ( void );BOOL _NV_SetAudioParameters ( DWORD dwAudio, BYTE bParam ); // ** TCH0.371;BYTE _NV_SearchLanguage ( BYTE bSetItem ); // ** TCH0.38;BYTE _NV_ExecuteHighLight (void); // ** TCH0.362;BYTE _NV_CheckNVCMD (void); // ** TCH0.29;BYTE _NV_ExecuteNVCMD (void); // ** TCH0.31;BYTE _NV_LinearNextPrev ( BYTE bNext ); // ** TCH0.31;BYTE _NV_ProcessPTL_MA (void); // ** TCH0.431;DWORD _NV_GetUOP ( BYTE bMenuType ); // ** TCH0.47;// Micky0.66-909, add a parameter for PGNBYTE _NV_LinkPGCN_PG ( BYTE bDomain, BYTE bPGN ); // ** TCH1.61-1; BYTE _NV_CheckSP_ForcedlyDisplay (void); // ** TCH1.61-1; #ifdef SIMP_DVDBYTE _NV_SIMPTrigger (void); // ** TCH0.361; SIMP_DVD only#endif // SIMP_DVD#ifdef NO_PGCBYTE _NV_NOPGCTrigger (void); // ** TCH0.361; NO_PGC onlyBYTE _NV_GetCELLRange (void); // ** TCH0.361; NO_PGC only#endif // NO_PGC/////////// PGC relative APIsBYTE _PGC_ProcessCell (void); // ** TCH0.31;BYTE _PGC_WaitCELLStatus ( BYTE bCELLStatus ); // ** TCH0.39;BYTE _PGC_UpdateCELLInformation (void); // ** TCH1.60a-2; BYTE _PGC_BuildPGInfor ( BYTE bPGN );BYTE _PGC_IsAcceptCellTime ( BYTE bCEN );BYTE _PGC_LookAngleCEN ( BYTE bCEN ); // ** TCH1.60a-1; BYTE _PGC_SkipAngleBlock ( BYTE bModeCmd ); // ** TCH1.60a-1; BYTE _PGC_ChooseOneAvaiablePG ( BYTE bPGN ); // ** TCH0.41;BYTE _PGC_ProcessCMDT ( BYTE bTypeCMDT, BYTE bIdx ); // ** TCH1.03;void _PGC_BitsDiscontinue ( BYTE bMode ); // ** TCH1.03;void _PGC_Force2PlayMode ( BYTE bCheckType ); //TCH1.60// Micky1.23 support resume info from EEPROM#define USE_NEW_RESUME_INFOtypedef struct NV_tagRSMInfo{BYTE __bRSM_Title; // SPRM[4]WORD __wRSM_Chapter; // SPRM[7]WORD __wRSM_PGCN; // SPRM[6]WORD __wRSM_SPRM5;BYTE __bRSMValid ;BYTE __bRSM_CEN ;BYTE __bRSM_byTime ; // TRUE mean RSM by Time, else RSM by VOBUSABYTE __bRSM_PGN ; // ** TCH1.03;BYTE __bRSM_VTSN ;BYTE __bRSM_Domain ; // ** TCH1.03;DWORD __dwRSM_NV_PCK ;WORD __wRSM_Time ; // unit: secondBYTE __bPTL; // Parental Level.BYTE __bStillRSM; //Aron2.38, still resuming flag//Ming0.80, add __attribute__((packed)) for NV_RSMINFO to reduce the size.// Becuase Resume info. would be saved to EEPROM.} PACK_FORMAT NV_RSMINFO, * PNV_RSMINFO;extern NV_RSMINFO NV_Resume[2];// Ming0.80, support multi-disc resume.// Must check PTL level in RESUME process.#define RESUME_MARK_SIZE 4#define RESUME_ID_ENTRY_SIZE 4#define RESUME_INFO_ENTRY_SIZE (sizeof(NV_RSMINFO))// LLY1.00, resume data = resume ID + resume information#define RESUME_DATA_ENTRY_SIZE (RESUME_ID_ENTRY_SIZE+RESUME_INFO_ENTRY_SIZE)#if (RESUME_DISC_NUM > 15)#error "RESUME_DISC_NUM cannot exceed 15!"#endif#if (RESUME_ID_ENTRY_SIZE != 4)#error "RESUME_ID_ENTRY_SIZE must be euqal to 4!"#endif// LLY2.05, define a struct for other title resume information// Notice: the size must be same as NV_RSMINFO (20 bytes)typedef struct tagGNL_RSMINFO{ // For all non-DVD title DWORD dwRSMTime; // Keep resume time // For CDROM/ DVDROM title WORD wRSMDir; // Keep resume directory WORD wRSMItem; // Keep resume item // For CDROM/ DVDROM audio only file DWORD dwRSMFrameCnt; // Keep resume frame count DWORD dwReserved[2]; // Reserved space } GNL_RSMINFO, *PGNL_RSMINFO;// LLY2.05, define a union for DVD and general title resume informationtypedef union tagRSMINFO_UNION{ NV_RSMINFO NV_Resume; GNL_RSMINFO GNL_Resume;}RSMINFO_UNION, *PRSMINFO_UNION;typedef struct _Multi_Resume_Entry{ BYTE bRU_MType; BYTE bDiscUID[3];// LLY2.05, using resume info union to split DVD and other title// NV_RSMINFO NV_Resume; RSMINFO_UNION RSM_Info;} Multi_Resume_Entry, *PMulti_Resume_Entry;typedef struct _Multi_Resume_Info{ BYTE bRSM_Mark[RESUME_MARK_SIZE]; Multi_Resume_Entry Resume[RESUME_DISC_NUM];} Multi_Resume_Info, *PMulti_Resume_Info;//Aron1.05-909, Record user SPST & AST settingtypedef struct NV_tagUserSetting{BYTE __bUS_Vaild;BYTE __bUS_TTNO;BYTE __bUS_ASTNO;BYTE __bUS_SPSTNO;WORD __wUS_SRPM2;// Need to keep other setting else!?} PACK_FORMAT NV_USERSETTING, * PNV_USERSETTING;extern NV_USERSETTING NV_Usersetting;//Aron2.31-909R, add for error concealment mechanism parmater//#define USER_KEY_ABORT (__bISRKey == KEY_TITLE ||__bISRKey == KEY_MENU||__bISRKey == KEY_PREV||__bISRKey == KEY_NEXT||__bISRKey == KEY_PBC||__bISRKey == KEY_DIGEST||__bISRKey == KEY_OPEN_CLOSE||__bISRKey == KEY_POWER)#define MAXLOADVTSFAILTCNT 25#define SERVOREADYTIMEOUT COUNT_5_SECtypedef struct NV_tagErrorConParm{BYTE __bMaxLoadVTSFailCnt;BYTE __bLoadVTSFailCnt;DWORD __dwServoReadyTimeOut;} NV_ERRORCONPARM, *PNV_ERRORCONPARM;extern NV_ERRORCONPARM NV_Errorconparm;#ifdef __cplusplus }#endif#endif // __NAVIGATE_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -