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

📄 uopmap.h

📁 MTK portableDVD 采用mtk1389方案的代码
💻 H
📖 第 1 页 / 共 3 页
字号:
 INPUT_STATE_TITLE_SEARCH, //3
 INPUT_STATE_DVD_TIME_SEARCH, //4   
 INPUT_STATE_VCD_TIME_SEARCH,   //5
 INPUT_STATE_VCD_TRACK_SEARCH,   //6
 INPUT_STATE_ISO_TIME_SEARCH,    //7
 INPUT_STATE_AUDIO_CHANGE,       //8
 INPUT_STATE_SUBTITLE_CHANGE,  //9
 INPUT_STATE_ANGLE_CHANGE,     //10
 INPUT_STATE_DVD_DISPLAY,      //11
 INPUT_STATE_VCD_DISPLAY,      //12
 INPUT_STATE_PASSWORD,       //13
 INPUT_STATE_BOOKMARK,         //14
 INPUT_STATE_UPG,            //15
 INPUT_STATE_DIGEST,         //16
 INPUT_STATE_FILE_SELECT,      //17
 INPUT_STATE_FSMENU_FILTER,   //18
 INPUT_STATE_PCD_ZOOM,          //19
 INPUT_STATE_DA_HIDDEN_PWD,    //20
 INPUT_STATE_DVD_AUDIO_SCAN,   //21
 INPUT_STATE_DISC_LOCK_PWD,    //22
 INPUT_STATE_LOGO_CAPTURE,      //23
 INPUT_STATE_FL_OPTIONS,           //24
 INPUT_STATE_ITEM_INFO,         //25   
 INPUT_STATE_VREMOTE,          //26
 #ifdef ID_NO
 INPUT_STATE_ID,                //27
 #endif
 #ifdef  BBK_NEW_SELECTOR
 INPUT_STATE_SELECTOR,     //28
 #endif
 INPUT_STATE_ZOOM_IN,          // 29
 INPUT_STATE_STACK_START,    //30
 INPUT_STATE_SETUP,     //31
 INPUT_STATE_GOTO,        //32
#ifdef BBK_LAST_MEMORY
 INPUT_STATE_LAST_MEMORY,  //33
#endif
#ifdef  SUPPORT_BROWSER
 INPUT_STATE_BROWSER,     //34
#endif
 INPUT_STATE_MAX          //35
};


#define fgIsInputStateValid(bMode)    (_bInputState == bMode)
#define fgIsNoInputState()            (_bInputState == INPUT_STATE_NONE)
#define fgIsSearchInputState()        ((_bInputState >= INPUT_STATE_PTT_SEARCH) && (_bInputState <= INPUT_STATE_ISO_TIME_SEARCH))

EXTERN xdata BYTE _bPlayPostKey;
EXTERN xdata BYTE _bInputState;
#define           _fgInputResend      (_rUopmapFlag.fgInputResend)
#define           _fgInputEscape      (_rUopmapFlag.fgInputEscape)

//===================================================================
// Set internal command
//===================================================================
BOOL fgSetPlayPostKey(BYTE bKey) large;

// *********************************************************************
// Key combine state export function
// *********************************************************************
void vChangeInputState(BYTE bState, BOOL fgSendKey) large;
void vSetExitInputState(void) large;

// *********************************************************************
// UOP Dispatch Function, No branch in run-time
// *********************************************************************
#if defined(PC_EMULATION)
extern void vSendUopCmd(BYTE bCmd, BYTE bParm1, BYTE bParm2, BYTE bParm3) large;
#else
/*
#define vSendUopCmd(bCmd, bParm1, bParm2, bParm3) \
        SendIRCmd(bCmd, bParm1, bParm2, bParm3)
*/
void vSendUopCmd(BYTE bCmd, BYTE bParm1, BYTE bParm2, BYTE bParm3) large;
#endif

// *********************************************************************
// Description : For peripheral command to main loop
// *********************************************************************
void vSendPeriCmd(BYTE bCmd, BYTE bParm1, BYTE bParm2) large;

// *********************************************************************
// For UI reset
// *********************************************************************
EXTERN void vResetInputState(void) large;
EXTERN void vResetOsdState(void) large;

// *********************************************************************
// Status Display Recall
// *********************************************************************
void vStatusDispRecall(void) large;

// *********************************************************************
// Main State Machine
// *********************************************************************

/* This must be called after call the main state function */
/* assume the vChangeInputState() is only called from main state */
/* execute non-stacked input state */
#define vResendInputState()                                       \
  if (_fgInputResend == TRUE)                                     \
  {                                                               \
    vNonStatckInputState();                                       \
    _fgInputResend = FALSE;                                       \
  }
void vNonStatckInputState(void) large;
// *********************************************************************
// Button No Input State Machine
// *********************************************************************
void vBtnNoInitState(BYTE fgInit) large;
BOOL fgBtnNoInputState(void) large;

// *********************************************************************
// Setup State Machine
// *********************************************************************
BOOL fgSetupState(void) large;
void vSetupInitState(void) large;

// *********************************************************************
// 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
// *********************************************************************
void vSelectInit(BYTE fgInit) large;
BOOL fgSelectState(void) large;

// *********************************************************************
// 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 */
#ifdef ID_NO
  BYTE bTotalDigNum:4;
  BYTE bDigNum:4;
#else
  BYTE bTotalDigNum:3;
  BYTE bDigNum:3;
#endif  
  BYTE fgComplete:1;
  BYTE fgCancel:1;
} strucNumState;

EXTERN xdata struct
{
#ifdef ID_NO
  BYTE bDig[12];
#else	
  BYTE bDig[6];
#endif  
  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 fgSetupSttTrans:1;
#ifndef SUPPORT_BROWSER
  BYTE Reserve:1;
#else
  BYTE fgBrowserShow:1;  // Bright_liu
#endif
 /* BYTE 5 */
#ifdef BBK_NEW_SELECTOR
  BYTE fgSelectorShow: 1;
#endif 
  /* BYTE 6/7 */
  BYTE bUopRetId;
  BYTE bUopRetVal;
}
_rOsdStateCtx;

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

#ifdef BBK_NEW_GUI
#define fgIsInFlOptState        (_bInputState == INPUT_STATE_FL_OPTIONS)
#define fgIsInFlItemInfo        (_bInputState == INPUT_STATE_ITEM_INFO)
#endif
#ifdef SUPPORT_BROWSER
  #define SetBrowser()          _rOsdStateCtx.fgBrowserShow = TRUE
  #define ClrBrowser()          _rOsdStateCtx.fgBrowserShow = FALSE
  #define fgIsInBrowser()       (_rOsdStateCtx.fgBrowserShow == TRUE) // Bright_liu
#else
  #define fgIsInBrowser()       FALSE
#endif
#ifdef BBK_NEW_SELECTOR
  #define SetSelector()          _rOsdStateCtx.fgSelectorShow = TRUE
  #define ClrSelector()          _rOsdStateCtx.fgSelectorShow = FALSE
  #define fgIsInSelector()       (_rOsdStateCtx.fgSelectorShow == TRUE) 
#else
  #define fgIsInSelector()       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)

⌨️ 快捷键说明

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