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

📄 stppage.c

📁 MTK 1389E SOURCE CODE
💻 C
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 05/04/19 4:37p    $       ****************/
/***************  $Revision:: 4                $       ****************/
/***************                                       ****************/
/***************   Description : Setup Menu            ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/

#include "general.h"
#include "stposdfn.h"

#include SETUP_MENU_FILE

#define DYN_RNG_OFFSET 32 //[runma] add line to shift dynamic range dialog .

#pragma NOAREGS

code BYTE _pbFull[5] = {4, 'F', 'U', 'L', 'L'};
code BYTE _pb68[4] = {3, '3', '/', '4'};
code BYTE _pb48[4] = {3, '1', '/', '2'};
code BYTE _pb28[4] = {3, '1', '/', '4'};
code BYTE _pbOff[4] = {3, 'O', 'F', 'F'};

// 20050419, fix DRC page too long if MTK_SHRINK_STP is defined problem.
#ifdef MTK_SHRINK_STP
#define STP_DYNAMIC_BTN_H   27
#else
#define STP_DYNAMIC_BTN_H   STP_MENU_ENTRY_H
#endif

// *********************************************************************
// Function : void vDrawDynRngBtn(void) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
void vDrawDynRngBtn(void) large
{
  BYTE pbStr[5];
  BYTE i;

  //if (!fgIsOsdType2())
  {
    _wStartX = STP_DATA_START_X + 3 + DYN_RNG_OFFSET;
    _wStartY = STP_MENU_START_Y + 3;
    _wEndX = STP_DATA_START_X + 200 - 3 + DYN_RNG_OFFSET;
    _wEndY =  STP_MENU_START_Y + STP_DYNAMIC_BTN_H * 9 - 3;

    vRectangle(WB_SETUP_ITEM, 0, 0, TRUE, ENTRY_COL_BTN_BG);
  }

  for(i=0; i<9; i++)
  {
    vOsdShowLineXY(WB_SETUP_ITEM, ENTRY_COL_BLACK, 3,
                   STP_DATA_START_X + 25 + DYN_RNG_OFFSET,
                   STP_MENU_START_Y + 3 + 10 + i * STP_DYNAMIC_BTN_H,
                   STP_DATA_START_X + 35 + DYN_RNG_OFFSET,
                   STP_MENU_START_Y + 3 + 10 + i * STP_DYNAMIC_BTN_H);

    vOsdShowLineXY(WB_SETUP_ITEM, ENTRY_COL_BLACK, 3,
                   STP_DATA_START_X + 85 + DYN_RNG_OFFSET,
                   STP_MENU_START_Y + 3 + 10 + i * STP_DYNAMIC_BTN_H,
                   STP_DATA_START_X + 95 + DYN_RNG_OFFSET,
                   STP_MENU_START_Y + 3 + 10 + i * STP_DYNAMIC_BTN_H);
  }

  vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_BTN_BG, ENTRY_COL_BTN_BG, ENTRY_COL_BTN_BG, ENTRY_COL_BLACK);

  vOsdShowLineXY(WB_SETUP_ITEM, ENTRY_COL_BLACK, 3, 
                 STP_DATA_START_X + 60 + DYN_RNG_OFFSET, 
                 STP_MENU_START_Y + 3, 
                 STP_DATA_START_X + 60 + DYN_RNG_OFFSET, 
                 STP_MENU_START_Y + STP_DYNAMIC_BTN_H * 9 - 3);

  for(i=0 ;i<=_pbFull[0]; i++)
  {
    pbStr[i] = _pbFull[i];
  }
  vOsdShowStrXY(STP_DATA_START_X + 116 + DYN_RNG_OFFSET,
                STP_MENU_START_Y,
                WB_SETUP_ITEM, pbStr);

  for(i=0 ;i<=_pb68[0]; i++)
  {
    pbStr[i] = _pb68[i];
  }
  vOsdShowStrXY(STP_DATA_START_X + 116 + DYN_RNG_OFFSET,
                (STP_MENU_START_Y - 3 + 2 * STP_DYNAMIC_BTN_H),
                WB_SETUP_ITEM, pbStr);

  for(i=0 ;i<=_pb48[0]; i++)
  {
    pbStr[i] = _pb48[i];
  }
  vOsdShowStrXY(STP_DATA_START_X + 116 + DYN_RNG_OFFSET,
                STP_MENU_START_Y - 3 + 4 * STP_DYNAMIC_BTN_H,
                WB_SETUP_ITEM, pbStr);

  for(i=0 ;i<=_pb28[0]; i++)
  {
    pbStr[i] = _pb28[i];
  }
  vOsdShowStrXY(STP_DATA_START_X + 116 + DYN_RNG_OFFSET,
                STP_MENU_START_Y - 3 + 6 * STP_DYNAMIC_BTN_H,
                WB_SETUP_ITEM, pbStr);

  for(i=0 ;i<=_pbOff[0]; i++)
  {
    pbStr[i] = _pbOff[i];
  }
  vOsdShowStrXY(STP_DATA_START_X + 116 + DYN_RNG_OFFSET,
                STP_MENU_START_Y - 6 + 8 * STP_DYNAMIC_BTN_H,
                WB_SETUP_ITEM, pbStr);

  vCreateButtonXY(WB_SETUP_ITEM, DATA_BTN_BASE, 3,
                  STP_DATA_START_X+ DYN_RNG_OFFSET,
                  STP_MENU_START_Y,
                  STP_DATA_START_X + 200+ DYN_RNG_OFFSET,
                  STP_MENU_START_Y + STP_DYNAMIC_BTN_H * 9);

  vSetBtnCol(WB_SETUP_ITEM, 0, 0, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
  vUnselButton(WB_SETUP_ITEM, DATA_BTN_BASE);

  vCreateButtonXY(WB_SETUP_ITEM, DATA_BTN_BASE + 1, 3,
                  STP_DATA_START_X + 40 + DYN_RNG_OFFSET,
                  STP_MENU_START_Y + STP_DYNAMIC_BTN_H * (WORD)(8 - _bDataCur) + 5,
                  STP_DATA_START_X + 79 + DYN_RNG_OFFSET,
                  STP_MENU_START_Y + STP_DYNAMIC_BTN_H * (WORD)(8 - _bDataCur) + 20);
  if (_bOsdState == STPSTT_OPTION)
      vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_BTN_BG/*BTN_BG*/, ENTRY_COL_10/*BTN_BG*/, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
  else
     vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_BTN_BG/*BTN_BG*/, ENTRY_COL_RED/*BTN_BG*/, ENTRY_COL_BLACK, ENTRY_COL_WHITE); 

  vUnselButton(WB_SETUP_ITEM, DATA_BTN_BASE + 1);
}

// *********************************************************************
// Function : void vMicLine(void) large
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
#ifdef PLAYER_MIC_EQ
static void vMicLine(void) large
{
  BYTE i;
  BYTE pbStr[6];

  _wStartX = 280;
  _wEndX = 460;
  _wStartY = STP_MENU_START_Y + 120;
  _wEndY = _wStartY;
  vOsdShowLine(WB_SETUP_ITEM, ENTRY_COL_10, 2);
  _wStartY -= 10;
  _wEndY = _wStartY;
  for(i=0; i<=_pb14db[0]; i++)
  {
    pbStr[i] = _pb14db[i];
  }
  vOsdShowStrXY(_wEndX, _wEndY, WB_SETUP_ITEM, pbStr);

  _wStartX = 280;
  _wStartY = STP_MENU_START_Y + 180;
  _wEndY = _wStartY;
  vOsdShowLine(WB_SETUP_ITEM, ENTRY_COL_10, 2);
  _wStartY -= 10;
  _wEndY = _wStartY;
  for(i=0; i<=_pb0db[0]; i++)
  {
    pbStr[i] = _pb0db[i];
  }
  vOsdShowStrXY(_wEndX, _wEndY, WB_SETUP_ITEM, pbStr);

  _wStartX = 280;
  _wStartY = STP_MENU_START_Y + 240;
  _wEndY = _wStartY;
  vOsdShowLine(WB_SETUP_ITEM, ENTRY_COL_10, 2);
  _wStartY -= 10;
  _wEndY = _wStartY;
  for(i=0; i<=_pbM14db[0]; i++)
  {
    pbStr[i] = _pbM14db[i];
  }
  vOsdShowStrXY(_wEndX, _wEndY, WB_SETUP_ITEM, pbStr);
}
#endif /* PLAYER_MIC_EQ */

// *********************************************************************
// Function : void vShowDynBtn(void) large
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
void vShowDynBtn(void) large
{
  BYTE i;

  vDelButton(WB_SETUP_ITEM, DATA_BTN_BASE + 1);

  vCreateButtonXY(WB_SETUP_ITEM, DATA_BTN_BASE + 1, 2,
                  STP_DATA_START_X + 40 + DYN_RNG_OFFSET,
                  STP_MENU_START_Y + STP_DYNAMIC_BTN_H * (WORD)(8 - _bDataCur) + 5,
                  STP_DATA_START_X + 79 + DYN_RNG_OFFSET,
                  STP_MENU_START_Y + STP_DYNAMIC_BTN_H * (WORD)(8 - _bDataCur) + 20);

                 
  //[runma] add block.    assume _wStartX and _wStartY are already set in vCreateButtonXY().                

  _wStartY = STP_MENU_START_Y + 3;
  _wEndY = STP_MENU_START_Y + STP_DYNAMIC_BTN_H * 9 - 3;
  vChgColRep(WB_SETUP_ITEM, ENTRY_COL_BG, ENTRY_COL_BTN_BG);
  //[runma] end of block.

  vOsdShowLineXY(WB_SETUP_ITEM, ENTRY_COL_BLACK, 3,
                 STP_DATA_START_X + 60 + DYN_RNG_OFFSET, STP_MENU_START_Y + 3,
                 STP_DATA_START_X + 60 + DYN_RNG_OFFSET, STP_MENU_START_Y + STP_DYNAMIC_BTN_H * 9 - 3);

  // redraw for remove the line on button
    if (_bOsdState == STPSTT_OPTION)        //[runma] add for slider changing color. 
      vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_BTN_BG, ENTRY_COL_10, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
    else
      vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_BTN_BG, ENTRY_COL_RED, ENTRY_COL_BLACK, ENTRY_COL_WHITE);

  vUnselButton(WB_SETUP_ITEM, DATA_BTN_BASE + 1);

}

// *********************************************************************
// Function : void vShowDynMsg(void)
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
void vShowDynMsg(void) large
{
  WORD wIdx;
  BYTE pbStr[3];

  if (_bDataCur /*bEepromReadByte(DRNG_POS)*/ == 0 ) //[runma]
  {
    vShowSetupMsg(OSD_MSG_DYNAMIC_OFF);
  }
  else
  {
    wIdx = OSD_MSG_18 + _bDataCur /*bEepromReadByte(DRNG_POS)*/ - 1; //[runma]
    pbStr[0] = '2';
    pbStr[1] = bLoByte(wIdx);
    pbStr[2] = bHiByte(wIdx);
    // 20050330, in vShowSetupMsgArg() will clear msg range
    //vSetMsgCol4(WB_SETUP_MSG, ENTRY_COL_BG, ENTRY_COL_BG, ENTRY_COL_1, ENTRY_COL_GRAY);
    //vClearMsgRng();

    vShowSetupMsgArg(OSD_MSG_SET_DYNAMICTO, pbStr);
  }
}

void vDrawSpecificPage(BYTE bType) large
{
  switch(bType)
  {
  #ifdef PLAYER_MIC_EQ
    case PAGE_MIC:
      vMicLine();
      break;
  #endif

    default:
      break;
  }
}

⌨️ 快捷键说明

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