?? smsmenu.c
字號:
}
vGetLRIconStartY(&wStartY);
if(fgChkSmsStat(SMS_STAT_SUB))
{
vOsdPasteMsgXY(SMS_MARK_RIGLEFT_START_X, wStartY, WB_SETUP_ITEM, _wSmsMarkMsg[SMS_MARK_LEFT]);
}
else if(fgChkSmsStat(SMS_STAT_MAIN) && fgChkSmsMainItem(SMS_MAIN_ITEM_RVMEDIA) && _bSubMenuItemNs != 0)
{
vOsdPasteMsgXY(SMS_MARK_RIGLEFT_START_X, wStartY, WB_SETUP_ITEM, _wSmsMarkMsg[SMS_MARK_RIGHT]);
}
else
{
vSmsClrMark(SMS_MARK_RIGLEFT_START_X, wStartY);
}
}
#ifdef SMS_MENU_TIMER_DISAPPEAR //yan 070409
static void vDrawTailTimer(void) large
{
WORD wStartY;
BYTE pbStr[2];
pbStr[0] = 1;
pbStr[1] = _bSmsCounter / 50 + '0';
bGetTimerStartY(&wStartY);
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_WHITE);
vOsdShowArgXY(SMS_MM_ITEM_START_X, wStartY, WB_SETUP_ITEM, OSD_MSG_SMS_SHOW_TIMER, OSD_NO_DISAPPEAR, pbStr);
}
#endif
static BYTE bSmsPrevItem(void) large
{
if(fgChkSmsStat(SMS_STAT_MAIN))
{
if(bGetSmsItem() > 0)
{
return (bGetSmsItem() - 1);
}
else
{
return SMS_MAIN_ITEM_NONE;
}
}
else if(fgChkSmsStat(SMS_STAT_SUB))
{
if(bGetSmsItem() > 0)
{
return (bGetSmsItem() - 1);
}
else
{
if(_bSubMenuShowItem1st > 0)
{
_bSubMenuShowItem1st--;
return (bGetSmsItem());
}
else
{
return SMS_MAIN_ITEM_NONE;
}
}
}
else
{
return SMS_MAIN_ITEM_NONE;
}
}
static BYTE bSmsNextItem(void) large
{
if(fgChkSmsStat(SMS_STAT_MAIN))
{
if(bGetSmsItem() + 1 < _bMainMenuItemNs)
{
return (bGetSmsItem() + 1);
}
else
{
return SMS_MAIN_ITEM_NONE;
}
}
else if(fgChkSmsStat(SMS_STAT_SUB))
{
if( (bGetSmsItem() + 1 < _bMainMenuItemNs) && (bGetSmsItem() + 1 < _bSubMenuItemNs) )
{
return (bGetSmsItem() + 1);
}
else
{
if(_bSubMenuShowItem1st + bGetSmsItem() + 1 < _bSubMenuItemNs)
{
_bSubMenuShowItem1st++;
return (bGetSmsItem());
}
else
{
return SMS_MAIN_ITEM_NONE;
}
}
}
else
{
return SMS_MAIN_ITEM_NONE;
}
}
static void vSmsHiliMainItem(BYTE bItem, BYTE bHili)
{
if(bHili & SMS_HILI_ON)
{
if(bHili & SMS_HILI_EN)
{
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_YELLOW, ENTRY_COL_YELLOW, ENTRY_COL_YELLOW, ENTRY_COL_BLACK);
vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_YELLOW, ENTRY_COL_DARKGRAY, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
}
else
{
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_BLACK);
vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_YELLOW, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
}
vSelButton(WB_SETUP_ITEM, bItem);
}
else
{
if(bHili & SMS_HILI_EN)
{
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_WHITE);
vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_YELLOW, ENTRY_COL_GRAY, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
}
else
{
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_BLACK);
vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_YELLOW, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
}
vUnselButton(WB_SETUP_ITEM, bItem);
}
}
static void vSmsHiliSubItem(BYTE bItem, BYTE bHili)
{
BYTE bValue;
bValue = bGetEmdMcrId(bItem + _bSubMenuShowItem1st);
if(0xFF == bValue)
{
return;
}
if(bHili & SMS_HILI_ON)
{
if(bHili & SMS_HILI_EN)
{
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_YELLOW, ENTRY_COL_YELLOW, ENTRY_COL_YELLOW, ENTRY_COL_BLACK);
vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_YELLOW, ENTRY_COL_DARKGRAY, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
}
else
{
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_BLACK);
vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_YELLOW, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
}
vSelButton(WB_SETUP_ITEM, bValue + (SMS_MAIN_ITEM_RVMEDIA << 4));
}
else
{
if(bHili & SMS_HILI_EN)
{
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_WHITE);
vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_YELLOW, ENTRY_COL_GRAY, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
}
else
{
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_BLACK);
vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_YELLOW, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
}
vUnselButton(WB_SETUP_ITEM, bValue + (SMS_MAIN_ITEM_RVMEDIA << 4));
}
}
static void vSmsDrawView(void) large
{
vSetStartEndXY(SMS_VIEW_START_X, _wSmsViewStartY, SMS_VIEW_END_X - 1, _wSmsViewEndY - 1);
vRectangle(WB_SETUP_ITEM, 0, 0, TRUE, ENTRY_COL_7);
// paste round style corner bitmaps
vOsdPasteBmpXY(SMS_VIEW_START_X, _wSmsViewStartY, WB_SETUP_ITEM, BMP_CORNER_TL_7_0);
vOsdPasteBmpXY(SMS_VIEW_START_X, _wSmsViewEndY - CORNER_H_W - 1, WB_SETUP_ITEM, BMP_CORNER_BL_7_0);
vOsdPasteBmpXY(SMS_VIEW_END_X - CORNER_H_W, _wSmsViewStartY, WB_SETUP_ITEM, BMP_CORNER_TR_7_0);
vOsdPasteBmpXY(SMS_VIEW_END_X - CORNER_H_W, _wSmsViewEndY - CORNER_H_W - 1, WB_SETUP_ITEM, BMP_CORNER_BR_7_0);
}
#ifdef SMS_MENU_TIMER_DISAPPEAR //yan 070409
static void vSmsClrMenu(void) large
{
vSetStartEndXY(SMS_VIEW_START_X, _wSmsViewStartY, SMS_VIEW_END_X - 1, _wSmsViewEndY - 1);
vRectangle(WB_SETUP_ITEM, 0, 0, TRUE, ENTRY_COL_BG);
}
#endif
static void vSmsClrSubMenu(void) large
{
WORD wStartY;
WORD wEndY;
vGetUpIconStartY(&wStartY);
vGetDownIconStartY(&wEndY);
wEndY += SMS_MARK_H;
vSetStartEndXY(SMS_MM_ITEM_END_X, wStartY, SMS_SUBM_ITEM_END_X - 1, wEndY - 1);
vRectangle(WB_SETUP_ITEM, 0, 0, TRUE, ENTRY_COL_7);
}
static void vSmsDrawMenu(void) large
{
vSmsDrawMainMenu();
vSmsHiliMainItem(bGetSmsItem(), SMS_HILI_ON | SMS_HILI_EN);
if((fgChkSmsStat(SMS_STAT_MAIN) && fgChkSmsMainItem(SMS_MAIN_ITEM_RVMEDIA)) || fgChkSmsStat(SMS_STAT_SUB))
{
vSmsDrawSubMenu();
}
#ifdef SMS_MENU_TIMER_DISAPPEAR //yan 070409
if( (bEepromReadByte(SW_MENU_TIME_SW_POSITION) == SV_ON) && (_bSmsPower1stOn < 2) && !_fgSmsMoveCur)
{
vDrawTailTimer();
}
#endif
}
static BOOL fgSmsUpKey(void) large
{
BYTE bPrevItem;
bPrevItem = bSmsPrevItem();
if(bPrevItem != SMS_MAIN_ITEM_NONE)
{
if(fgChkSmsStat(SMS_STAT_MAIN))
{
if(fgChkSmsMainItem(SMS_MAIN_ITEM_RVMEDIA))
{
vSmsClrSubMenu();
}
vSmsHiliMainItem(bGetSmsItem(), SMS_HILI_OFF | SMS_HILI_EN);
vSetSmsItem(bPrevItem);
vSmsHiliMainItem(bGetSmsItem(), SMS_HILI_ON | SMS_HILI_EN);
if(fgChkSmsMainItem(SMS_MAIN_ITEM_RVMEDIA))
{
// vSendUopCmd(UOP_REDETECT, 0, 0, 0);
vSmsDrawSubMenu();
}
}
else if(fgChkSmsStat(SMS_STAT_SUB))
{
if(bPrevItem == bGetSmsItem())
{
vSmsDrawSubMenu();
}
vSmsHiliSubItem(bGetSmsItem(), SMS_HILI_OFF | SMS_HILI_EN);
vSetSmsItem(bPrevItem);
vSmsHiliSubItem(bGetSmsItem(), SMS_HILI_ON | SMS_HILI_EN);
}
}
return TRUE;
}
static BOOL fgSmsDownKey(void) large
{
BYTE bNextItem;
bNextItem = bSmsNextItem();
if(bNextItem != SMS_MAIN_ITEM_NONE)
{
if(fgChkSmsStat(SMS_STAT_MAIN))
{
if(fgChkSmsMainItem(SMS_MAIN_ITEM_RVMEDIA))
{
// vSendUopCmd(UOP_REDETECT, 0, 0, 0);
vSmsClrSubMenu();
}
vSmsHiliMainItem(bGetSmsItem(), SMS_HILI_OFF | SMS_HILI_EN);
vSetSmsItem(bNextItem);
vSmsHiliMainItem(bGetSmsItem(), SMS_HILI_ON | SMS_HILI_EN);
if(fgChkSmsMainItem(SMS_MAIN_ITEM_RVMEDIA))
{
vSmsDrawSubMenu();
}
}
else if(fgChkSmsStat(SMS_STAT_SUB))
{
if(bNextItem == bGetSmsItem())
{
vSmsDrawSubMenu();
}
vSmsHiliSubItem(bGetSmsItem(), SMS_HILI_OFF | SMS_HILI_EN);
vSetSmsItem(bNextItem);
vSmsHiliSubItem(bGetSmsItem(), SMS_HILI_ON | SMS_HILI_EN);
}
}
return TRUE;
}
static BOOL fgSmsLeftKey(void) large
{
WORD wStartY;
if(fgChkSmsStat(SMS_STAT_SUB))
{
vGetLRIconStartY(&wStartY);
if(_bSubMenuItemNs != 0)
{
vSmsHiliSubItem(bGetSmsItem(), SMS_HILI_OFF | SMS_HILI_EN);
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_7, ENTRY_COL_WHITE, ENTRY_COL_WHITE);
vOsdPasteMsgXY(SMS_MARK_RIGLEFT_START_X, wStartY, WB_SETUP_ITEM, _wSmsMarkMsg[SMS_MARK_RIGHT]);
}
else
{
vSmsClrMark(SMS_MARK_RIGLEFT_START_X, wStartY);
}
_bSubMenuShowItem1st = 0;
vRstSmsStat();
vRstSmsItem();
vSmsHiliMainItem(bGetSmsItem(), SMS_HILI_ON | SMS_HILI_EN);
}
return TRUE;
}
static BOOL fgSmsRightKey(void) large
{
WORD wStartY;
if(fgChkSmsStat(SMS_STAT_MAIN) && fgChkSmsMainItem(SMS_MAIN_ITEM_RVMEDIA) && _bSubMenuItemNs != 0 )
{
vSmsHiliMainItem(bGetSmsItem(), SMS_HILI_ON | SMS_HILI_DIS);
vSavSmsStat();
vSetSmsStat(SMS_STAT_SUB);
vSavSmsItem();
vSetSmsItem(0);
_bSubMenuShowItem1st = 0;
vSmsDrawSubMenu();
vSmsHiliSubItem(bGetSmsItem(), SMS_HILI_ON | SMS_HILI_EN);
vGetLRIconStartY(&wStartY);
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_7, ENTRY_COL_WHITE, ENTRY_COL_WHITE);
vOsdPasteMsgXY(SMS_MARK_RIGLEFT_START_X, wStartY, WB_SETUP_ITEM, _wSmsMarkMsg[SMS_MARK_LEFT]);
}
return TRUE;
}
static BOOL fgSmsEnterKey(void) large
{
BYTE bvalue = 0;
if(fgChkSmsStat(SMS_STAT_MAIN))
{
if(fgChkSmsMainItem(SMS_MAIN_ITEM_RVMEDIA))
{
fgSetPlayPostKey(IR_RIGHT);
}
else if(bGetSmsItem() < _bMainMenuItemNs)
{
_bItemUop = _bSmsMainItemUop[bGetDevId(bGetSmsItem())];
if(_bItemUop != bSharedInfo(SI_DEVICE_ID) && _bItemUop != SV_DEVID_INVALID)
{
if(1 == _bSmsPower1stOn)
{
_bSmsPower1stOn = 2;
}
if(_bSmsPower1stOn != 0)
{
vSendUopCmd(UOP_CHG_DEV, SV_ASSIGN_DEV, _bItemUop, 0);
#ifdef SMS_MENU_PAUSE_PLAY //yan 070409
_fgDeviceCHG = TRUE;
#endif
}
}
vSmsMenuClose();
}
}
else // sub menu
{
bvalue = bGetEmdMcrId(bGetSmsItem()+ _bSubMenuShowItem1st); // wxm add for card read
if(0xFF == bvalue)
{
return FALSE;
}
_bItemUop = _bSmsSubItemUop[bvalue];
if(/*_bItemUop != bSharedInfo(SI_DEVICE_ID) &&*/_bItemUop != SV_DEVID_INVALID)
{
if(1 == _bSmsPower1stOn)
{
_bSmsPower1stOn = 2;
}
if(_bSmsPower1stOn != 0)
{
vSendUopCmd(UOP_CHG_DEV, SV_ASSIGN_DEV, _bItemUop, 0);
}
}
_bSmsDisplay = 0;//anthony add
vSmsMenuClose();
}
return TRUE;
}
#ifdef SMS_MENU_PAUSE_PLAY //yan 070409
static void vSmsPauseUop(void) large
{
#ifdef SUPPORT_DATA_DISC
if (fgIsPcdPlay() ||
(fgIsIsoPlay() && fgFlCheckStatus(FL_STATUS_IN_JPEG)))
{
_bJpgIdx = 1;
vSendUopCmd(UOP_PAUSE, 0x01, 0x01, SV_SMS_ENTER/*0x00*/);//added para "SV_SMS_ENTER" by msz00049 for CR PL00105955
}
else
#endif
{
#ifdef SUPPORT_TVD
if (bSharedInfo(SI_DEVICE_ID) == SV_DEVID_TVD)
AudioSwitchExt(FALSE);
#endif
vSendUopCmd(UOP_PAUSE, 0, 0, SV_SMS_ENTER);
}
}
static void vSmsPauseExit(void) large
{
BYTE bInitState = bSharedInfo(SI_INIT_STATE);
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
switch (bInitState)
{
case SV_LOADING_DISC:
vSendUopCmd(UOP_PAUSE, 0, 0, SV_SMS_EXIT);
return;
case SV_TRAY_CLOSING:
case SV_TRAY_OPENING:
case SV_TRAY_ERROR:
case SV_NO_DISC:
case SV_UNKNOWN_DISC:
return;
case SV_DISC_IDENTIFIED:
default:
break; /* not determined */
}
/* PCD and Jpeg is handled by FSMENU */
if (fgIsPcdPlay() ||
(fgIsIsoPlay() && fgFlCheckStatus(FL_STATUS_IN_JPEG))) //minli 061222 for PL00003088
{
return;
}
switch (bPbcState)
{
case SV_STOP:
case SV_STOP_RESUME:
break;
case SV_PAUSE:
case SV_STEP:
case SV_STEP_BACK:
vSendUopCmd(UOP_PLAY, 0, 0, 0);
break;
case SV_SETUP_PAUSE:
case SV_PBC_INIT:
vSendUopCmd(UOP_PAUSE, 0, 0, SV_SMS_EXIT);
break;
case SV_PTL_ERR:
case SV_REGION_ERR:
case SV_DISC_ERR:
case SV_SET_TMP_PTL:
break; /* allowed */
case SV_PLAY:
break;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -