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

📄 smsmenu.c

📁 mtk1389L latest sourcecode enjoy
💻 C
📖 第 1 页 / 共 3 页
字号:
  }

  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 + -