⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bbkmenu.c

📁 MTK 1389e版 MINI组合音响代码
💻 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 + -