📄 show_dvd.c
字号:
vOsdShowAudio(OSD_AUDIO_CLEAR, 0, 0, 0, 0, 0, 0);
#if (DVD_USER_STREAM_CHANGE == DVD_STREAM_CHANGE_SELECT)
if ((bAstNs > 1) && fgIsInputStateValid(INPUT_STATE_AUDIO_CHANGE))
{
bTmp = OSD_AUDIO_HILI;
}
else
#endif
{
#if (DVD_USER_STREAM_CHANGE == DVD_STREAM_CHANGE_INFO)
bTmp = OSD_AUDIO_NORMAL;
#else
bTmp = OSD_AUDIO_NORMAL + OSD_TIMEOUT;
#endif
}
vOsdShowAudio(bTmp, bAstNo + 1, bAstNs,
bSharedInfo(SI_A_CH_CFG), bSharedInfo(SI_A_CODE_MODE),
bSharedInfo(SI_A_LCD_0), bSharedInfo(SI_A_LCD_1));
}
// *********************************************************************
// Show sub-picture stream
// *********************************************************************
void vDVDShowSubtitle(BYTE bSpNo, BYTE bSpNs) large
{
BYTE bTmp1, bTmp2;
// 20050324, IS00001522, clear subtitle before display audio
vOsdShowSubtitle(OSD_SUBTITLE_CLEAR, 0, 0, 0, 0, 0);
if ((bSpNo == 0x3e) || (bSpNo == 0x3f))
{
/* take dummy stream as subtitle disabled */
bSpNo = 0x00;
}
#if (DVD_USER_STREAM_CHANGE == DVD_STREAM_CHANGE_SELECT)
if (fgIsInputStateValid(INPUT_STATE_SUBTITLE_CHANGE))
{
bTmp1 = OSD_SUBTITLE_HILI;
bTmp2 = OSD_NO_DISAPPEAR;
}
else
#endif
{
bTmp1 = OSD_SUBTITLE_NORMAL;
#if (DVD_USER_STREAM_CHANGE == DVD_STREAM_CHANGE_INFO)
bTmp2 = OSD_NO_DISAPPEAR;
#else
bTmp2 = OSD_TIMEOUT;
#endif
}
if ((bSpNo & 0x40) && ((bSpNo & 0x1f) < bSpNs) && (bSpNs > 0))
{
vOsdShowSubtitle(bTmp1, (bSpNo & 0x1f) + 1, bSpNs,
bSharedInfo(SI_SP_LCD_0), bSharedInfo(SI_SP_LCD_1), bTmp2);
}
else
{
vOsdShowSubtitle(OSD_SUBTITLE_CLEAR, 0, 0, 0, 0, 0);
vOsdPosShow(OSD_POS_SUBTITLE, OSD_MSG_SUBTITLE_OFF, OSD_TIMEOUT);
}
}
/************************************************************************
Function : vDVDShowMenuType(BYTE bTime)
Description :
Parameter :
Return : None
************************************************************************/
void vDVDShowMenuType(BYTE bTime) large
{
BYTE bDom = bSharedInfo(SI_DVD_DOM);
BYTE bMenuId = bSharedInfo(SI_DVD_MENU_TYPE);
switch (bMenuId)
{
case SV_TITLE_MENU:
if (bDom == SV_VMGM_DOM)
{
vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_TITLE_MENU, bTime);
}
break;
case SV_ROOT_MENU:
if (bDom == SV_VTSM_DOM)
{
vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_ROOT_MENU, bTime);
}
break;
case SV_SP_MENU:
case SV_AUDIO_MENU:
case SV_AGL_MENU:
case SV_PTT_MENU:
default:
break;
}
}
// *********************************************************************
// Function : void vDVDShowDomainInfo(void)
// Description : Show Menu type(DVD), show if in menu(VCD)
// Parameter : None
// Return : None
// *********************************************************************
void vDVDShowDomainInfo(void) large
{
BYTE bDom = bSharedInfo(SI_DVD_DOM);
switch (bDom)
{
case SV_FP_DOM:
break;
case SV_VMGM_DOM:
#ifndef DVD_SHOW_MENU_TIME
VfdShowStatus(VFD_STATUS_VMGM);
#endif
vDVDShowRemainMsg(FALSE);
vDVDShowPlayInfo(0);
#ifndef NEW_SHOW
vDVDShowTimeMark(TRUE);
#else
vShowTimeMark(TRUE);
#endif
break;
case SV_VTSM_DOM:
#ifndef DVD_SHOW_MENU_TIME
VfdShowStatus(VFD_STATUS_VTSM);
#endif
vDVDShowRemainMsg(FALSE);
vDVDShowPlayInfo(0);
#ifndef NEW_SHOW
vDVDShowTimeMark(TRUE);
#else
vShowTimeMark(TRUE);
#endif
break;
case SV_VTSTT_DOM:
VfdShowStatus(VFD_STATUS_VTSTT);
vDVDShowRemainMsg(FALSE);
vDVDShowPlayInfo(0);
#ifndef NEW_SHOW
vDVDShowTimeMark(TRUE);
#else
vShowTimeMark(TRUE);
#endif
break;
default:
break;
}
}
// *********************************************************************
// Function : void vDVDShowPlayInfo(BYTE bItem)
// Description :
// Parameter : None
// Return : None
// *********************************************************************
void vDVDShowPlayInfo(BYTE bItem) large
{
BYTE bTtNo = bSharedInfo(SI_TT_NO);
BYTE bTtNs = bSharedInfo(SI_TT_NS);
BYTE bChNo = bSharedInfo(SI_CHAP_NO);
BYTE bChNs = bSharedInfo(SI_CHAP_NS);
BYTE bType = bSharedInfo(SI_DISC_TYPE);
BYTE bState = bSharedInfo(SI_PBC_STATE);
if (bItem == PLAY_INFO_CLEAR)
{
vOsdPosClear(OSD_POS_PLAY_INFO);
return;
}
else if (bItem > 0) /* if called from RISC notification */
{
/* update VFD first */
if (fgIsDiscPlay(bState)
#ifdef DVD_DGST_SHOW_MSG_ONLY
&& (bSharedInfo(SI_USR_PBC_CTRL) != SV_USR_DIGEST)
#endif
)
{
if ((bSharedInfo(SI_DVD_DOM) == SV_VTSTT_DOM)
#ifdef SUPPORT_DVD_AUDIO
|| (bSharedInfo(SI_DVD_DOM) == SV_ATSTT_DOM)
#endif
)
{
VfdShowPlayInfo(VFD_INFO_TITLE_CHAPTER, bTtNo, bChNo);
}
}
}
/* update OSD */
if ((bTtNs == 0) || (bChNs == 0))
{
vOsdPosClear(OSD_POS_PLAY_INFO);
}
else /* if (!fgIsSearchInputState()) */ /* we have move the search info to layer 2 */
{
if (_rOsdStateCtx.bTimeType == OSD_SHOW_DISABLE)
{
#ifndef SEARCH_INPUT_SHOW
if ((bItem == 0) && fgIsUopRetOK(UOP_PTT_PLAY)) /* if called from UOP return */
{
vOsdShowChapterSearch(bTtNo, bTtNs, 2, bChNo, bChNs, OSD_TIMEOUT_SHORT);
}
else
#endif
{
vOsdPosClear(OSD_POS_PLAY_INFO);
}
}
else
{
if ((bSharedInfo(SI_DVD_DOM) == SV_VTSTT_DOM)
#ifdef SUPPORT_DVD_AUDIO
|| (bSharedInfo(SI_DVD_DOM) == SV_ATSTT_DOM)
#endif
)
{
if (_rOsdStateCtx.fgPlayInfoShow == TRUE)
{
vOsdShowTitleChapter(bTtNo, bTtNs, bChNo, bChNs, OSD_NO_DISAPPEAR);
}
else
{
#ifndef SEARCH_INPUT_SHOW
if (fgIsUopUpdate())
{
vOsdShowTitleChapter(bTtNo, bTtNs, bChNo, bChNs, IR_TIMEOUT_DISPLAY);
}
#endif
}
}
else
{
vOsdPosClear(OSD_POS_PLAY_INFO);
}
} /* if (_rOsdStateCtx.bTimeType != OSD_SHOW_DISABLE) */
} /* if (!fgIsSearchInputState()) */
}
#ifndef NEW_SHOW
// *********************************************************************
// Show trick mode
// *********************************************************************
void vDVDShowTrick(BYTE bState) large
{
BYTE bSpeed = bSharedInfo(SI_PBC_SPEED);
if ((bState == SV_FF) || (bState == SV_FR))
{
if (bSpeed >= DVD_FAST_MAX)
{
bSpeed = DVD_FAST_MAX - 1;
}
bSpeed = pbDVDFastDispTbl[bSpeed];
}
#if ((!defined DISABLE_SF) && (!defined DISABLE_SR))
else if ((bState == SV_SF) || (bState == SV_SR))
{
if (bSpeed >= DVD_SLOW_MAX)
{
bSpeed = DVD_SLOW_MAX - 1;
}
bSpeed = pbDVDSlowDispTbl[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;
}
}
/************************************************************************
Function :
Description :
Parameter :
Return :
************************************************************************/
void vDVDShowStopResumeState(void) large
{
/* show LOGO first */
vPlayerShowLogo(DVD_STOP_LOGO, DVD_LOGO_COLOR);
#if (STOP_RESUME_STYLE == STOP_RESUME_TWO_KEYS)
/* these message will be cleared by key map function */
vOsdPosShow(OSD_POS_STOP_MSG1, OSD_MSG_PLAY_KEY_RESTART, OSD_NO_DISAPPEAR);
vOsdPosShow(OSD_POS_STOP_MSG2, OSD_MSG_RESUME_KEY_CONTINUE, OSD_NO_DISAPPEAR);
#elif (STOP_RESUME_STYLE == STOP_RESUME_TWO_STOP)
/* this message will be cleared by key map function */
vOsdPosShow(OSD_POS_STOP_MSG1, OSD_MSG_PLAY_KEY_CONTINUE, OSD_NO_DISAPPEAR);
#endif /* STOP_RESUME_STYLE */
}
/************************************************************************
Function :
Description :
Parameter :
Return :
************************************************************************/
void vDVDShowStopState(void) large
{
/* show LOGO first */
vPlayerShowLogo(DVD_STOP_LOGO, DVD_LOGO_COLOR);
/* reset OSD play state show */
vOsdShowWb(OSD_WB_CLEAR);
vOsdShowPbcState(SV_STOP, 0, OSD_NO_DISAPPEAR);
#if 0
vDVDShowTimeMark(TRUE);
vOsdShowTitleChapter(bSharedInfo(SI_TT_NO), bSharedInfo(SI_TT_NS),
bSharedInfo(SI_CHAP_NO), bSharedInfo(SI_CHAP_NS),
OSD_NO_DISAPPEAR);
#endif
}
#endif /* #ifndef NEW_SHOW */
/************************************************************************
Function :
Description : recall all displayed information
Parameter :
Return :
************************************************************************/
void vDVDStatusDispRecall(void) large
{
vDVDShowDomainInfo();
vDVDShowRemainMsg(FALSE);
#ifndef NEW_SHOW
vDVDShowTimeMark(TRUE);
#else
vShowTimeMark(TRUE);
#endif
vDVDShowPlayInfo(bSIItemIndex(SI_CHAP_NO));
}
/************************************************************************
Function :
Description :
Parameter :
Return :
************************************************************************/
void vDVDChangeRemainType(BYTE bType) large
{
if (bType == OSD_SHOW_DISP_CHG_INIT)
{
#ifdef SUPPORT_DVD_AUDIO
vOsdPosShow(OSD_POS_REMAIN_MSG, pwDvdDispModeMsg[_rOsdStateCtx.bTimeType][bSharedInfo(SI_DISC_TYPE)], OSD_NO_DISAPPEAR);
#else
vOsdPosShow(OSD_POS_REMAIN_MSG, pwDvdDispModeMsg[_rOsdStateCtx.bTimeType], OSD_NO_DISAPPEAR);
#endif
vOsdShowTitleChapter(bSharedInfo(SI_TT_NO), bSharedInfo(SI_TT_NS),
bSharedInfo(SI_CHAP_NO), bSharedInfo(SI_CHAP_NS),
OSD_NO_DISAPPEAR);
}
else if (bType == OSD_SHOW_DISP_CHG_EXIT)
{
vOsdPosClear(OSD_POS_REMAIN_MSG);
vDVDShowPlayInfo(PLAY_INFO_CLEAR);
if (_rOsdStateCtx.fgRemainMsgShow == TRUE)
{
vDVDShowRemainMsg(FALSE);
}
if (_rOsdStateCtx.fgPlayInfoShow == FALSE)
{
vDVDShowPlayInfo(0);
}
}
else
{
_rOsdStateCtx.bTimeType = bType;
vDVDShowRemainMsg(TRUE);
vDVDShowPlayInfo(0);
}
#ifndef NEW_SHOW
vDVDShowTimeMark(TRUE);
#else
vShowTimeMark(TRUE);
#endif
}
#ifndef NEW_SHOW
/************************************************************************
Function :
Description :
Parameter :
Return :
************************************************************************/
BOOL fgDVDCheckSelectRange(BYTE bNum) large
{
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
if (fgIsDiscPlay(bPbcState) &&
(bSharedInfo(SI_HLI_STATE) == SV_ON) &&
(bNum >= bSharedInfo(SI_MENU_SEL_RNG_START)) &&
(bNum <= bSharedInfo(SI_MENU_SEL_RNG_END)))
{
return (TRUE);
}
else
{
return (FALSE);
}
}
#endif /* #ifndef NEW_SHOW */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -