?? smsmenu.c
字號:
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 + -