📄 bbkmenu.c
字号:
#ifndef _BBKMENU_C
#define _BBKMENU_C
#include "bbkmenu.h"
#include "general.h"
#pragma NOAREGS
//efine DEBUG_BBKM
#ifdef DEBUG_BBKM
extern void DRS232LogS(char *pcStr);
extern void DRS232LogB(BYTE bV1, BYTE bV2, BYTE bV3, BYTE bV4);
#endif
#ifdef BBK_NEW_MENU
BYTE xdata bFocus;
BYTE xdata bPreFocus;
BIT _fgChangeFocus;
#ifdef MPEG4_TXT_SP// //Add by Tide@08-04-04
extern xdata BYTE _bSbStatus;
//extern xdata BYTE _bPressSbKey;
extern BOOL _bSetupResumeSub;
#endif
code WORD _pwSetBBKMenuCol[16] = {TRUECOLOR_GRAY, 0x92a9, 0xae24, 0xea10,
0xca42, 0x8d54,0x82ee,0x460f,
0x72cc,0x1210,0x960f,0x7210,
0xce28,0xd20f,0x25f1,0xb5f0
};
//****************************************************************************
void vEnterBBKMenu(void) large{
if (fgIsPcdPlay() || (fgIsIsoPlay() && fgFlCheckStatus(FL_STATUS_IN_JPEG)))
{
vSendUopCmd(UOP_PAUSE, 0x01, 0x01, 0x00);
}
#ifdef MPEG4_TXT_SP // //Add by Tide@08-04-04
{
if (_bSbStatus != 0xff)
{
if (_bSbStatus != 0)
{
if(bSharedInfo(SI_SPST_NS) > 0) // #ifdef SUPPORT_WAIXIAO
{
_bSetupResumeSub = 1;
vSendUopCmd(UOP_CHANGE_SPSTN, 0, 0, 0);
}
}
vDeleteWB(WB_MP4_SP);
}
}
#endif
vInitBBKMenu();
}
//****************************************************************************
BOOL fgBBKMenuState(BYTE bIrKey) large
{
BIT _fgUopRet = FALSE;
#ifdef DEBUG_LIKE
DRS232LogS("-n1-\n");
#endif
switch(bIrKey)
{
case IR_UP:
case IR_DOWN:
case IR_LEFT:
case IR_RIGHT:
_fgUopRet = bChangeFocus(bIrKey);
break;
case IR_ENTER:
case IR_PLAY_ENTER:
case IR_PLAY:
(BBKMenu[bFocus]->bFun)();
_fgUopRet = TRUE;
break;
case IR_EJECT:
case IR_MANUAL_EJECT:
case IR_POWER:
vExitBBKMenu();
_fgUopRet = FALSE;
break;
default:
_fgUopRet = TRUE;
}
return _fgUopRet;
}
//****************************************************************************
BYTE bChangeFocus(BYTE bIrKey)large
{
#ifdef DEBUG_LIKE
DRS232LogS("-n2-\n");
#endif
switch(bIrKey)
{
case IR_UP:
if(BBKMenu[bFocus]->bNevigation[0] < BBK_MENU_MAX) {
bPreFocus = bFocus;
bFocus = BBKMenu[bFocus]->bNevigation[0];
_fgChangeFocus = TRUE;
}
else
_fgChangeFocus = FALSE;
break;
case IR_DOWN:
if(BBKMenu[bFocus]->bNevigation[1] < BBK_MENU_MAX) {
bPreFocus = bFocus;
bFocus = BBKMenu[bFocus]->bNevigation[1];
_fgChangeFocus = TRUE;
}
else
_fgChangeFocus = FALSE;
break;
case IR_LEFT:
if(BBKMenu[bFocus]->bNevigation[2] < BBK_MENU_MAX) {
bPreFocus = bFocus;
bFocus = BBKMenu[bFocus]->bNevigation[2];
_fgChangeFocus = TRUE;
}
else
_fgChangeFocus = FALSE;
break;
case IR_RIGHT:
if(BBKMenu[bFocus]->bNevigation[3] < BBK_MENU_MAX) {
bPreFocus = bFocus;
bFocus = BBKMenu[bFocus]->bNevigation[3];
_fgChangeFocus = TRUE;
}
else
_fgChangeFocus = FALSE;
break;
default:
_fgChangeFocus = FALSE;
}
if(_fgChangeFocus) {
(BBKMenu[bPreFocus]->vOndraw)();
(BBKMenu[bFocus]->vOndraw)();
_fgChangeFocus = FALSE;
}
return 1;
}
//****************************************************************************
void vInitBBKMenu(void) large{
BYTE bTmp;
if (fgFlCheckStatus(FL_STATUS_IN_MENU)) {
// tmp
vPlayerShowLogo(DVD_STOP_LOGO, DVD_LOGO_COLOR);
vDisableWB(FSMENU_OSD_WBIDX_BASIC);
vDisableWB(FSMENU_INFO);
// wFlMnLeave();
}
//设顶状态量
_fgIsInBBKNewMenu = TRUE;
bFocus = BBK_MENU_ENTER_NORMAL_MENU;
vOsdShowWb(OSD_WB_DISABLE);
//create wb
vCreateWB(WB_BBK_NEW_MENU, TRUE);
//set wb color
for (bTmp=0; bTmp < 16; bTmp++)
{
vSetTcPal(WB_BBK_NEW_MENU, bTmp, BLEND_2, _pwSetBBKMenuCol[bTmp]);
}
//set wb trans
vSetTransEn(WB_BBK_NEW_MENU,2);
//画菜单
for(bTmp = 0; bTmp < BBK_MENU_MAX; bTmp ++) {
(BBKMenu[bTmp] -> vOndraw)();
}
//ENABLE WB
_rOsdStateCtx.fgSetupShow = TRUE;
vEnableWB(WB_BBK_NEW_MENU);
vOsdPasteBmpXY(0, 0, WB_BBK_NEW_MENU, BMP_LTCORNER);
vOsdPasteBmpXY(0, 383, WB_BBK_NEW_MENU, BMP_LBCORNER);
vOsdPasteBmpXY(544, 0, WB_BBK_NEW_MENU, BMP_RTCORNER);
vOsdPasteBmpXY(544, 383, WB_BBK_NEW_MENU, BMP_RBCORNER);
}
//****************************************************************************
void vExitBBKMenu(void) large{
BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE); // megaa patch 03/03/06
//删除白板
vDeleteWB(WB_BBK_NEW_MENU);
vOsdShowWb(OSD_WB_RESTORE);
if (fgFlCheckStatus(FL_STATUS_IN_MENU))
{
// tmp
//vSetSharedInfo(SI_JPG_DIGEST_BG, 2); //[runma] add line.
vPlayerShowLogo(ISO_STOP_LOGO, ISO_LOGO_COLOR);
vEnableWB(FSMENU_OSD_WBIDX_BASIC);
vEnableWB(FSMENU_INFO);
// refresh 3D processing item if it has been updated in setup menu
// - Move to fslist module
//vFlIpShowInfo(IP_INFO_REVERB, 0, 0);
}
// vResetIsoItemType(bItemType); // megaa patch 03/03/06
if (fgIsIsoPlay()||fgIsPcdPlay())
{
vISOFsMenuShow(FS_MENU_SHOW_REFRESH); /* recall FS menu */
}
#ifdef IR_SUPPORT_SHIFT_KEY
/* force use normal key table */
vSetShiftKeyMode(FALSE);
#endif
_rOsdStateCtx.fgSetupShow = FALSE;
//设定退出状态
vToProfessionMenu();
_fgIsInBBKNewMenu = FALSE;
#ifdef MPEG4_TXT_SP // //Add by Tide@08-04-04
{
if (_bSbStatus != 0xff)
{
vCreateWB(WB_MP4_SP, TRUE);
vSetWBTcColor(WB_MP4_SP);
vSetMsgCol4(WB_MP4_SP, 0, 0, 3, 2);
vSetPal(WB_MP4_SP, 1, BLEND_2, 0);
vSetTcPal(WB_MP4_SP, 0, BLEND_2, TRUECOLOR_BLACK);
vSetTransEn(WB_MP4_SP, 0);
vEnableWB(WB_MP4_SP);
if (_bSbStatus == 0xfe)
{
if(bSharedInfo(SI_SPST_NS) > 0) // #ifdef SUPPORT_WAIXIAO
{
if(bEepromReadByte(SP_LCD_POSITION) == 30)
vSendUopCmd(UOP_CHANGE_SPSTN, 0x00, 0, 0);
else
vSendUopCmd(UOP_CHANGE_SPSTN, 0x40, 0, 0);
_bSetupResumeSub = 1;
}
}
else if (_bSbStatus != 0)
{
if(bSharedInfo(SI_SPST_NS) > 0) // #ifdef SUPPORT_WAIXIAO
{
vSendUopCmd(UOP_CHANGE_SPSTN, _bSbStatus, 0, 0);
_bSetupResumeSub = 1;
}
}
// _bPressSbKey = 0;
}
}
#endif
}
//****************************************************************************
void vDrawBBKNormalMenu(void) large{
_wStartX = BBKMenuNormalMenu.wOriginX;
_wStartY = BBKMenuNormalMenu.wOriginY;
_wEndX = BBKMenuNormalMenu.wWidth + BBKMenuNormalMenu.wOriginX;
_wEndY = BBKMenuNormalMenu.wHeight + BBKMenuNormalMenu.wOriginY;
vPasteBmp(WB_BBK_NEW_MENU, BMP_BBK_COMMONT);
if(bFocus == BBKMenuNormalMenu.bComponentID)
vRectangle(WB_BBK_NEW_MENU, 4, 3, 0, 0);
}
//****************************************************************************
void vDrawBBKProfessionalMenu(void) large{
_wStartX = BBKMenuProfessionalMenu.wOriginX;
_wStartY = BBKMenuProfessionalMenu.wOriginY;
_wEndX = BBKMenuProfessionalMenu.wWidth + BBKMenuProfessionalMenu.wOriginX;
_wEndY = BBKMenuProfessionalMenu.wHeight + BBKMenuProfessionalMenu.wOriginY;
#ifndef NO_BMP
vPasteBmp(WB_BBK_NEW_MENU, BMP_BBK_ADVANCET);
#endif
if(bFocus == BBKMenuProfessionalMenu.bComponentID)
vRectangle(WB_BBK_NEW_MENU, 4, 3, 0, 0);
}
//****************************************************************************
void vDrawBBKEnterNormalMenu(void) large{
_wStartX = BBKMenuEnterNormalMenu.wOriginX;
_wStartY = BBKMenuEnterNormalMenu.wOriginY;
_wEndX = BBKMenuEnterNormalMenu.wWidth + BBKMenuEnterNormalMenu.wOriginX;
_wEndY = BBKMenuEnterNormalMenu.wHeight + BBKMenuEnterNormalMenu.wOriginY;
//bywhy 2003/06/26
#ifndef NO_BMP
#if 1//Vincent @11-15-03
if(bEepromReadByte(OSD_LANG_POSITION))
vPasteBmp(WB_BBK_NEW_MENU, BMP_BBK_COMMON);
else
#endif
vPasteBmp(WB_BBK_NEW_MENU, BMP_BBK_COMMONE);
#endif
if(bFocus == BBKMenuEnterNormalMenu.bComponentID)
vChgColRep(WB_BBK_NEW_MENU, 11, 4);
//vRectangle(WB_BBK_NEW_MENU, 4, 4, 0, 0);
}
//***************************************************************************
void vDrawBBKEnterProfessionalMenu(void) large{
_wStartX = BBKMenuEnterProfessionalMenu.wOriginX;
_wStartY = BBKMenuEnterProfessionalMenu.wOriginY;
_wEndX = BBKMenuEnterProfessionalMenu.wWidth + BBKMenuEnterProfessionalMenu.wOriginX;
_wEndY = BBKMenuEnterProfessionalMenu.wHeight + BBKMenuEnterProfessionalMenu.wOriginY;
//bywhy 2003/06/26
#ifndef NO_BMP
#if 1//Vincent @11-15-03 //consumer request--long@08/09/04
if(bEepromReadByte(OSD_LANG_POSITION))
vPasteBmp(WB_BBK_NEW_MENU, BMP_BBK_ADVANCE);
else
#endif
vPasteBmp(WB_BBK_NEW_MENU, BMP_BBK_ADVANCEE);
#endif
if(bFocus == BBKMenuEnterProfessionalMenu.bComponentID)
vChgColRep(WB_BBK_NEW_MENU, 11, 4);
//vRectangle(WB_BBK_NEW_MENU, 4, 4, 0, 0);
}
//****************************************************************************
void vDrawBBKExitBBKMenu(void) large{
_wStartX = BBKMenuExitBBKMenu.wOriginX;
_wStartY = BBKMenuExitBBKMenu.wOriginY;
_wEndX = BBKMenuExitBBKMenu.wWidth + BBKMenuExitBBKMenu.wOriginX;
_wEndY = BBKMenuExitBBKMenu.wHeight + BBKMenuExitBBKMenu.wOriginY;
//bywhy 2003/06/26
#ifndef NO_BMP
#if 1//Vincent @11-15-03
if(bEepromReadByte(OSD_LANG_POSITION))
vPasteBmp(WB_BBK_NEW_MENU, BMP_BBK_EXIT);
else
#endif
vPasteBmp(WB_BBK_NEW_MENU, BMP_BBK_EXITE);
#endif
if(bFocus == BBKMenuExitBBKMenu.bComponentID)
vChgColRep(WB_BBK_NEW_MENU, 11, 4);
//vRectangle(WB_BBK_NEW_MENU, 4, 4, 0, 0);
}
//****************************************************************************
void vEnterBBKNormalMenu(void)large{
//vExitBBKMenu();
vDeleteWB(WB_BBK_NEW_MENU);
vOsdShowWb(OSD_WB_RESTORE);
_rOsdStateCtx.fgSetupShow = FALSE;
//设定退出状态
_fgIsInBBKNewMenu = FALSE;
vToNormalMenu();
_bPlayPostKey = IR_SETUP;
}
//****************************************************************************
void vEnterBBKProfessionalMenu(void)large{
//vExitBBKMenu();
vDeleteWB(WB_BBK_NEW_MENU);
vOsdShowWb(OSD_WB_RESTORE);
_rOsdStateCtx.fgSetupShow = FALSE;
//设定退出状态
_fgIsInBBKNewMenu = FALSE;
vToProfessionMenu();
_bPlayPostKey = IR_SETUP;
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -