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

📄 uopmap.h

📁 是MTK公司新出来的DVD方案
💻 H
📖 第 1 页 / 共 2 页
字号:
// *********************************************************************
// FILE SYSTEM MENU.
// *********************************************************************
void vFsMenuInit(BOOL fgInit) large;
BOOL fgFsMenuState(void) large;
void vFsMenuExit(void);
#ifndef PLAYER_FLMENU
  void vFsMenuRecoverMenus(void);
#endif
//BOOL fgFsMenuIsMenuOn(void);
//BOOL fgFsMenuIsBusy(void);
//BOOL fgFsMenuIsDecoding(void);

#ifdef PLAYER_FLMENU
void vFlHandleUopRet(BYTE bUopId, BYTE bUopRet) large;
#else
void vFsMenuHandleUopRet(BYTE bUopId, BYTE bUopRet) large;
#endif

// *********************************************************************
// Select State Machine
// *********************************************************************
#ifdef PLAYER_PROGRAM
void vSelectInit(BYTE fgInit) large;
BOOL fgSelectState(void) large;
#endif

// *********************************************************************
// Search State Machine
// *********************************************************************
#define SEARCH_NONE                   0
#define SEARCH_DVD_TIME               1 /* for title time search in TT/TIME */
#define SEARCH_DVD_TIME_CH            2 /* for chapter time search in CH/TIME */
#define SEARCH_VCD_TIME_DISC          3
#define SEARCH_VCD_TIME_TRACK         4
#define SEARCH_VCD_TRACK              5
#define SEARCH_DVD_PTT                6 /* for chapter search in TT/CH */
#define SEARCH_DVD_CH                 7 /* for chapter search in CH/TIME */
#define SEARCH_DVD_TIME_CH_WAIT       8 /* for chapter search wait complete */
#define SEARCH_DVD_TIME_CH_CHANGE     9 /* for chapter search change to CH time search */
#define SEARCH_DVD_PTT_TTL           10 /* for title search in TT/CH */
#define SEARCH_DVD_TIME_TTL          11 /* for title search in TT/TIME */
#define SEARCH_DVD_TIME_WAIT         12 /* for title search wiat complete */
#define SEARCH_DVD_PTT_WAIT          13 /* for title search wiat complete */
#define SEARCH_DVD_TIME_CHANGE       14 /* for title search change to TT time search */
#define SEARCH_DVD_PTT_CHANGE        15 /* for title search change to PTT search */
#define SEARCH_ISO_TIME              16
#define SEARCH_ISO_FILE              17

EXTERN xdata struct
{
  BYTE bType;
}
_rSearchStateCtx;

// *********************************************************************
// General Number Input State Machine
// *********************************************************************
WORD wWRDToBCD(WORD wVal) large;
void vNumInInitState(BYTE bType, BYTE bCnt) large;
BOOL fgNumInState(void) large;

#define NUM_IN_NONE       0
#define NUM_IN_TYPE_1     1
#define NUM_IN_TYPE_2     2
#define NUM_IN_TYPE_3     3
#define NUM_IN_TYPE_4     4
#define NUM_IN_VCD_TIME   5
#define NUM_IN_DVD_TIME   6
#define NUM_IN_SEQ_WAIT   7
#define NUM_IN_SEQ_LIMIT  8

typedef struct {
  /* BYTE 1 */
  BYTE bInputType:4;
  BYTE bInputState:4;
  /* BYTE 2 */
  BYTE bTotalDigNum:3;
  BYTE bDigNum:3;
  BYTE fgComplete:1;
  BYTE fgCancel:1;
} strucNumState;

EXTERN xdata struct
{
  BYTE bDig[6];
  BYTE wNum;
  strucNumState rState;
}
_rNumInStateCtx;

// *********************************************************************
// OSD Display Update Routines
// *********************************************************************
void vSmUpdate(BYTE *pbInfo) large;
void vPlayerKeyProc(void) large;
void vShowInitState(BYTE bInitState) large;

EXTERN xdata struct
{
  /* BYTE 0 */
  BYTE fgUopUpdate:1;
  BYTE fgSetupShow:1;
  BYTE fgTimeShow:1;
  BYTE bTimeType:3;
  BYTE fgRemainMsgShow:1;
  BYTE fgPlayInfoShow:1;
 /* BYTE 1 */
  BYTE bPlayInfoType:3;
  BYTE bPlayType:4;
  BYTE fgPlayShow:1;
  /* BYTE 2 */
  BYTE fgRepeatShow:1;
  BYTE fgABShow:1;
  BYTE fgUsrCtrlShow:1;
  BYTE fgZoomShow:1;
  BYTE fgAngleShow:1;
  BYTE fgTimePos:1;
  BYTE fgAudioStatusRecall:1;
  BYTE bAudioStatus:1;
  /* BYTE 3 */
#ifdef EN_DISC_ID_CHK
  BYTE bDiscInitFlag:7;
  BYTE bDiscIDFound:1;
#endif
  /* BYTE 4 */
  BYTE fgZoomBrShow:1;
  BYTE fgGotoShow:1;
  BYTE bGotoTimeType:2;
  BYTE fgVRemoteShow:1;
  BYTE fgLastMemWrBack:1;
  BYTE Reserve:2;

  /* BYTE 5/6 */
  BYTE bUopRetId;
  BYTE bUopRetVal;
}
_rOsdStateCtx;

#define fgIsInSetupMenu()       (_rOsdStateCtx.fgSetupShow == TRUE)

#ifdef PLAYER_GOTO
  #define fgIsInGoto()            (_rOsdStateCtx.fgGotoShow == TRUE)  //megaa Goto
#else
  #define fgIsInGoto()            FALSE
#endif

#define fgIsUopUpdate()         (_rOsdStateCtx.fgUopUpdate == TRUE)

#define bCurrRemainType()       (_rOsdStateCtx.bTimeType)

#define vSetAngleShow(fgOnOff)  (_rOsdStateCtx.fgAngleShow = fgOnOff)
#define fgIsAngleShow()         (_rOsdStateCtx.fgAngleShow == TRUE)

#define fgIsUopRetOK(bUop)      (fgIsUopUpdate() && (bUop == _rOsdStateCtx.bUopRetId) && \
                                 (_rOsdStateCtx.bUopRetVal == SV_NO_ERROR))

// *********************************************************************
// For disc identification
// *********************************************************************
#define DISC_INIT_DISC_TYPE           0x01
#define DISC_INIT_DISC_ID             0x02
#define DISC_INIT_LOCK_CHK            0x04
#define DISC_INIT_WAIT_PWD_IN         0x08
#define DISC_INIT_PWD_OK              0x10
#define DISC_INIT_LASTMEM             0x20

#define DISC_INIT_FINISHED            (DISC_INIT_DISC_TYPE | DISC_INIT_DISC_ID)

#define DISC_INIT_NEED_PWD            (DISC_INIT_DISC_TYPE | DISC_INIT_DISC_ID \
                                       | DISC_INIT_LOCK_CHK)

#define DISC_INIT_WAIT_PWD            (DISC_INIT_DISC_TYPE | DISC_INIT_DISC_ID \
                                       | DISC_INIT_LOCK_CHK | DISC_INIT_WAIT_PWD_IN)

#define DISC_INIT_CHECKED             (DISC_INIT_DISC_TYPE | DISC_INIT_DISC_ID \
                                       | DISC_INIT_LOCK_CHK | DISC_INIT_WAIT_PWD_IN \
                                       | DISC_INIT_PWD_OK)

#ifdef EN_DISC_ID_CHK
  #define vResetDiscInitFlag()          \
  {                                     \
    _rOsdStateCtx.bDiscIDFound = 0;     \
    _rOsdStateCtx.bDiscInitFlag = 0;    \
  }

  #define vSetDiscInitFlag(bFlag)     (_rOsdStateCtx.bDiscInitFlag |= bFlag)
  #define fgIsDiscInitFlagSet(bFlag)  ((_rOsdStateCtx.bDiscInitFlag & bFlag) != 0)
  #define fgIsDiscInitFinished()      (_rOsdStateCtx.bDiscInitFlag == DISC_INIT_FINISHED)
  #define fgIsDiscInitAskPwd()        (_rOsdStateCtx.bDiscInitFlag == DISC_INIT_NEED_PWD)
  #define fgIsDiscInitWaitPwd()       (_rOsdStateCtx.bDiscInitFlag == DISC_INIT_WAIT_PWD)
  #define fgIsDiscInitChecked()       (_rOsdStateCtx.bDiscInitFlag == DISC_INIT_CHECKED)
#else
  #define vResetDiscInitFlag()
  #define vSetDiscInitFlag(bFlag)
  #define fgIsDiscInitChecked()       (TRUE)
  #define fgIsDiscInitAskPwd()        (FALSE)
  #define fgIsDiscInitWaitPwd()       (FALSE)
  #define fgIsDiscInitFinished()      (TRUE)
#endif


// *********************************************************************
// Player display mode
// *********************************************************************
typedef struct
{
  void (code *vShowInit)(void) large;
  void (code *vShowTimeMark)(BYTE fgClear) large;
  void (code *vShowRemainMsg)(BYTE fgShowOff) large;
  void (code *vShowPlayInfo)(BYTE bMode) large;
  void (code *vShowTrick)(BYTE bPbcState) large;
  void (code *vShowStopResumeState)(void) large;
  void (code *vShowStopState)(void) large;
  void (code *vStatusDispRecall)(void) large;
  void (code *vChangeRemainType)(BYTE bType) large;
}
strucDisplayState;

#define DISP_INIT               0
#define DISP_TIME_MARK          1
#define DISP_REMAIN_MSG         2
#define DISP_PLAY_INFO          3
#define DISP_TRICK              4
#define DISP_STOP_RESUME        5
#define DISP_STOP               6
#define DISP_RECALL             7
#define DISP_REMAIN_CHG         8
#define DISP_REMAIN_CHG_INIT    9
#define DISP_REMAIN_CHG_EXIT    10
#define DISP_MAX                11

// *********************************************************************
// OSD display function
// *********************************************************************
void vOsdDisplayChange(BYTE bIndex, BYTE bOption) large;
void vShowPbcState(BYTE bPbcState) large;

// *********************************************************************
// for vShowPlayInfo()
// *********************************************************************
#define PLAY_INFO_CLEAR     0xff

// *********************************************************************
// Time Display Mode for bRemainType
// *********************************************************************
#define OSD_SHOW_DISABLE          0

#define OSD_SHOW_SINGLE_ELAPSED   1
#define OSD_SHOW_SINGLE_REMAIN    2
#define OSD_SHOW_TOTAL_ELAPSED    3
#define OSD_SHOW_TOTAL_REMAIN     4

#define OSD_SHOW_VCD_REMAIN_MAX   4

#define OSD_SHOW_TITLE_ELAPSED    1
#define OSD_SHOW_TITLE_REMAIN     2
#define OSD_SHOW_CHAPTER_ELAPSED  3
#define OSD_SHOW_CHAPTER_REMAIN   4

#define OSD_SHOW_DVD_REMAIN_MAX   4

#define OSD_SHOW_DISP_CHG_INIT    0x80
#define OSD_SHOW_DISP_CHG_EXIT    0x81

#define OSD_SHOW_TIME_LEFT        0
#define OSD_SHOW_TIME_RIGHT       1

// *********************************************************************
// Time Display Mode for bGotoTimeType
// *********************************************************************
#define GOTO_SHOW_TITLE_ELAPSED    0
#define GOTO_SHOW_TITLE_REMAIN     1
#define GOTO_SHOW_CHAPTER_ELAPSED  2
#define GOTO_SHOW_CHAPTER_REMAIN   3

// *********************************************************************
// Info Display Mode for bPlayInfoType
// *********************************************************************
#define OSD_INFO_DISABLE          0

// *********************************************************************
// General OSD function
// *********************************************************************
void vOsdPosClear(WORD wPosIndex) large;
void vOsdPosShow(WORD wPosIndex, WORD wMsgIndex, BYTE bTime) large;
void vOsdPosShowArg(WORD wPosIndex, WORD wMsgIndex, BYTE bTime, BYTE *pbStr) large;
void vOsdPosPaste(WORD wPosIndex, WORD wMsgIndex) large;
void vOsdPosShowStr(WORD wPosIndex, BYTE *pbStr) large;

#if (defined(PLAYER_BOOKMARK) || defined(PLAYER_PROGRAM) || defined(PLAYER_DIGEST))
void vOsdPosHili(BYTE bMode, WORD wPosIndex, BYTE bWidth) large;

  /* for vOsdPosHili() */
  #define OSD_POS_HILI_CLEAR      0xff
  #define OSD_POS_HILI_SHOW       0x00
#endif /* PLAYER_BOOKMARK || PLAYER_PROGRAM || PLAYER_DIGEST */

// *********************************************************************
// Player Power Status Control
// *********************************************************************
void vSendPlayerIdle(void) large;
void vSendPlayerActive(void) large;

// *********************************************************************
// Game States
// *********************************************************************

// *********************************************************************
// Temp use for error message
// *********************************************************************
#define OSD_MSG_ERR_GENERAL           OSD_MSG_ERROR

// *********************************************************************
// Macros
// *********************************************************************
#define vCheckTimeValid3(bHr, bMin, bSec) { \
  if (bHr > 9) bHr = 9; \
  if (bBCDToHEX(bMin) > 59) bMin = 0x59; \
  if (bBCDToHEX(bSec) > 59) bSec = 0x59; \
}

#define vCheckTimeValid2(bMin, bSec) { \
  if (bBCDToHEX(bMin) > 99) bMin = 0x99; \
  if (bBCDToHEX(bSec) > 59) bSec = 0x59; \
}

#if (defined(PLAYER_STOP_SRV_STOP) || defined(AUDIO_IN_EN) || defined(SUPPORT_CAPTURE_LOGO))

// *********************************************************************
// Export Player Servo Status
// *********************************************************************
EXTERN xdata BYTE _bUISrvStatus;

#define PLAYER_SRV_NORMAL  0
#define PLAYER_SRV_STOP    1

#endif /* PLAYER_STOP_SRV_STOP */

// *********************************************************************
// for show logo
// *********************************************************************
void vPlayerShowLogo(BYTE bType, WORD wOption) large;

#define LOGO_BLACK              0x881
#define LOGO_BLUE               0x7f3
#define LOGO_GREEN              0x239
#define LOGO_YELLOW             0x91d
#define LOGO_PINK               0xb7a
#define LOGO_RED                0xf65
#define LOGO_WHITE              0x88f
#define LOGO_PURPLE             0xba4
#define LOGO_GRAY               0x888
#define LOGO_BROWN              0xA65
#define LOGO_LIGHTBLUE          0x4d7
#define LOGO_LIGHTGREEN         0x56A
#define LOGO_ORANGE             0xC39
#define LOGO_CYAN               0x697

// *********************************************************************
// for vocal assist
// *********************************************************************
#define _fgVocalOn      (_rUopmapFlag.fgVocalOn)

// *********************************************************************
// for audio stream change
// *********************************************************************
#ifdef AUDIO_STREAM_CHANGE_MUTE
#define _fgAstChg      (_rUopmapFlag.fgAstChg)

void vSetAudioStreamChange(BYTE bCnt, BYTE bOpt1, BYTE bOpt2, BYTE bOpt3) large;
#endif

// *********************************************************************
// for audio in test
// *********************************************************************
#define PLAYER_FUNC_DVD               0
#define PLAYER_FUNC_AIN               1

#ifdef AUDIO_IN_EN
EXTERN BYTE xdata    _bPlayerFuncMode;

#define fgIsFuncDvd()         (_bPlayerFuncMode == PLAYER_FUNC_DVD)
#define fgIsFuncAin()         (_bPlayerFuncMode == PLAYER_FUNC_AIN)

void vPlayerFuncSwitch(BYTE bMode) large;

#endif /* AUDIO_IN_EN */

// *********************************************************************
// for servo debug
// *********************************************************************
#ifdef SRV_SHOW_ERROR_COUNTER
EXTERN BYTE xdata    _bSrvShowErrIdx;
EXTERN BYTE xdata    _bSrvErrorTimer;
#endif


BOOL fgSCRSAVKeyProc(void ) large;

#endif /* _UOPMAP_H_ */

⌨️ 快捷键说明

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