📄 show_iso.c
字号:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 05/09/05 3:48p $ ****************/
/*************** $Revision:: 4 $ ****************/
/*************** ****************/
/*************** Description : ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : ****************/
/**********************************************************************/
#define _SHOW_ISO_C_
#pragma NOAREGS
#include "general.h"
#ifdef SUPPORT_DATA_DISC
#ifndef NEW_SHOW
// *********************************************************************
// Initial OSD state for ISO
// *********************************************************************
void vISOShowInit(void) large
{
_rOsdStateCtx.fgTimeShow = TRUE;
#ifdef PLAYER_FLMENU
_rOsdStateCtx.bTimeType = OSD_SHOW_SINGLE_ELAPSED;
#else
_rOsdStateCtx.bTimeType = OSD_SHOW_DISABLE;
#endif
#ifdef KEEP_REMAIN_TYPE_SHOW
_rOsdStateCtx.fgRemainMsgShow = TRUE;
#else
_rOsdStateCtx.fgRemainMsgShow = FALSE;
#endif
_rOsdStateCtx.fgPlayInfoShow = TRUE;
_rOsdStateCtx.bPlayInfoType = OSD_INFO_DISABLE;
_rOsdStateCtx.fgPlayShow = TRUE;
_rOsdStateCtx.bPlayType = OSD_SHOW_PLAY;
_rOsdStateCtx.fgRepeatShow = TRUE;
_rOsdStateCtx.fgABShow = TRUE;
_rOsdStateCtx.fgUsrCtrlShow = TRUE;
_rOsdStateCtx.fgZoomShow = TRUE;
_rOsdStateCtx.fgTimePos = OSD_SHOW_TIME_LEFT;
#ifndef MT1379_MANUFACTURE_TEST
vPlayerShowLogo(ISO_STOP_LOGO, ISO_LOGO_COLOR);
#endif
vPlayerShowLogo(ISO_STOP_LOGO, ISO_LOGO_COLOR);
}
// *********************************************************************
// Show time mark
// *********************************************************************
void vISOShowTimeMark(BYTE fgClear) large
{
BYTE bHour, bMin, bSec;
BYTE bPbcState = bSharedInfo(SI_MP3_MOD);
BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);
bHour = bMin = bSec = 0;
#ifndef PLAYER_FLMENU
if (fgFlCheckStatus(FL_STATUS_IN_MENU))
{
if (!fgIsDiscPlay(bPbcState) || (bItemType == SV_ISO_NONE))
{
vOsdPosClear(OSD_POS_ISO_TIME_LEFT);
return;
}
}
else if (fgFlCheckStatus(FL_STATUS_IN_JPEG))
{
vOsdPosClear(OSD_POS_ISO_TIME_LEFT);
return;
}
#endif /* PLAYER_FLMENU */
switch(_rOsdStateCtx.bTimeType)
{
case OSD_SHOW_DISABLE:
if (fgClear)
{
vOsdPosClear(OSD_POS_ISO_TIME_LEFT);
}
/* for VFD */
bHour = bSharedInfo(SI_TIME_HH);
bMin = bSharedInfo(SI_TIME_MM);
bSec = bSharedInfo(SI_TIME_SS);
break;
case OSD_SHOW_SINGLE_ELAPSED:
bHour = bSharedInfo(SI_TIME_HH);
bMin = bSharedInfo(SI_TIME_MM);
bSec = bSharedInfo(SI_TIME_SS);
break;
case OSD_SHOW_SINGLE_REMAIN:
bHour = bSharedInfo(SI_TIME_RMN_HH);
bMin = bSharedInfo(SI_TIME_RMN_MM);
bSec = bSharedInfo(SI_TIME_RMN_SS);
break;
default:
_rOsdStateCtx.bTimeType = OSD_SHOW_DISABLE;
return;
}
if (((fgFlCheckStatus(FL_STATUS_IN_MENU)) && (fgIsDiscPlay(bSharedInfo(SI_MP3_MOD)))) ||
((fgFlCheckStatus(FL_STATUS_IN_MPEG)) && (fgIsDiscPlay(bSharedInfo(SI_PBC_STATE)))))
{
VfdShowPlayTime(bHour, bMin, bSec);
}
else
{
bHour = 0; bMin = 0; bSec = 0;
}
if (_rOsdStateCtx.bTimeType != OSD_SHOW_DISABLE)
{
#ifdef PLAYER_FLMENU
if (fgFlCheckStatus(FL_STATUS_IN_MENU) && (_rSearchStateCtx.bType != SEARCH_ISO_TIME))
vFlIpShowInfo(IP_INFO_PLAYTIME, bMin, bSec);
else
#endif
vOsdShowIsoTimeRemain2(bHour, bMin, bSec, OSD_NO_DISAPPEAR);
}
}
#endif /* #ifndef NEW_SHOW */
static code WORD pwIsoDispModeMsg[3] =
{
OSD_MSG_DISPLAY_OFF,
OSD_MSG_SINGLE_ELAPSED,
OSD_MSG_SINGLE_REMAIN,
};
void vISOShowRemainMsg(BYTE fgShowOff) large
{
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);
if ((fgShowOff == FALSE) && (_rOsdStateCtx.bTimeType == OSD_SHOW_DISABLE))
{
return;
}
if (!fgIsDiscPlay(bPbcState))
{
if (fgFlCheckStatus(FL_STATUS_IN_MENU) == FALSE)
{
vOsdPosClear(OSD_POS_REMAIN_MSG);
}
}
else if (_rOsdStateCtx.bTimeType != OSD_SHOW_DISABLE)
{
if ((fgIsDiscPlay(bPbcState)) && (bItemType == SV_ISO_JPG))
{
vOsdPosShow(OSD_POS_REMAIN_MSG, pwIsoDispModeMsg[_rOsdStateCtx.bTimeType], OSD_TIMEOUT_SHORT);
}
else
{
if (_rOsdStateCtx.fgRemainMsgShow == TRUE)
{
vOsdPosShow(OSD_POS_REMAIN_MSG, pwIsoDispModeMsg[_rOsdStateCtx.bTimeType], OSD_NO_DISAPPEAR);
}
else
{
vOsdPosShow(OSD_POS_REMAIN_MSG, pwIsoDispModeMsg[_rOsdStateCtx.bTimeType], OSD_TIMEOUT_SHORT);
}
}
}
else
{
vOsdPosShow(OSD_POS_REMAIN_MSG, pwIsoDispModeMsg[_rOsdStateCtx.bTimeType], OSD_TIMEOUT_SHORT);
}
}
// *********************************************************************
// Function : void vISOShowPlayInfo(BYTE bItem)
// Description :
// Parameter : None
// Return : None
// *********************************************************************
void vISOShowPlayInfo(BYTE bItem) large
{
#if 0
WORD wFileNo = wIsoFileNo();
WORD wFileNs = wIsoFileNs();
BYTE bN1 = 0;
BYTE bType = bSharedInfo(SI_DISC_TYPE);
BYTE bState = bSharedInfo(SI_PBC_STATE);
/* for OSD */
switch (bItem)
{
case bSIItemIndex(SI_FILE_NS_HI):
case bSIItemIndex(SI_FILE_NS_LO):
vOsdShowFile(OSD_FILE_TOTAL, wFileNo, wFileNs, OSD_TIMEOUT);
/* show VFD stop message here? */
break;
case bSIItemIndex(SI_FILE_NO_HI):
case bSIItemIndex(SI_FILE_NO_LO):
if ((fgIsDiscPlay(bState))
#ifdef JPEG_DGST_SHOW_NO
|| (fgIsInDigest(bState) && (bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_JPG))
#endif
)
{
wFileNo = wWRDToBCD(wFileNo + 1); /* from 1 ~ Ns */
VfdShowPlayInfo(VFD_INFO_NUMBER, bHiByte(wFileNo), bLoByte(wFileNo));
/* check item type and show VFD message here? */
}
break;
default:
break;
} /* switch (bItme) */
#endif
/* force escape GOTO state if notified from RISC */
if ((bItem > 0) && (bItem != PLAY_INFO_CLEAR))
{
if (fgIsInputStateValid(INPUT_STATE_ISO_TIME_SEARCH))
{
vSetExitInputState();
}
}
}
#ifndef NEW_SHOW
// *********************************************************************
// Show trick mode
// *********************************************************************
void vISOShowTrick(BYTE bState) large
{
BYTE bSpeed = bSharedInfo(SI_PBC_SPEED);
if ((bState == SV_FF) || (bState == SV_FR))
{
if (bSpeed >= ISO_FAST_MAX)
{
bSpeed = ISO_FAST_MAX - 1;
}
bSpeed = pbISOFastDispTbl[bSpeed];
}
#if ((!defined DISABLE_SF) && (!defined DISABLE_SR))
else if ((bState == SV_SF) || (bState == SV_SR))
{
if (bSpeed >= ISO_SLOW_MAX)
{
bSpeed = ISO_SLOW_MAX - 1;
}
bSpeed = pbISOSlowDispTbl[bSpeed];
}
#endif
switch (bState)
{
case SV_FF:
vOsdShowPbcState(SV_FF, bSpeed, OSD_NO_DISAPPEAR);
break;
case SV_SF:
vOsdShowPbcState(SV_SF, bSpeed, OSD_NO_DISAPPEAR);
break;
case SV_FR:
vOsdShowPbcState(SV_FR, bSpeed, OSD_NO_DISAPPEAR);
break;
case SV_SR:
vOsdShowPbcState(SV_SR, bSpeed, OSD_NO_DISAPPEAR);
break;
default:
break;
}
}
#endif /* #ifndef NEW_SHOW */
// *********************************************************************
// Function : void vISOShowItemType(BYTE bType)
// Description :
// Parameter : None
// Return : None
// *********************************************************************
void vISOShowItemType(BYTE bType) large
{
WORD wFileNo;
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#if 0
wFileNo = wIsoFileNo();
wFileNo = wWRDToBCD(wFileNo + 1); /* from 1 ~ Ns */
#ifdef DDISC_FTYPE_JPEG_SUPPORT
if (fgIsIsoItemStill(bType)) /* SV_ISO_JPG */
{
// HACK code: prevent JPEG hog all the time
vOsdSetSt(OSD_ST_BURST);
vOsdPosClear(OSD_POS_REMAIN_MSG);
vOsdPosClear(OSD_POS_ISO_TIME_LEFT);
vOsdPosClear(OSD_POS_ISO_ZOOM);
#ifndef ENFORCE_OSD_SHOW_TIME_LEFT
if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_LEFT)
{
vOsdPosClear(OSD_POS_ISO_REPEAT);
}
else if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_RIGHT)
{
vOsdPosClear(OSD_POS_ISO_REPEAT_LEFT);
}
#else
vOsdPosClear(OSD_POS_ISO_REPEAT);
#endif /* ENFORCE_OSD_SHOW_TIME_LEFT */
// HACK code
vOsdSetSt(OSD_ST_NML);
_rOsdStateCtx.fgTimeShow = FALSE;
_rOsdStateCtx.fgRemainMsgShow = FALSE;
_rOsdStateCtx.fgRepeatShow = FALSE;
_rOsdStateCtx.fgABShow = FALSE;
/* if show still picture, no show time */
VfdClearMsg();
#ifdef VFDICON_clear_audio
VfdIcon(VFDICON_clear_audio);
#endif
#ifdef VFDMSG_jpeg
VfdMsg(VFDMSG_jpeg);
#endif
if (fgIsDiscPlay(bPbcState))
{
VfdShowPlayInfo(VFD_INFO_NUMBER, bHiByte(wFileNo), bLoByte(wFileNo));
}
}
else
#endif /* DDISC_FTYPE_JPEG_SUPPORT */
if (fgIsIsoItemAOnly(bType))
{
#ifndef ENFORCE_OSD_SHOW_TIME_LEFT
if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_LEFT)
{
vOsdPosClear(OSD_POS_ISO_REPEAT);
}
else if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_RIGHT)
{
vOsdPosClear(OSD_POS_ISO_REPEAT_LEFT);
}
#else
vOsdPosClear(OSD_POS_ISO_REPEAT);
#endif /* ENFORCE_OSD_SHOW_TIME_LEFT */
_rOsdStateCtx.fgTimeShow = TRUE;
#ifdef KEEP_REMAIN_TYPE_SHOW
_rOsdStateCtx.fgRemainMsgShow = TRUE;
#else
_rOsdStateCtx.fgRemainMsgShow = FALSE;
#endif
_rOsdStateCtx.fgRepeatShow = TRUE;
_rOsdStateCtx.fgABShow = TRUE;
vISOStatusDispRecall();
}
else if (fgIsIsoItemAV(bType))
{
}
else
{
vOsdPosClear(OSD_POS_REMAIN_MSG);
vOsdPosClear(OSD_POS_ISO_TIME_LEFT);
}
#endif // - 0
if (fgIsInputStateValid(INPUT_STATE_ISO_TIME_SEARCH))
{
/* force escape GOTO state */
fgSetPlayPostKey(IR_TIME_OUT);
}
#ifdef DDISC_FTYPE_JPEG_SUPPORT
else if (fgIsInputStateValid(INPUT_STATE_PCD_ZOOM))
{
/* force escape JPG zoom state if is not JPG */
if (fgIsIsoItemStill(bType) == FALSE)
{
/* need to escape zoom control mode */
fgSetPlayPostKey(IR_ZOOM_IN);
}
}
#endif
}
extern BOOL fgFlCmdIsOOC(void) large;
// *********************************************************************
// Function : void vISOShowStopState(void) large
// Description :
// Parameter : None
// Return : None
// *********************************************************************
void vISOShowStopState(void) large
{
BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);
if ((!fgIsIsoItemAV(bItemType)) && (!fgFlCheckStatus(FL_STATUS_IN_MENU)))
{
//vPlayerShowLogo(ISO_STOP_LOGO, ISO_LOGO_COLOR);
}
/* reset OSD play state show */
/* vOsdShowWb(OSD_WB_CLEAR); */
// prevent showing stop icon while beginning to repeat
#ifdef PLAYER_FLMENU
// if (!fgIsIsoItemAV(bItemType) && !fgFlCheckStatus(FL_STATUS_IN_JPEG))
// 20050905, PL00001407, bItemType will always be SV_ISO_NONE
if (!fgFlCheckStatus(FL_STATUS_IN_MPEG) && !fgFlCheckStatus(FL_STATUS_IN_JPEG))
#else
if (!fgIsIsoItemAV(bItemType))
#endif
{
vOsdShowPbcState(SV_STOP, 0, OSD_NO_DISAPPEAR);
}
#if 0
vISOShowRemainMsg(FALSE);
vISOShowTimeMark(TRUE);
#else
vOsdPosClear(OSD_POS_REMAIN_MSG);
#ifdef NEW_SHOW
// 20050905, PL00001407, we use OSD_POS_TIME_LEFT to display time, not OSD_POS_ISO_TIME_LEFT
if (fgFlCheckStatus(FL_STATUS_IN_MPEG))
vOsdPosClear(OSD_POS_TIME_LEFT);
else
#endif
vOsdPosClear(OSD_POS_ISO_TIME_LEFT);
#endif
/* Since we have FS menu, no play info is needed in STOP mode */
#ifdef SUPPORT_DRM
if ((fgIsInSetupMenu() == FALSE) && (!fgIsInDRMShow())
&&(!fgFlCheckStatus(FL_STATUS_IN_MENU))
#ifdef CDDA_USE_CDFS
#ifdef CDG_SUPPORT
|| ((bSharedInfo(SI_CDG_DISC) == SV_ON) && (!fgFlCmdIsOOC())) // RC, very tmp solution
#endif
#endif
)
#else
if (((fgIsInSetupMenu() == FALSE) && (!fgFlCheckStatus(FL_STATUS_IN_MENU)))
#ifdef CDDA_USE_CDFS
#ifdef CDG_SUPPORT
|| ((bSharedInfo(SI_CDG_DISC) == SV_ON) && (!fgFlCmdIsOOC())) // RC, very tmp solution
#endif
#endif
)
#endif
{
#ifdef PLAYER_FLMENU
vFlRecover();
#else
vFsMenuRecoverMenus();
#endif
}
}
/************************************************************************
Function :
Description : recall all displayed information
Parameter :
Return :
************************************************************************/
void vISOStatusDispRecall(void) large
{
BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);
if ((bItemType != SV_ISO_JPG) &&
(bItemType != SV_ISO_NONE))
{
vISOShowRemainMsg(FALSE);
#ifndef NEW_SHOW
vISOShowTimeMark(TRUE);
#else
vShowTimeMark(TRUE);
#endif
}
vISOShowPlayInfo(bSIItemIndex(SI_FILE_NO_HI));
}
/************************************************************************
Function :
Description :
Parameter :
Return :
************************************************************************/
void vISOChangeRemainType(BYTE bType) large
{
vISOShowRemainMsg(TRUE);
vISOShowPlayInfo(0);
#ifndef NEW_SHOW
vISOShowTimeMark(TRUE);
#else
vShowTimeMark(TRUE);
#endif
}
#else // #ifdef SUPPORT_DATA_DISC
static code WORD pwIsoDispModeMsg[] = { 0 };
/*
void vISOShowTimeMark(BYTE fgClear) large
{
BYTE bTmp = pwIsoDispModeMsg[0];
}
*/
//void vISOShowRemainMsg(BYTE fgShowOff) large { }
//void vISOShowPlayInfo(BYTE bItem) large { }
//void vISOShowTrick(BYTE bState) large { }
void vISOShowItemType(BYTE bType) large
{
BYTE bTmp = pwIsoDispModeMsg[0];
}
//void vISOShowStopState(void) large { }
//void vISOStatusDispRecall(void) large { }
//void vISOChangeRemainType(BYTE bType) large { }
#endif // #ifdef SUPPORT_DATA_DISC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -