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

📄 smsmenu.c

📁 mtk1389L latest sourcecode enjoy
💻 C
📖 第 1 页 / 共 3 页
字号:
    case SV_FF:
  #ifdef TRICK_MODE_USE_PLAY
      vSendUopCmd(UOP_PLAY, 0, 0, 0);
  #else
      vSendUopCmd(UOP_FORWARD, SV_FAST, 0, 0);
  #endif
      break;

    case SV_SF:
  #ifdef TRICK_MODE_USE_PLAY
      vSendUopCmd(UOP_PLAY, 0, 0, 0);
  #else
      vSendUopCmd(UOP_FORWARD, SV_SLOW, 0, 0);
  #endif
      break;

    case SV_FR:
  #ifdef TRICK_MODE_USE_PLAY
      vSendUopCmd(UOP_PLAY, 0, 0, 0);
  #else
      vSendUopCmd(UOP_REVERSE, SV_FAST, 0, 0);
  #endif
      break;

    case SV_SR:
  #ifdef TRICK_MODE_USE_PLAY
      vSendUopCmd(UOP_PLAY, 0, 0, 0);
  #else
      vSendUopCmd(UOP_REVERSE, SV_SLOW, 0, 0);
  #endif
      break;

    case SV_FREEZE:
    case SV_DIGEST9:
    case SV_DIGEST4:
    case SV_DIGEST:
    case SV_STILL:
    default:
      break;
  }

}
#endif

extern BYTE xdata _bIsSetupMenuShow;
static void vSmsInitState(void) large
{
  WORD i;
  _bIsSetupMenuShow = TRUE;
#ifdef PLAYER_FLMENU
  if (fgFlCheckStatus(FL_STATUS_IN_MENU))
  {
    vOsdSetSt(OSD_ST_BURST);
    vDisableWB(FSMENU_OSD_WBIDX_BASIC);
    vDisableWB(FSMENU_INFO);
    vOsdSetSt(OSD_ST_NML);
  }
#endif
  vSetSmsMenuShow(TRUE);
  vSendUopCmd(UOP_CHG_DEV, SV_MODE_MENU, SV_ON, 0);

  vOsdSetSt(OSD_ST_BURST);
  vOsdShowWb(OSD_WB_DISABLE);
/*
  In some case, It will cause some OSD noise. So delay little time.
*/
  for(i = 0; i < 0x2000; i++)
  {
    _nop_();
    _nop_();
    _nop_();
    _nop_();
  }
  vCreateWB(WB_SETUP_ITEM, TRUE);
  vSetWBTcColor(WB_SETUP_ITEM);
  vSetTransEn(WB_SETUP_ITEM, 0);
  vEnableWB(WB_SETUP_ITEM);
  vOsdSetSt(OSD_ST_NML);

#ifdef SMS_MENU_TIMER_DISAPPEAR //yan 070409
  _fgSmsMoveCur = FALSE;
  _bSmsCounter = SMS_COUNTER_NUM;
#endif
  _bSmsStat = 0;
  _bSmsItem = 0;
  _bMainMenuItemNs = bGetDevItemNs();
 //mod by msz00107 for bug PL00103538 on 07/02/06
 #ifdef SMSUI_FOR_MULTI_PARTITION_FAT
  _bSubMenuItemNs = bGetEmdMcrNs(SI_MCR_ATTACH) + bGetCurHardDiscNs();
 #else 
  _bSubMenuItemNs = bGetEmdMcrNs(SI_EMD_ATTACH) + bGetEmdMcrNs(SI_MCR_ATTACH);
 #endif
  _bSubMenuShowItem1st = 0;
  _bItemUop = SV_DEVID_CDVDROM;
  vSmsGetPosi();

  vSetSmsStat(SMS_STAT_MAIN);
  vSetSmsItem(0);

  vSmsDrawView();
  vSmsDrawMenu();
 //mod by msz00107 for bug PL00103538 on 07/02/06
 #ifdef SMSUI_FOR_MULTI_PARTITION_FAT
  _bEmdAttachBuf = ((bSharedInfo(SI_EMD_DRIVE_0) >> SV_MCR_TOTAL_NS) | 
                                  (bSharedInfo(SI_EMD_DRIVE_1) << SV_MCR_TOTAL_NS));
 #else
  _bEmdAttachBuf = bSharedInfo(SI_EMD_ATTACH);
 #endif
  _bMcrAttachBuf = bSharedInfo(SI_MCR_ATTACH);
  _bSmsReflashTime = 0;

#ifdef SMS_MENU_PAUSE_PLAY //yan 070409
  vSmsPauseUop();
  _fgDeviceCHG = FALSE;
#endif
}


void vSmsMenuInit(void) large
{
  if (bSharedInfo(SI_OSD_CMD_BUF_FULL) == TRUE)
  {
    SMS_DBGLogS("\nSI_OSD_CMD_BUF_FULL\n");
    vSetExitInputState();
    return;
  }
  if(bSharedInfo(SI_DEVMNG_MENU_ITEM) == 0)
  {
    vSetExitInputState();
    return;
  }

  vSmsInitState();
}


BOOL fgSmsMenuState(void) large
{
  BOOL fgRet = FALSE;

  switch(_bIRKey)
  {
    case IR_UP:
    {
      fgRet = fgSmsUpKey();
      break;
    }
    case IR_DOWN:
    {
      fgRet = fgSmsDownKey();
      break;
    }
    case IR_LEFT:
    {
      fgRet = fgSmsLeftKey();
      break;
    }
    case IR_RIGHT:
    {
      fgRet = fgSmsRightKey();
      break;
    }
    case IR_PLAY:
    case IR_ENTER:
    case IR_PLAY_ENTER:
    {
      if((_bEjectCMDStatus == TRAY_DOING_EJECT)&&(_bTrayStatus == TRAY_ST_IN))	  // key invalid when traying out 	
        _bIRKey = IR_NONE;
      else  
        fgRet = fgSmsEnterKey();
      break;
    }
    case IR_MUTE:
    {
//	_bItemUop = bSharedInfo(SI_DEVICE_ID);	  //add by mengzhg 
	_bItemUop = SV_DEVID_INVALID;
      vSmsMenuClose();
      fgRet = TRUE;
      break;
    }
    case IR_POWER:
    {
      vSmsMenuClose();
      break;
    }
    default:
    {
    #ifndef SMS_MENU_TIMER_DISAPPEAR //yan 070409
      fgRet = TRUE;
    #else
      _bIRKey = IR_NONE;
    #endif
      break;
    }
  }

  #ifdef SMS_MENU_TIMER_DISAPPEAR //yan 070409
  if(fgRet && fgIsInSmsMenuShow())
  {
    if( (bEepromReadByte(SW_MENU_TIME_SW_POSITION) == SV_ON) && (_bSmsPower1stOn < 2) && !_fgSmsMoveCur)
    {
      _fgSmsMoveCur = TRUE;
      _bSmsCounter = SMS_COUNTER_NUM;
      vSmsClrMenu();
      vSmsGetPosi();
      vSmsDrawView();
      vSmsDrawMenu();
    }
  }
  #endif

  return fgRet;
}


void vSmsMenuClose(void) large
{
  _bIsSetupMenuShow = FALSE;
  
  vOsdSetSt(OSD_ST_BURST);
  
  if (fgFlCheckStatus(FL_STATUS_IN_MENU))  
  {
     vDeleteWB(WB_OVERLAY_MSG1);
  }
       
  vDeleteWB(WB_SETUP_ITEM);       
  vOsdSetSt(OSD_ST_NML);
  
  vOsdPosClear(OSD_POS_PLAY_STATUS);
  vOsdShowWb(OSD_WB_RESTORE);

  vSetSmsMenuShow(FALSE);
  vSendUopCmd(UOP_CHG_DEV, SV_MODE_MENU, SV_OFF, 0);

  vSetExitInputState();
#ifdef SUPPORT_SACD
  if ((IS_SACD_TYPE() && fgIsIsoPlay()) ||
     (bSharedInfo(SI_SACD_PRIO) != SV_SACD_CD && fgIsCddaPlay() && _fgHybridSACD))
  {
    vSwitchSacdDir();
  }
#endif
#ifdef PLAYER_FLMENU
  if (fgFlCheckStatus(FL_STATUS_IN_MENU))
  {
  #ifndef MT1379_MANUFACTURE_TEST
    vPlayerShowLogo(ISO_STOP_LOGO, ISO_LOGO_COLOR);
  #endif
   #if 1 //xinzhen add 1128
  if ((_bItemUop == bSharedInfo(SI_DEVICE_ID) &&( bSharedInfo(SI_DEVICE_ID) == SV_DEVID_CDVDROM))
      ||(_bItemUop == SV_DEVID_INVALID) || (_bIRKey == IR_EJECT))
  #endif
  	{
    vEnableWB(FSMENU_OSD_WBIDX_BASIC);
    vEnableWB(FSMENU_INFO);
  #ifdef WB_ALLOC_MIN
    vFlRecover();
  #endif
  	}
  }
#endif

#ifdef SUPPORT_DVBT
  if (fgIsDvbtPlay() && (bDVBTGetChNs() != 0))
  {
    vShowNoSignalBox();
  }
#endif

  if(bSharedInfo(SI_PBC_STATE) == SV_STOP_RESUME)
  {
    vShowPbcState(SV_STOP_RESUME);
  }

  vSmsPowerOnChgDevice();
  
 if(bSharedInfo(SI_USR_PROGRAM_TYPE) != SV_PROGRAM_NONE_ITEM)  
 { 
     vSetSharedInfo(SI_USR_PROGRAM_TYPE, SV_PROGRAM_NONE_ITEM); 
 }
}


void vSmsMenuExit(void) large
{
  if(fgIsInSmsMenuShow())
  {
    vSmsMenuClose();
  }
#ifndef PLAYER_BASIC
  if ((fgIsIsoPlay() || fgIsPcdPlay()))
  {
    if((_bItemUop == bSharedInfo(SI_DEVICE_ID)) &&( bSharedInfo(SI_DEVICE_ID) == SV_DEVID_CDVDROM))//added "if" condition by msz00049 for CR PL00105940
    {
     vISOFsMenuShow(FS_MENU_SHOW_REFRESH); /* recall FS menu */
    }
  }
#endif

  if (_bItemUop != SV_DEVID_CDVDROM)
  {
    vDelBmp();
  }

#ifdef SMS_MENU_PAUSE_PLAY //yan 070409
  if(_fgDeviceCHG == TRUE)
  	{
	_fgDeviceCHG = FALSE;	
  	}
  else 
  	{
	  	if( bSharedInfo(SI_DEVICE_ID) == SV_DEVID_TVD)
	  	{
	  	    AudioSwitchExt(TRUE);
	  	    vSendUopCmd(UOP_PAUSE, 0, 0, SV_SMS_EXIT);	
	  	}
	      else
	          vSmsPauseExit();
  	}
#endif
}


void vSmsPowerOnChgDevice(void) large
{
  if(1 == _bSmsPower1stOn)
  {
    if(SV_DEVID_INVALID == _bItemUop)
    {
      _bItemUop = SV_DEVID_CDVDROM;
    }
    vSendUopCmd(UOP_CHG_DEV, SV_ASSIGN_DEV, _bItemUop, 0);
    _bSmsPower1stOn = 2;
  }
}


void vSmsReflashSubMenu(void) large
{
      BYTE bPartitionNum = 0;
 //mod by msz00107 for bug PL00103538 on 07/02/06
 #ifdef SMSUI_FOR_MULTI_PARTITION_FAT
  _bSubMenuItemNs = bGetEmdMcrNs(SI_MCR_ATTACH) + bGetCurHardDiscNs();
 #else 
  _bSubMenuItemNs = bGetEmdMcrNs(SI_EMD_ATTACH) + bGetEmdMcrNs(SI_MCR_ATTACH);
 #endif
  if(_bSubMenuItemNs > 0)
  {
    if(fgChkSmsStat(SMS_STAT_SUB) || (fgChkSmsStat(SMS_STAT_MAIN) && fgChkSmsMainItem(SMS_MAIN_ITEM_RVMEDIA)))
    {
      vSmsClrSubMenu();
      vSmsDrawSubMenu();
      if(fgChkSmsStat(SMS_STAT_SUB))
      {
        _bSubMenuShowItem1st = 0;
        vSetSmsItem(_bSubMenuShowItem1st);
        vSmsHiliSubItem(bGetSmsItem(), SMS_HILI_ON | SMS_HILI_EN);
      }
    }
  }
  else if(fgChkSmsStat(SMS_STAT_SUB))
  {
    _bSubMenuShowItem1st = 0;
    vRstSmsStat();
    vRstSmsItem();
    vSmsHiliMainItem(bGetSmsItem(), SMS_HILI_ON | SMS_HILI_EN);
    vSmsClrSubMenu();
    vSmsDrawSubMenu();    
  }
  else if(fgChkSmsStat(SMS_STAT_MAIN))
  {
    vSmsClrSubMenu();
    if(fgChkSmsMainItem(SMS_MAIN_ITEM_RVMEDIA))
    {
      vSmsDrawSubMenu();
    }
  }
}


void vSmsMenuTimer(void) large
{
  if(fgIsInSmsMenuShow())
  {
#ifdef SMS_MENU_TIMER_DISAPPEAR //yan 070409
    if( (bEepromReadByte(SW_MENU_TIME_SW_POSITION) == SV_ON) && (_bSmsPower1stOn < 2) && !_fgSmsMoveCur)
    {
      if(_bSmsCounter != 0)
      {
        _bSmsCounter--;
        if(_bSmsCounter == 0)
        {
          vSmsMenuClose();
        }
        else if((_bSmsCounter % 50) == 0)
        {
          vDrawTailTimer();
        }
      }
    }
#endif


    // Maybe in SMS menu, the USB/MCR push/pop. So we must refresh the menu
    if(_bSmsReflashTime == 0)
    {
      _bSmsReflashTime = SMS_REFLASH_TIME;
      #ifdef _SMS_TEST_
      #ifdef SMSUI_FOR_MULTI_PARTITION_FAT
	   if((bSharedInfo(SI_EMD_DRIVE_0) >> SV_MCR_TOTAL_NS) | (bSharedInfo(SI_EMD_DRIVE_1) << SV_MCR_TOTAL_NS)  != _bEmdAttachBuf)
      #else
      if((bSharedInfo(SI_EMD_ATTACH) != _bEmdAttachBuf) || (bSharedInfo(SI_MCR_ATTACH) != _bMcrAttachBuf))
      #endif
      {
        _bMcrAttachBuf = bSharedInfo(SI_MCR_ATTACH);
		
	#ifdef SMSUI_FOR_MULTI_PARTITION_FAT
	  _bEmdAttachBuf = ((bSharedInfo(SI_EMD_DRIVE_0) >> SV_MCR_TOTAL_NS) | (bSharedInfo(SI_EMD_DRIVE_1) << SV_MCR_TOTAL_NS) );
        #else
        _bEmdAttachBuf = bSharedInfo(SI_EMD_ATTACH);
	#endif
        vSmsReflashSubMenu();
      }
      #endif
      //it is not need to send uop ,because hot plug information will be notified  by sharedinfo
      //vSendUopCmd(UOP_CHG_DEV, SV_RE_DETECT, SV_ALL_DEV, 0);
    }
    else
    {
      _bSmsReflashTime--;
    }
  }
}


void vCheckCurrDevice(void) large
{
  BYTE bDevie;
  BYTE bTmp;

  if(!fgIsInSmsMenuShow())
  {
    bDevie = bSharedInfo(SI_DEVICE_ID);
    if(bDevie >= SV_DEVID_TVD)  // Except USB & MCR
    {
      return;
    }
    else if(bDevie >= SV_DEVID_MS_CARD)  // MCR
    {
      bTmp = bSharedInfo(SI_MCR_ATTACH);
      if(!(bTmp & (0x01 << (bDevie - SV_DEVID_MS_CARD))))
      {
         _bSmsPlugOut = TRUE;
        _bSmsPower1stOn = 1; // Cheat!
      	 if(fgIsInSetupMenu())
      	{
      	  vSetupMenuClose();     	
         vSetupMenuExit ();     	
       }
        fgSetPlayPostKey(IR_MUTE);
      }
    }
    else    // USB
    {
    //add by msz00107 for bug PL00103538 on 07/02/06
   if(bGetCurHardDiscNs() >= 1)
      bTmp = ((bSharedInfo(SI_EMD_DRIVE_0) >> SV_MCR_TOTAL_NS) | 
                     (bSharedInfo(SI_EMD_DRIVE_1) << SV_MCR_TOTAL_NS));
   else     // add end
      bTmp = bSharedInfo(SI_EMD_ATTACH);
     // if(!(bTmp & (0x01 >> bDevie))) 
      if(!(bTmp & (0x01 << bDevie))) // wxm : for card reader, ">>" is error!!!
      {
        _bSmsPlugOut = TRUE;
        _bSmsPower1stOn = 1; // Cheat!
      	 if(fgIsInSetupMenu())
      	{
      	  vSetupMenuClose();     	
         vSetupMenuExit ();     	
       }
        fgSetPlayPostKey(IR_MUTE);
      }
    }
  }
  _bSmsPlugOut =FALSE;
}

#else

BYTE code _bTestSmsCode = 0;

#endif

⌨️ 快捷键说明

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