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

📄 upg.c

📁 手机8032的完整代码。吐血推荐。小做改动就可以生产。
💻 C
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 08-05-22 13:39    $       ****************/
/***************  $Revision:: 1                $       ****************/
/***************                                       ****************/
/***************   Description : Setup ADSP            ****************/
/***************                 relative routine      ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer : Peter Huang           ****************/
/**********************************************************************/

#include "general.h"
#include "..\..\common\dsp\dspshm.h"

#pragma NOAREGS
#if (defined(AUTO_SWITCH_USB_MCR)||defined(AUTO_SWITCH_USB_MCR2))
extern BYTE xdata  _bSwitchUSBMCRFlag ;
extern  BOOL _fgAutoSwitchEnable;
extern BYTE xdata _bInswitchStateCnt;
#endif

#ifdef CANCEL_UPG_SWITCH_TO_DVD
BOOL  _fgSwitchtoDVDEnable;
BOOL _fgInUpgradeState;
#endif 
#ifdef SUPPORT_ONEKEY_SWITCH_USB_MCR
extern BYTE xdata _bUSBMCRIdx;

#endif
#ifdef DISC_UPDATE_CODE

// *********************************************************************
// Function : void vUpgInit(BYTE fgInit)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
void vUpgInit(BYTE fgInit) large
{
  /* chnage OSD mode to user mode */
  //vOsdShowWb(OSD_WB_USER);
  vOsdShowWb(OSD_WB_DISABLE);
#if (defined(AUTO_SWITCH_USB_MCR)||defined(AUTO_SWITCH_USB_MCR2)) //for PL00108256 ,when in upgrade state,we do not allow to switch DEV.
_bSwitchUSBMCRFlag = 0x3F;  
#endif
#if (DRAM_SZ == DRAM_2M) || defined(USE_DRAM_CFG1)
  vOsdSetMemBlk(OSD_MEM_BLK_DYNAMIC, OSD_MEM_DEFAULT);
#endif  

#ifdef ALL_WB_USE_TRUECOLOR
  vCreateWB(WB_UPG, TRUE);
  vSetWBTcColor(WB_UPG);
#else
  vCreateWB(WB_UPG, FALSE);
#endif
  vEnableWB(WB_UPG);
  vDrawBorderWB(WB_UPG, 0);
  vSetMsgCol4(WB_UPG, 0, 0, 0, 3);

  vOsdPosPaste(OSD_POS_UPG_HEAD, OSD_MSG_UPG_DET);
  vOsdPosPaste(OSD_POS_UPG_DES, OSD_MSG_UPGRADE);
  vOsdPosPaste(OSD_POS_UPG_PLAY, OSD_MSG_PLAY_KEY_START);
#ifdef CANCEL_UPG_SWITCH_TO_DVD
  _fgSwitchtoDVDEnable = FALSE;
_fgInUpgradeState = TRUE;
#endif 
}

// *********************************************************************
// Function : BOOL fgUpgState(void)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BOOL fgUpgState(void) large
{
  switch(_bIRKey)
  {
    case IR_ENTER:
    case IR_PLAY:
    case IR_PLAY_ENTER:
    case IR_PLAY_PAUSE:
    //
      vWriteDspSharedDInfo(D_LEVEL_THRESHOLD, 0xffffE);
    //
      vOsdPosPaste(OSD_POS_UPG_RES, OSD_MSG_FILE_COPY);
#ifdef VFDMSG_upg
      VfdMsgDirect(VFDMSG_upg);
#endif
      vSendUopCmd(UOP_PLAY, 0, 0, 0);
      break;
    default:
      vOsdPosPaste(OSD_POS_UPG_RES, OSD_MSG_CANCEL_UPG);
	 if(bSharedInfo(SI_DEVICE_ID) == SV_DEVID_CDVDROM)
   	{
        vSendUopCmd(UOP_OPEN_CLOSE, 0, 0, 0);
   	}
  #ifdef CANCEL_UPG_SWITCH_TO_DVD
      else if(bSharedInfo(SI_DEVICE_ID)!= SV_DEVID_CDVDROM)
	   	{
                 _fgSwitchtoDVDEnable = TRUE;
	 	  vSetSharedInfo(SI_UPGRADE_ST, SV_UPG_CANCEL);
       	 vSendUopCmd(UOP_CHG_DEV, SV_ASSIGN_DEV, SV_DEVID_CDVDROM, 0);  //danvar070921
          #ifdef SUPPORT_ONEKEY_SWITCH_USB_MCR
        	 _bUSBMCRIdx = SV_DEVID_CDVDROM;
          #endif 
	   	}
      	
  #endif 	
      vSetExitInputState();
  }

  return(TRUE);
}

// *********************************************************************
// Function : void vUpgExit(void)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
void vUpgExit(void) large
{
  vDeleteWB(WB_UPG);

#if (DRAM_SZ == DRAM_2M) || defined(USE_DRAM_CFG1)
 vOsdSetMemBlk(OSD_MEM_BLK_STATIC, OSD_MEM_DEFAULT);
#endif  
#if 0 //def CANCEL_UPG_SWITCH_TO_DVD
   if (_fgSwitchtoDVDEnable == TRUE)
   	{
   	
   	 vSendUopCmd(UOP_CHG_DEV, SV_ASSIGN_DEV, SV_DEVID_CDVDROM, 0);  //danvar070921
     #ifdef SUPPORT_ONEKEY_SWITCH_USB_MCR
        	 _bUSBMCRIdx = SV_DEVID_CDVDROM;
     #endif 
   	}

#endif 

#if (defined(AUTO_SWITCH_USB_MCR)||defined(AUTO_SWITCH_USB_MCR2))
_bSwitchUSBMCRFlag = 0;
_fgAutoSwitchEnable = FALSE;
_bInswitchStateCnt = 0;
#endif
  /* restore OSD mode */
  vOsdShowWb(OSD_WB_RESTORE);
#ifdef CANCEL_UPG_SWITCH_TO_DVD
   if (_fgSwitchtoDVDEnable == TRUE)
   	{
   	_fgSwitchtoDVDEnable = FALSE;

   	}
   _fgInUpgradeState = FALSE;

   #endif
}

// *********************************************************************
// Function : void vUpgShowState(BYTE bState)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
void vUpgShowState(BYTE bState) large
{
  switch (bState)
  {
    case SV_FILE_EXIST:
      fgSetPlayPostKey(IR_UPG);
      break;
    case SV_COPY_RETRY:
      vOsdPosPaste(OSD_POS_UPG_RES, OSD_MSG_RETRY_COPY);
      break;
    case SV_CHKSUM_OK:
      vSendUopCmd(UOP_PLAY, 0, 0, 0);    
      #ifdef DISC_UPG_RESET_DEFAULT
      fgEepromWriteByte(RESET_POSITION, SV_ON);
      #endif
      vOsdPosPaste(OSD_POS_UPG_RES, OSD_MSG_UPGRADING);
      break;
    case SV_CHKSUM_ERR:
      vOsdPosPaste(OSD_POS_UPG_RES, OSD_MSG_CHKSUM_ERR);
      break;
  }
}

#else /* not define DISC_UPDATE_CODE */

void vUpgExit(void) large { return; }
BOOL fgUpgState(void) large { return (FALSE); }
void vUpgInit(BYTE fgInit) large { return; }

#endif /* DISC_UPDATE_CODE */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -