?? digest.c
字號(hào):
else
{
_rDigest.bCurItem = DGST_MENU_BTN_NEXT - 1;
}
}
else
{
_rDigest.bCurItem = bItem;
}
/* change state */
_rDigest.bState = DGST_STATE_MENU;
//PL00105506 2004-04-10 and risc\..\dvduser.c
vSetSharedInfo(SI_AGL_NO, 0);
vSetSharedInfo(SI_AGL_NS,1);
//vOsdPosHili(OSD_POS_HILI_SHOW, OSD_POS_DGST_BTN_1 + _rDigest.bCurItem, 0);
vOsdPosHili(OSD_POS_HILI_CLEAR, 0, 0);
#ifdef NUI_OSD_STYLE
vSetMsgCol4(WB_DGST_MENU, 15, 15, 2, 3);
#else
vSetMsgCol4(WB_DGST_MENU, 15, 15, 15, 3);
#endif
vSelButton(WB_DGST_MENU, _rDigest.bCurItem);
vOsdSetSt(OSD_ST_NML);//Gapha:When playback DVD,enter digest, the osd can't display completely at once.
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vDgstNextPage(void) large
{
if (_rDigest.fgNextValid == TRUE)
{
_rDigest.fgDispValid = FALSE;
fgDgstPlayControl(SV_DGST_NEXT, 0);
vOsdShowDgstMark(0, OSD_DGST_MARK_CLEAR, 0);
vDgstShowMenuPageButton();
vDgstDispInit(FALSE);
if ((_rDigest.bState == DGST_STATE_MENU) && (_rDigest.bCurItem == DGST_MENU_BTN_NEXT))
{
vDgstMenuGotoItem(DGST_MENU_BTN_NEXT);
}
else
{
vDgstMenuGotoItem(DGST_MENU_BTN_EXIT);
}
}
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vDgstPrevPage(void) large
{
if (_rDigest.fgPrevValid == TRUE)
{
_rDigest.fgDispValid = FALSE;
fgDgstPlayControl(SV_DGST_PREV, 0);
vOsdShowDgstMark(0, OSD_DGST_MARK_CLEAR, 0);
vDgstShowMenuPageButton();
vDgstDispInit(FALSE);
if ((_rDigest.bState == DGST_STATE_MENU) && (_rDigest.bCurItem == DGST_MENU_BTN_PREV))
{
vDgstMenuGotoItem(DGST_MENU_BTN_PREV);
}
else
{
vDgstMenuGotoItem(DGST_MENU_BTN_EXIT);
}
}
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vDgstMenuBtnActive(void) large
{
switch (_rDigest.bCurItem)
{
case DGST_MENU_BTN_PREV:
vDgstPrevPage();
break;
case DGST_MENU_BTN_EXIT:
vDgstMenuExit(TRUE);
_rDigest.bState = DGST_STATE_EXIT;
/* escape in fgDigestState() */
break;
case DGST_MENU_BTN_MENU:
vDgstDispExit();
vDgstMenuExit(TRUE);
if (_rDigest.fgResume == TRUE)
{
_rDigest.bState = DGST_STATE_RESUME;
vDgstResumeInit(TRUE);
}
else
{
vDgstTypeInit(TRUE);
}
break;
case DGST_MENU_BTN_NEXT:
vDgstNextPage();
break;
}
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vDgstMenuInit(BYTE fgInit) large
{
if (fgInit == TRUE)
{
/* initial variables */
_rDigest.fgDispValid = FALSE;
_rDigest.bSelNoMax = bSharedInfo(SI_USR_DIGEST_NS);
_rDigest.bPageNo = 0;
#ifdef ALL_WB_USE_TRUECOLOR
vCreateWB(WB_DGST_MENU, TRUE);
vSetWBTcColor(WB_DGST_MENU);
#else
vCreateWB(WB_DGST_MENU, FALSE);
#endif
#ifdef NUI_OSD_STYLE
vSetMsgCol4(WB_DGST_MENU,0,0,2,3); // 2 is the theme_fontoutline_color
#endif
//alfonso
#ifdef MPS_DIGEST
#ifdef MPEG4_TXT_SP
if (fgIsIsoPlay()) {
vSetFsCodePage(CODE_PAGE_MENU);
vDeleteWB(WB_MP4_SP);
}
#endif /* MPEG4_TXT_SP */
#endif /* MPS_DIGEST */
vDgstShowMenuPageType();
vOsdShowDgstMenuSelect(1, _rDigest.bSelNoMax, 0, 0); /* show select range, no hili */
vDgstShowMenuPageButton();
#ifdef IR_SUPPORT_SHIFT_KEY
if (fgIsKeyTblShift())
{
vSetShiftKeyMode(TRUE);
}
else /* normal key table */
{
vSetShiftKeyMode(FALSE);
}
#endif /* IR_SUPPORT_SHIFT_KEY */
vDgstDispInit(TRUE);
/* chnage OSD mode to full screen mode */
vOsdShowWb(OSD_WB_FULL_SCR);
/* original enable WB in osdcore.c, now enable it here */
vEnableWB(WB_DGST_DISP1);
vEnableWB(WB_DGST_DISP1A);
vEnableWB(WB_DGST_DISP2);
vEnableWB(WB_DGST_DISP2A);
vEnableWB(WB_DGST_MENU);
}
vDgstMenuGotoItem(DGST_MENU_BTN_EXIT);
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vDgstMenuExit(BYTE fgResume) large
{
if (fgResume)
{
fgDgstPlayControl(SV_DGST_RESUME, 0);
}
vDeleteWB(WB_DGST_MENU);
//alfonso
#ifdef MPS_DIGEST
#ifdef MPEG4_TXT_SP
if (fgIsIsoPlay()) {
vSetFsCodePage(0);
vCreateWB(WB_MP4_SP, TRUE);
vSetWBTcColor(WB_MP4_SP);
vSetMsgCol4(WB_MP4_SP, 0, 0, 0, 2);
vSetTransEn(WB_MP4_SP, 0);
vEnableWB(WB_MP4_SP);
}
#endif /* MPEG4_TXT_SP */
#endif /* MPS_DIGEST */
/* restore OSD mode */
vOsdShowWb(OSD_WB_RESTORE);
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
BOOL fgDgstMenuState(void) large
{
BOOL fgRet = TRUE;
switch (_bIRKey)
{
case IR_UP:
{
vDgstNumInit(FALSE);
break;
}
case IR_DOWN:
if (_rDigest.fgDispValid)
{
/* change to display state */
vDgstMenuBtnUnsel(DGST_STATE_DISP);
vDgstDispGotoItem(0);
}
break;
case IR_LEFT:
if (_rDigest.bCurItem > 0)
{
vDgstMenuGotoItem(_rDigest.bCurItem - 1);
}
break;
case IR_RIGHT:
if (_rDigest.bCurItem < DGST_MENU_BTN_MAX - 1)
{
vDgstMenuGotoItem(_rDigest.bCurItem + 1);
}
break;
case IR_ENTER:
case IR_PLAY:
case IR_PLAY_ENTER:
case IR_PLAY_PAUSE:
{
vDgstMenuBtnActive();
break;
}
case IR_NEXT:
vDgstNextPage();
break;
case IR_PREV:
vDgstPrevPage();
break;
case IR_TIME_OUT:
vSetExitInputState();
break;
default:
{
if (_bIRKey <= IR_ADD10 || _bIRKey == IR_ADD5) // megaa ADD5
{
vDgstNumInit(TRUE);
fgRet = fgDgstNumState();
}
else
{
fgRet = FALSE;
}
break;
}
} /* switch (_bIRKey) */
return (fgRet);
}
// *********************************************************************
// Display Select Sub-state Functions
// *********************************************************************
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vDgstDispGotoItem(BYTE bItem)
{
BYTE bType;
if (bItem >= _rDigest.bPageItemMax)
{
bItem = _rDigest.bPageItemMax - 1;
}
switch(_rDigest.bType)
{
case DGST_TYPE_TRACK:
case DGST_TYPE_TITLE:
case DGST_TYPE_CHAPTER:
case DGST_TYPE_BOOKMARK:
case DGST_TYPE_PROGRAM:
#ifdef SUPPORT_DVD_AUDIO
case DA_DGST_TYPE_GROUP:
case DA_DGST_TYPE_TRACK:
case DA_DGST_TYPE_BOOKMARK:
#endif
bType = OSD_DGST_MARK_NO;
break;
case DGST_TYPE_TIME_DISC:
case DGST_TYPE_TIME_TRK:
#ifdef SUPPORT_DVD_AUDIO
case DA_DGST_TYPE_TIME_GRP:
case DA_DGST_TYPE_TIME_TRK:
#endif
bType = OSD_DGST_MARK_TIME2;
break;
case DGST_TYPE_TIME_TTL:
case DGST_TYPE_TIME_PTT:
bType = OSD_DGST_MARK_TIME3;
break;
#if 0
case DA_DGST_TYPE_INDEX:
case DA_DGST_TYPE_SPOTLIGHT:
#endif
case DGST_TYPE_STROBE:
default:
bType = OSD_DGST_MARK_NONE;
break;
}
if (bType != OSD_DGST_MARK_NONE)
{
vOsdShowDgstMark(bItem, bType | OSD_DGST_MARK_HILI, 0);
}
/* change state */
_rDigest.bState = DGST_STATE_DISP;
_rDigest.bCurItem = bItem;
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vDgstDispInit(BYTE fgInit) large
{
BYTE bIdx;
/* the white board has been created in vDgstMenuInit(), just show hili */
if (fgInit == TRUE)
{
#ifdef ALL_WB_USE_TRUECOLOR
vCreateWB(WB_DGST_DISP1, TRUE);
vSetWBTcColor(WB_DGST_DISP1);
vSetTcPal(WB_DGST_DISP1, 1, BLEND_2, TRUECOLOR_BLACK);
vCreateWB(WB_DGST_DISP1A, TRUE);
vSetWBTcColor(WB_DGST_DISP1A);
vSetTcPal(WB_DGST_DISP1A, 1, BLEND_2, TRUECOLOR_BLACK);
#else
vCreateWB(WB_DGST_DISP1, FALSE);
vSetPal(WB_DGST_DISP1, 1, BLEND_2, 0);
vCreateWB(WB_DGST_DISP1A, FALSE);
vSetPal(WB_DGST_DISP1A, 1, BLEND_2, 0);
#endif
#ifdef NUI_OSD_STYLE
vSetMsgCol4(WB_DGST_DISP1, 0, 1, 1, 3);
#else
vSetMsgCol4(WB_DGST_DISP1, 0, 0, 1, 3);
#endif
vSetTransEn(WB_DGST_DISP1, 0);
vClearWB(WB_DGST_DISP1);
vSetMsgCol4(WB_DGST_DISP1A, 0, 0, 1, 3);
vSetTransEn(WB_DGST_DISP1A, 0);
vClearWB(WB_DGST_DISP1A);
#ifdef ALL_WB_USE_TRUECOLOR
vCreateWB(WB_DGST_DISP2, TRUE);
vSetWBTcColor(WB_DGST_DISP2);
vSetTcPal(WB_DGST_DISP2, 1, BLEND_2, TRUECOLOR_BLACK);
vCreateWB(WB_DGST_DISP2A, TRUE);
vSetWBTcColor(WB_DGST_DISP2A);
vSetTcPal(WB_DGST_DISP2A, 1, BLEND_2, TRUECOLOR_BLACK);
#else
vCreateWB(WB_DGST_DISP2, FALSE);
vSetPal(WB_DGST_DISP2, 1, BLEND_2, 0);
vCreateWB(WB_DGST_DISP2A, FALSE);
vSetPal(WB_DGST_DISP2A, 1, BLEND_2, 0);
#endif
#ifdef NUI_OSD_STYLE
vSetMsgCol4(WB_DGST_DISP2, 0, 1, 1, 3);
#else
vSetMsgCol4(WB_DGST_DISP2, 0, 0, 1, 3);
#endif
vSetTransEn(WB_DGST_DISP2, 0);
vClearWB(WB_DGST_DISP2);
vSetMsgCol4(WB_DGST_DISP2A, 0, 0, 1, 3);
vSetTransEn(WB_DGST_DISP2A, 0);
vClearWB(WB_DGST_DISP2A);
/* enable WB in vDgstMenuInit() */
}
if (_rDigest.bSelNoMax >= (_rDigest.bPageNo + 1) * DGST_VIEW_NS)
{
_rDigest.bPageItemMax = DGST_VIEW_NS;
}
else
{
_rDigest.bPageItemMax = _rDigest.bSelNoMax - _rDigest.bPageNo * DGST_VIEW_NS;
}
// Hack code, show all mark at the same time
vOsdSetSt(OSD_ST_BURST);
for (bIdx = 0; bIdx < _rDigest.bPageItemMax; bIdx++)
{
vDgstShowDispMark(bIdx);
}
// Hack code
vOsdSetSt(OSD_ST_NML);
/* vDgstDispGotoItem(0); */
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vDgstDispExit(void) large
{
vDeleteWB(WB_DGST_DISP1);
vDeleteWB(WB_DGST_DISP2);
vDeleteWB(WB_DGST_DISP1A);
vDeleteWB(WB_DGST_DISP2A);
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
BOOL fgDgstDispState(void) large
{
BOOL fgRet = TRUE;
switch (_bIRKey)
{
case IR_UP:
if (_rDigest.bCurItem >= DGST_COL_NS)
{
vDgstDispGotoItem(_rDigest.bCurItem - DGST_COL_NS);
}
break;
case IR_LEFT:
if (_rDigest.bCurItem > 0)
{
vDgstDispGotoItem(_rDigest.bCurItem - 1);
}
break;
case IR_RIGHT:
if (_rDigest.bCurItem + 1 < _rDigest.bPageItemMax)
{
vDgstDispGotoItem(_rDigest.bCurItem + 1);
}
break;
case IR_DOWN:
if (_rDigest.bCurItem + DGST_COL_NS < _rDigest.bPageItemMax)
{
vDgstDispGotoItem(_rDigest.bCurItem + DGST_COL_NS);
}
else
{
#ifdef HILI_USE_OSD
// - clear digest disp osd.
if (bSharedInfo(SI_NTSC_PAL) == SV_NTSC)
{
vOsdPosHili(OSD_POS_HILI_CLEAR, OSD_POS_NTSC_DGST_MARK_1, 0);
vOsdPosHili(OSD_POS_HILI_CLEAR, OSD_POS_NTSC_DGST_MARK_4, 0);
}
else
{
vOsdPosHili(OSD_POS_HILI_CLEAR, OSD_POS_PAL_DGST_MARK_1, 0);
vOsdPosHili(OSD_POS_HILI_CLEAR, OSD_POS_PAL_DGST_MARK_4, 0);
}
#endif
vDgstNumInit(FALSE);
}
break;
case IR_NEXT:
vDgstNextPage();
break;
case IR_PREV:
vDgstPrevPage();
break;
case IR_ENTER:
case IR_PLAY:
case IR_PLAY_ENTER:
case IR_PLAY_PAUSE:
{
if (fgDgstPlayControl(SV_DGST_PLAY, _rDigest.bCurItem + _rDigest.bPageNo * DGST_VIEW_NS + 1) == TRUE)
{
vDgstDispExit();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -