📄 play_com.c
字号:
BYTE bInitState = bSharedInfo(SI_INIT_STATE);
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
BYTE bTvSystem = bTvSystemSetting();
BOOL fgChange = TRUE;
#ifdef PSCAN_EN
#ifdef HD_VIDEO
BYTE bTvHdMode = bSharedInfo(SI_HD_MODE);
#endif
BYTE bTvOut = bSharedInfo(SI_TVE_OUT_MODE);
BYTE bPScan = bSharedInfo(SI_PSCAN_EN);
#ifdef REAL_TIME_SAVE_FLASH_SHADOW
if (_bPNSwitchTimer > 0) {
_bIRKey = IR_NONE;
return(UOP_OK);
}
#endif
if(bTvSystem!=SV_AUTO) //corresponding vFlJvDgtMnHil vEnableWB(WB_DGST_HILI)
{
vDisableWB(WB_DGST_HILI);
}
#if 0 // allow VGA mode for PAL
if (bTvOut == SV_TVE_VGA)
{
vOsdShowError(SV_ERR_INVALID_OPERATION, OSD_TIMEOUT_SHORT);
_bIRKey = IR_NONE;
return (UOP_OK);
}
#endif // allow VGA mode for PAL
#endif /* PSCAN_EN */
/* this condition is not allowed */
#ifdef MTK_TVE
if ((bInitState == SV_LOADING_DISC) || (bInitState == SV_TRAY_CLOSING))
{
fgChange = FALSE;
}
else if (bInitState == SV_TRAY_OPENING)
{
if (!fgIsTrayOutside())
{
fgChange = FALSE;
}
}
#ifdef PLAY_NO_CHG_TV_FMT
else if (!fgIsNonPlay())
{
if (fgIsDiscPlay(bPbcState) || fgIsInDigest(bPbcState))
{
fgChange = FALSE;
}
}
#endif /* PLAY_NO_CHG_TV_FMT */
#endif /* MTK_TVE */
/* change the format */
if (fgChange)
{
#if defined(HD_VIDEO) && defined(PSCAN_EN)
vSetSharedInfo(SI_TV_CHG_MODE, bTvHdMode);
#endif
#ifdef REAL_TIME_SAVE_FLASH_SHADOW
if (_bPNSwitchTimer > 0) {
_bIRKey = IR_NONE;
return(UOP_OK);
}
#endif
switch (bTvSystem)
{
case SV_NTSC:
#ifdef PSCAN_EN
if ((bTvOut != SV_TVE_DIRECT) && (bPScan == SV_ON))
{
#ifdef HD_VIDEO
if (bTvHdMode == SV_HD_MODE_OFF)
{
vOsdShowTvFormat(OSD_MSG_720P60);
bTvHdMode = SV_HD_MODE_720P;
}
else
#endif
{
vOsdShowTvFormat(OSD_MSG_PAL_PSCAN);
bTvSystem = SV_PAL;
#ifdef HD_VIDEO
bTvHdMode = SV_HD_MODE_OFF;
#endif
}
}
else
#endif /* PSCAN_EN */
{
#if defined(HD_VIDEO) && defined(PSCAN_EN)
if (bTvHdMode == SV_HD_MODE_OFF)
{
vOsdShowTvFormat(OSD_MSG_1080I60);
bTvHdMode = SV_HD_MODE_1080I;
}
else
#endif
{
vOsdShowTvFormat(OSD_MSG_PAL);
bTvSystem = SV_PAL;
#if defined(HD_VIDEO) && defined(PSCAN_EN)
bTvHdMode = SV_HD_MODE_OFF;
#endif
}
}
break;
case SV_PAL:
#ifdef PSCAN_EN
if ((bTvOut != SV_TVE_DIRECT) && (bPScan == SV_ON))
{
#ifdef HD_VIDEO
if (bTvHdMode == SV_HD_MODE_OFF)
{
#ifndef HD_HIGH_PALCLOSE
vOsdShowTvFormat(OSD_MSG_720P50);
bTvHdMode = SV_HD_MODE_720P;
#else
vOsdShowTvFormat(OSD_MSG_MULTI_PSCAN);
bTvSystem = SV_AUTO;
#endif
}
else
#endif // MT1389_REV_HD
{
vOsdShowTvFormat(OSD_MSG_MULTI_PSCAN);
bTvSystem = SV_AUTO;
#ifdef HD_VIDEO
bTvHdMode = SV_HD_MODE_OFF;
#endif
}
}
else
#endif /* PSCAN_EN */
{
#if defined(HD_VIDEO) && defined(PSCAN_EN)
if (bTvHdMode == SV_HD_MODE_OFF)
{
#ifndef HD_HIGH_PALCLOSE
vOsdShowTvFormat(OSD_MSG_1080I50);
bTvHdMode = SV_HD_MODE_1080I;
#else
vOsdShowTvFormat(OSD_MSG_MULTI);
bTvSystem = SV_AUTO;
#endif
}
else
#endif
{
vOsdShowTvFormat(OSD_MSG_MULTI);
bTvSystem = SV_AUTO;
#if defined(HD_VIDEO) && defined(PSCAN_EN)
bTvHdMode = SV_HD_MODE_OFF;
#endif
}
}
break;
case SV_AUTO:
default:
#ifdef PSCAN_EN
#ifdef PN_IP_SAME_KEY
#if 1 // force P-Scan on
// ** when VGA, switch to non-Pscan, must set component to YUV or RGB
if (bTvOut == SV_TVE_DIRECT || bTvOut == SV_TVE_VGA)
{
if (bTvOut == SV_TVE_DIRECT)
bPScan = SV_OFF;
// Choose one as default
bTvOut = SV_TVE_YCBCR;
//bTvOut = SV_TVE_RGB;
if (bEepromReadByte(TV_COMP_POS) != bTvOut)
{
fgEepromWriteByte(TV_COMP_POS, bTvOut);
}
bSetCompOut(0, 0);
}
#else // don't force P-Scan on
if (bTvOut == SV_TVE_DIRECT)
{
bPScan = SV_OFF;
}
#endif // don't force P-Scan on
if (bTvOut != SV_TVE_DIRECT)
{
#ifdef HD_VIDEO
if ((bPScan == SV_OFF) && (bTvHdMode == SV_HD_MODE_1080I))
{
bPScan = SV_ON;
}
else if ((bPScan == SV_ON) && (bTvHdMode == SV_HD_MODE_720P))
{
bPScan = SV_OFF;
}
#else
if (bPScan == SV_OFF)
{
/* switch to P-SCAN on */
bPScan = SV_ON;
}
else
{
/* switch to P-SCAN off */
bPScan = SV_OFF;
}
#endif
#if (defined (MT1389_PTCON) && defined (MT1389_REV_L))
bPScan = SV_ON;
#endif
if (bEepromReadByte(TV_PSCAN_EN_POS) != bPScan)
{
fgEepromWriteByte(TV_PSCAN_EN_POS, bPScan);
}
vVideoPScanMode(bPScan, bTvOut);
}
#endif /* PN_IP_SAME_KEY */
if (bPScan == SV_ON)
{
#ifdef PSCAN_FORCE_TV_AUTO
vOsdShowTvFormat(OSD_MSG_PROGRESSIVE);
bTvSystem = SV_AUTO;
#else
#ifdef HD_VIDEO
if (bTvHdMode == SV_HD_MODE_OFF)
{
vOsdShowTvFormat(OSD_MSG_720P_AUTO);
bTvHdMode = SV_HD_MODE_720P;
}
else
#endif
{
vOsdShowTvFormat(OSD_MSG_NTSC_PSCAN);
bTvSystem = SV_NTSC;
#ifdef HD_VIDEO
bTvHdMode = SV_HD_MODE_OFF;
#endif
}
#endif
}
else
#endif /* PSCAN_EN */
{
#if defined(HD_VIDEO) && defined(PSCAN_EN)
if (bTvHdMode == SV_HD_MODE_OFF)
{
vOsdShowTvFormat(OSD_MSG_1080I_AUTO);
bTvHdMode = SV_HD_MODE_1080I;
}
else
#endif
{
vOsdShowTvFormat(OSD_MSG_NTSC);
bTvSystem = SV_NTSC;
#if defined(HD_VIDEO) && defined(PSCAN_EN)
bTvHdMode = SV_HD_MODE_OFF;
#endif
}
}
break;
}
#if defined(HD_VIDEO) && defined(PSCAN_EN)
if (bSharedInfo(SI_HD_MODE) != bTvHdMode)
{
fgEepromWriteByte(TV_HD_MODE_POS, bTvHdMode);
vSetSharedInfo(SI_HD_MODE, bTvHdMode);
vNotifySharedInfo(SI_HD_MODE, 0, 0);
}
#endif /* MT1389_REV_HD */
vVideoTvSystem(bTvSystem);
#ifdef PSCAN_EN /* if P-Scan is enabled, TV system must sync with menu */
fgEepromWriteByte(TV_SYSTEM_POSITION, bTvSystem);
#endif
#ifdef REAL_TIME_SAVE_FLASH_SHADOW
_bPNSwitchTimer = 20;
#endif
} /* if (fgChange) */
else /* fgChange == FALSE */
{
vOsdShowError(SV_ERR_INVALID_OPERATION, OSD_TIMEOUT_SHORT);
}
_bIRKey = IR_NONE;
return (UOP_OK);
}
#ifdef PSCAN_EN
BOOL fgCOMPScanKey(void) large
{
BYTE bTvOut = bSharedInfo(SI_TVE_OUT_MODE);
BYTE bPScan = bSharedInfo(SI_PSCAN_EN);
if (bPScan == SV_OFF)
{
bPScan = SV_ON;
if ((bTvOut == SV_TVE_DIRECT) || (bTvOut == SV_TVE_VGA))
{
bTvOut = SV_TVE_YCBCR;
}
}
else
{
bPScan = SV_OFF;
if (bTvOut == SV_TVE_VGA)
{
bTvOut = SV_TVE_YCBCR;
}
}
if (bEepromReadByte(TV_PSCAN_EN_POS) != bPScan)
{
fgEepromWriteByte(TV_PSCAN_EN_POS, bPScan);
}
if (bEepromReadByte(TV_COMP_POS) != bTvOut)
{
fgEepromWriteByte(TV_COMP_POS, bTvOut);
}
if (bPScan == SV_ON)
{
vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_PROGRESSIVE, OSD_TIMEOUT);
}
else
{
vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_INTERLACE, OSD_TIMEOUT);
}
vVideoPScanMode(bPScan, bTvOut);
_bIRKey = IR_NONE;
return (UOP_OK);
}
BOOL fgCOMVGAKey(void) large
{
// for turn on VGA mode only
if (bEepromReadByte(TV_PSCAN_EN_POS) != SV_ON)
{
fgEepromWriteByte(TV_PSCAN_EN_POS, SV_ON);
}
if (bEepromReadByte(TV_COMP_POS) != SV_TVE_VGA)
{
fgEepromWriteByte(TV_COMP_POS, SV_TVE_VGA);
}
vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_VGA, OSD_TIMEOUT);
vVideoPScanMode(SV_ON, SV_TVE_VGA);
_bIRKey = IR_NONE;
return (UOP_OK);
}
#endif /* PSCAN_EN */
BOOL fgCOMCompKey(void) large
{
BYTE bMode;
#ifdef MTK_TVE
bMode = bEepromReadByte(TV_COMP_POS);
switch (bMode)
{
case SV_TVE_DIRECT:
bMode = SV_TVE_YCBCR;
vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_YUV, OSD_TIMEOUT);
break;
case SV_TVE_YCBCR:
bMode = SV_TVE_RGB;
vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_RGB, OSD_TIMEOUT);
break;
case SV_TVE_RGB:
#ifdef PSCAN_EN
bMode = SV_TVE_VGA;
vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_VGA, OSD_TIMEOUT);
#else
bMode = SV_TVE_DIRECT;
vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_OFF, OSD_TIMEOUT);
#endif
break;
#ifdef PSCAN_EN
case SV_TVE_VGA:
#endif
default:
bMode = SV_TVE_DIRECT;
vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_OFF, OSD_TIMEOUT);
break;
}
fgEepromWriteByte(TV_COMP_POS, bMode);
bSetCompOut(0, 0);
#elif (defined(SCART_SELECTION) && !defined(MTK_TVE))
bMode = bEepromReadByte(SCART_POS);
switch (bMode)
{
case EV_RGB:
fgEepromWriteByte(SCART_POS, EV_YPBPR);
vTvRGBOut(TRUE);
vOsdPosShow(OSD_POS_AUD_CTRL, OSD_MSG_SCART_YPBPR, OSD_TIMEOUT);
break;
case EV_YPBPR:
default:
fgEepromWriteByte(SCART_POS, EV_RGB);
vTvRGBOut(FALSE);
vOsdPosShow(OSD_POS_AUD_CTRL, OSD_MSG_RGB, OSD_TIMEOUT);
break;
}
#endif /* SCART_SELECTION !MTK_TVE */
_bIRKey = IR_NONE;
return (UOP_OK);
}
#ifdef ENABLE_ZOOM_USER_MODE
BOOL fgCOMDirKey(void) large
{
BYTE bHScale, bVScale;
if (bSharedInfo(SI_ZOOM_SWITCH) != SV_ZOOM_USR)
{
// bypass the key
return (UOP_OK);
}
bHScale = bSharedInfo(SI_ZOOM_USR_H);
bVScale = bSharedInfo(SI_ZOOM_USR_V);
switch (_bIRKey)
{
case IR_UP: // vertical zoom in
{
if (bVScale >= ZOOM_USR_V_BASE)
{
if (bVScale >= (ZOOM_USR_V_MAX - ZOOM_IN_V_STEP))
{
bVScale = ZOOM_USR_V_MAX;
}
else
{
bVScale += ZOOM_IN_V_STEP;
}
}
else
{
bVScale += ZOOM_OUT_V_STEP;
}
break;
} // IR_UP, vertical zoom in
case IR_DOWN: // vertical zoom out
{
if (bVScale <= ZOOM_USR_V_BASE)
{
if (bVScale <= (ZOOM_USR_V_MIN + ZOOM_OUT_V_STEP))
{
bVScale = ZOOM_USR_V_MIN;
}
else
{
bVScale -= ZOOM_OUT_V_STEP;
}
}
else
{
bVScale -= ZOOM_IN_V_STEP;
}
break;
} // IR_DOWN, vertical zoom out
case IR_RIGHT: // horizontal zoom in
{
if (bHScale >= ZOOM_USR_H_BASE)
{
if (bHScale >= (ZOOM_USR_H_MAX - ZOOM_IN_H_STEP))
{
bHScale = ZOOM_USR_H_MAX;
}
else
{
bHScale += ZOOM_IN_H_STEP;
}
}
else
{
bHScale += ZOOM_OUT_H_STEP;
}
break;
} // IR_RIGHT, horizontal zoom in
case IR_LEFT: // horizontal zoom out
{
if (bHScale <= ZOOM_USR_H_BASE)
{
if (bHScale <= (ZOOM_USR_H_MIN + ZOOM_OUT_H_STEP))
{
bHScale = ZOOM_USR_H_MIN;
}
else
{
bHScale -= ZOOM_OUT_H_STEP;
}
}
else
{
bHScale -= ZOOM_IN_H_STEP;
}
break;
} // IR_LEFT, horizontal zoom out
default:
return (UOP_FAIL);
}
#ifdef VCD_MENU_NO_ZOOM_OUT
if (fgIsVcdPlay() && (bSharedInfo(SI_TRACK_NO) == 0))
{
if (bHScale < ZOOM_USR_H_BASE)
{
bHScale = ZOOM_USR_H_BASE;
}
if (bVScale < ZOOM_USR_V_BASE)
{
bVScale = ZOOM_USR_V_BASE;
}
}
#endif /* VCD_MENU_NO_ZOOM_OUT */
if ((bHScale != bSharedInfo(SI_ZOOM_USR_H)) ||
(bVScale != bSharedInfo(SI_ZOOM_USR_V)))
{
vSendUopCmd(UOP_ZOOM_IN, SV_ZOOM_USR, bHScale, bVScale);
}
_bIRKey = IR_NONE;
return (UOP_OK);
}
#endif /* ENABLE_ZOOM_USER_MODE */
#ifdef SUPPORT_CAPTURE_LOGO
BOOL fgCOMCaptureKey(void) large
{
if (fgIsInputStateValid(INPUT_STATE_LOGO_CAPTURE) == FALSE)
{
if (fgIsLogoCaptureAllow())
{
vChangeInputState(INPUT_STATE_LOGO_CAPTURE, FALSE);
}
}
_bIRKey = IR_NONE;
return (UOP_OK);
}
#endif /* SUPPORT_CAPTURE_LOGO */
#ifdef SUPPORT_USB_COPY //yan 070409
// *********************************************************************
// Function : fgCOMUSBInputKey
// Description : Direct key to copy disc(s)
// Parameter : none
// Return : UOP_OK
// *********************************************************************
BOOL fgCOMUSBInputKey(void) large
{
BYTE bID;
BYTE bEMDTotal;
bID = bSharedInfo(SI_DEVICE_ID);
bEMDTotal = bSharedInfo(SI_EMD_ATTACH);
#ifdef USB_COPY_DEBUG
DBGLogS("fgCOMUSBInputKey:");
DBGLogB(bEMDTotal,_bUSBUIState,0,0);
#endif
if((bSharedInfo(SI_INIT_STATE) == SV_DISC_IDENTIFIED) && bEMDTotal
#ifdef SUPPORT_ONLY_AUDIO_TPYE
&& fgFlMnOnAudio()
#endif
)
{
#ifdef PLAYER_FLMENU
if (fgFlCheckStatus(FL_STATUS_IN_MENU))
{
vDisableWB(FSMENU_OSD_WBIDX_BASIC);
vDisableWB(FSMENU_INFO);
}
#ifdef MPEG4_TXT_SP
if (fgIsIsoPlay() && fgFlCheckStatus(FL_STATUS_IN_MPEG))
{
vDisableWB(WB_MP4_SP);
}
#endif
#endif
#ifdef SHOW_CD_TEXT
if ((_sCDText.fgIsShowCDPanel)&&(bID == SV_DEVID_CDVDROM))
{
vExitCDPanel();
_sCDText.fgIsShowCDPanel = FALSE;
_sCDText.fgCDTextHide = TRUE;
vSetSharedInfo(SI_CDT_TRACK,0xff);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -