📄 uopmap.h
字号:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 04/07/28 11:27a $ ****************/
/*************** $Revision:: 9 $ ****************/
/*************** ****************/
/*************** Description : State Machine ****************/
/*************** Management ... ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : Sung-Ching Lin ****************/
/**********************************************************************/
#ifndef _UOPMAP_H_
#define _UOPMAP_H_
#ifdef _UOPMAP_C_
#define EXTERN
#else
#define EXTERN extern
#endif
//===================================================================
// Share info update count
//===================================================================
#if defined(NO_SM_NOTIFY)
EXTERN xdata BYTE _bShmRp;
#endif
//#define ACCEL_SI_PROC
#ifdef ACCEL_SI_PROC
EXTERN xdata BYTE _bShmUpdCnt;
#define vClearShmUpdCnt() (_bShmUpdCnt = 0)
#define SHM_PROC_CNT 4
#else
#define vClearShmUpdCnt()
#endif /* ACCEL_SI_PROC */
//===================================================================
// User working data in SDRAM
//===================================================================
enum
{
/* 4 bytes for parental password */
SH_PASS_0 = SI_USER_START,
/* for osdshow.c */
SH_OSD_WB_MODE = SH_PASS_0 + PASSWORD_LEN,
SH_OSD_WB_SAVED,
SH_OSD_WB_USR_SAVED,
SH_OSD_LAYER1_WB,
SH_OSD_LAYER1_STATUS,
SH_OSD_LAYER2_WB,
SH_OSD_LAYER2_STATUS,
SH_OSD_TIMER_LAYER2_1,
SH_OSD_TIMER_LAYER2_2,
SH_OSD_TIMER_LAYER2_3,
SH_OSD_TIMER_LAYER2_4,
SH_OSD_TIMER_PLAY_STATUS,
SH_OSD_TIMER_AUDIO_CTRL,
SH_OSD_TIMER_ERR_MSG,
/* for uopmap.c */
SH_IR_TIMER_AUTO_PWR_DOWN,
/* for OSD state */
SH_OSD_REMAIN_MSG_TIMEOUT,
SH_OSD_PLAY_TYPE_TIMEOUT,
SH_OSD_PLAY_INFO_TIMEOUT,
/* for Screen Saver */
SH_SCR_COL_CNT,
#ifdef SETUP_MENU_PBC_CTRL
/* for VCD user PBC on/off control */
SH_VCD_USR_PBC_OFF,
#endif
/* for DVD audio bit-stream change */
#ifdef AUDIO_STREAM_CHANGE_MUTE
SH_CHG_AST_CNT,
SH_CHG_AST_OPT1,
SH_CHG_AST_OPT2,
SH_CHG_AST_OPT3,
#endif
/* for aud_ctrl.c */
SH_SPK_CFG,
#ifdef MIC_AUTOMUTE
SH_MIC_MIX_CH,
SH_MIC_GAIN_1,
SH_MIC_GAIN_2,
SH_MIC_AUTOMUTE_OFF_LEVEL_HI,
SH_MIC_AUTOMUTE_OFF_LEVEL_LO,
SH_MIC_AUTOMUTE_ON_LEVEL_HI,
SH_MIC_AUTOMUTE_ON_LEVEL_LO,
#endif
#ifdef SS_FADE_INOUT
SH_SS_COUNT,
#endif
#ifdef ENABLE_USER_LANG_CODE
SH_LCD_0,
SH_LCD_1,
SH_LCD_2,
SH_LCD_3,
#endif
#ifdef MTK_MENU
SH_DLG_VAL_0, //[runma] add by michael
SH_DLG_VAL_1,
SH_DLG_VAL_2,
SH_DLG_VAL_3,
//SH_DLG_VAL4, //[runma] del line by michael.
#endif /* MTK_MENU */
#ifdef OSD_SLIDER_SUPPORT
SH_CMP_CLR0,
SH_CMP_CLR1,
SH_CMP_CLR2,
SH_CMP_CLR3,
SH_CMP_CLR4,
SH_CMP_CLR5,
#endif /* OSD_SLIDER_SUPPORT */
SH_PAUSE_SHOW_WB,
SH_PROGRAM_START,
SH_BOOKMARK_PLAY,
/* 8032 working data max */
SH_USER_DATA_MAX
};
#define OSD_TIMER_MAX (SH_OSD_TIMER_ERR_MSG - SH_OSD_TIMER_LAYER2_1 + 1)
//===================================================================
// For Bit Flags in xdata
//===================================================================
EXTERN xdata struct
{
BYTE fgInputResend:1;
BYTE fgInputEscape:1;
BYTE fgVocalOn:1;
BYTE fgAstChg:1;
BYTE fgDVDStopPlayWait:1;
BYTE Reserve:3;
}
_rUopmapFlag;
#define _fgDVDStopPlayWait _rUopmapFlag.fgDVDStopPlayWait
//===================================================================
// Player Related Function
//===================================================================
void vPlayerReset(void) large;
void vUIStop(void) large;
//===================================================================
// SM functions Prototype
//===================================================================
void SmInit(void) large;
//===================================================================
// SETUP functions Prototype
//===================================================================
void vUserInit(BOOL fgInited) large;
//===================================================================
// Screen Saver
//===================================================================
BOOL fgScrSaverCheck(void) large;
// *********************************************************************
// 8032 play type define
// *********************************************************************
#define UOP_OK 0
#define UOP_FAIL 1
#define UOP_REMAP 2
#define UOP_UPDATE 3
#define PLAY_TYPE_NONE 0
#define PLAY_TYPE_DVD 1
#define PLAY_TYPE_VCD 2
#define PLAY_TYPE_ISO 3
#define PLAY_TYPE_PCD 4
#define PLAY_TYPE_CDDA 5
#define PLAY_TYPE_AIN 6
#define TOTAL_PLAY_TYPE 7
EXTERN xdata BYTE _bPlayType;
void vSetPlayType(BYTE bType) large;
void vClearPlayType(void) large;
/* These macros is for 8032 temp use only */
#define fgIsNonPlay() (_bPlayType == PLAY_TYPE_NONE)
#define fgIsDvdPlay() (_bPlayType == PLAY_TYPE_DVD)
#define fgIsVcdPlay() (_bPlayType == PLAY_TYPE_VCD)
#define fgIsIsoPlay() (_bPlayType == PLAY_TYPE_ISO)
#define fgIsPcdPlay() (_bPlayType == PLAY_TYPE_PCD)
#define fgIsCddaPlay() (_bPlayType == PLAY_TYPE_CDDA)
#define fgIsAinPlay() (_bPlayType == PLAY_TYPE_AIN)
#define IS_SVCD_TYPE(a) (a==SV_SVCD)
#define IS_VCD_TYPE(a) ((a==SV_VCD3_0)||(a==SV_VCD2_0)||(a==SV_VCD1_1)||(a==SV_VCD6_0)||(a==SV_VCD6_1)||(a==SV_CVD))
// *********************************************************************
// For share info update
// *********************************************************************
EXTERN xdata DWRD _dwIrDoneParm;
EXTERN xdata BYTE _bSMUpdate;
// *********************************************************************
// 8032 share info update and RISC handshaking internal states
// *********************************************************************
EXTERN xdata BYTE _bLastSyncUop; /* only for selected UOP */
EXTERN xdata BYTE _bLastPbcState;
// *********************************************************************
// For IR shift key
// *********************************************************************
#ifdef IR_SUPPORT_SHIFT_KEY
#define fgIsKeyTblShift() (_fgIRShiftKey == TRUE)
void vSetShiftKeyMode(BOOL fgEnable) large;
#endif
// *********************************************************************
// For UI timer
// *********************************************************************
#define IR_TIMER_BEEP_PERIOD 50 /* based on 20ms 8032 timer */
#define IR_TIMER_TIMEOUT 0xff
#define IR_TIMER_VOID 0x00
#define IR_TIMEOUT_SEARCH 5
#define IR_TIMEOUT_AUDIO 5
#define IR_TIMEOUT_SUBTITLE 5
#define IR_TIMEOUT_ANGLE 5
#define IR_TIMEOUT_DISPLAY 8
EXTERN xdata BYTE _bIrTimerBeepCnt;
EXTERN xdata BYTE _bIrTimer;
void vIrSetTimeOut(BYTE bTime) large;
// *********************************************************************
// For Player timer
// *********************************************************************
#define PLAYER_TIMER_BEEP_PERIOD 24 /* about 0.5 sec. for 20ms timer */
EXTERN xdata BYTE _bPlayerTimerBeepCnt;
// *********************************************************************
// Screen Saver
// *********************************************************************
EXTERN xdata BYTE _bScrSaverBeepCnt;
EXTERN xdata BYTE _bScrSaverTimer;
EXTERN BOOL _fgScrSaverOn;
#define SCR_SAVER_ON_BEEP_COUNT 2 /* 20ms base, 25Hz */
#define SCR_SAVER_OFF_BEEP_COUNT 250 /* 5 seconds */
#define fgIsScrSaverOn() (_fgScrSaverOn == TRUE)
#define vSetScrSaverOn() (_fgScrSaverOn = TRUE)
#define vSetScrSaverOff() (_fgScrSaverOn = FALSE)
void vScrSaverSetTimeOut(BYTE bTime) large;
// *********************************************************************
// Player input mode
// *********************************************************************
typedef struct
{
void (code *vInit)(BYTE fgInit) large;
BOOL (code *fgState)(void) large;
void (code *vExit)(void) large;
BYTE bKeyShiftMode;
}
strucInputState;
#define INPUT_STATE_KEY_TBL_NORMAL 0
#define INPUT_STATE_KEY_TBL_SHIFT 1
#define INPUT_STATE_KEY_TBL_KEEP 2
#define INPUT_STATE_NONE 0xff
#define INPUT_STATE_SELECT_NUM 0
#define INPUT_STATE_PROGRAM 1
#define INPUT_STATE_PTT_SEARCH 2
#define INPUT_STATE_TITLE_SEARCH 3
#define INPUT_STATE_DVD_TIME_SEARCH 4
#define INPUT_STATE_VCD_TIME_SEARCH 5
#define INPUT_STATE_VCD_TRACK_SEARCH 6
#define INPUT_STATE_ISO_TIME_SEARCH 7
#define INPUT_STATE_AUDIO_CHANGE 8
#define INPUT_STATE_SUBTITLE_CHANGE 9
#define INPUT_STATE_ANGLE_CHANGE 10
#define INPUT_STATE_DVD_DISPLAY 11
#define INPUT_STATE_VCD_DISPLAY 12
#define INPUT_STATE_PASSWORD 13
#define INPUT_STATE_BOOKMARK 14
#define INPUT_STATE_UPG 15
#define INPUT_STATE_DIGEST 16
#define INPUT_STATE_FILE_SELECT 17
#define INPUT_STATE_FSMENU_FILTER 18
#define INPUT_STATE_PCD_ZOOM 19
#define INPUT_STATE_DA_HIDDEN_PWD 20
#define INPUT_STATE_DVD_AUDIO_SCAN 21
#define INPUT_STATE_DISC_LOCK_PWD 22
#define INPUT_STATE_LOGO_CAPTURE 23
#define INPUT_STATE_VREMOTE 24
#define INPUT_STATE_ZOOM_IN 25
#define INPUT_STATE_STACK_START 26
#define INPUT_STATE_SETUP 26
#define INPUT_STATE_GOTO 27
#define INPUT_STATE_MAX 28
#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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -