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

📄 vfd_pub.c

📁 mtk1389L latest sourcecode enjoy
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************   Description : VFD public functions  ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/
#define _VFD_PUB_C_

#pragma NOAREGS

#include "general.h"

#ifdef VFD_SUPPORT

#include ".\vfd\vfd_grp.h"

/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdGrpClear(BYTE *pbGrpTable, BYTE bIdxNs) large
{
  BYTE i;
  BYTE bMode;
  
  for(i = 0; i < bIdxNs; i++)
  {
    bMode = pbGrpTable[i];
    vVfdSetMode(bMode, VFD_OFF);
  } 
}


/************************************************************************
     Function : void vVfdGrpProc(BYTE *pbGrpTable, BYTE bIdxNs,
                                 BYTE *pbGrpOnTable, BYTE bOnIdx)
  Description : turn on symbols in one group
    Parameter : pbGrpTable: pointer to group table
                bIdxNs: total element numbers in this group
                pbGrpOnTable: pointer to group turn on table
                bOnIdx: index to turn on table
    Return    : None
************************************************************************/
static void vVfdGrpProc(BYTE *pbGrpTable, BYTE bIdxNs,
                        BYTE *pbGrpOnTable, BYTE bOnIdx) large
{
  BYTE i;
  BYTE bNum;
  BYTE bMode;

  if(bOnIdx == VFD_NULL)
  {
    return;
  }
  
  vVfdGrpClear(pbGrpTable, bIdxNs);

  if(bOnIdx == VFD_GRP_OFF)
  {
    return;
  }

  bNum = pbGrpOnTable[bOnIdx];
  for(i = 0; i < bNum; i++)
  {
    bMode = pbGrpOnTable[i + 1 + bOnIdx];
    vVfdSetMode(bMode, VFD_ON);
  } 
}


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdDiscGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_DISC_IDX_NS)

  vVfdGrpProc(_pbVfdGrpDisc, VFD_GRP_DISC_IDX_NS,
              _pbVfdGrpDiscOnTable, bIdx);

#endif  
}

  
/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdTvGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_TV_IDX_NS)

  vVfdGrpProc(_pbVfdGrpTv, VFD_GRP_TV_IDX_NS,
              _pbVfdGrpTvOnTable, bIdx);

#endif  
} 


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdPScanGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_PSCAN_IDX_NS)

  vVfdGrpProc(_pbVfdGrpPScan, VFD_GRP_PSCAN_IDX_NS,
              _pbVfdGrpPScanOnTable, bIdx);

#endif
}


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdRepeatGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_REPEAT_IDX_NS)

  vVfdGrpProc(_pbVfdGrpRepeat, VFD_GRP_REPEAT_IDX_NS,
              _pbVfdGrpRepeatOnTable, bIdx);

#endif  
}


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
void vVfdABGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_AB_IDX_NS)

  vVfdGrpProc(_pbVfdGrpAB, VFD_GRP_AB_IDX_NS,
              _pbVfdGrpABOnTable, bIdx);

#endif  
}
  

/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdTrickGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_TRICK_IDX_NS)

  vVfdGrpProc(_pbVfdGrpTrick, VFD_GRP_TRICK_IDX_NS,
              _pbVfdGrpTrickOnTable, bIdx);

#endif  
} 


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdATypeGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_A_TYPE_IDX_NS)

  vVfdGrpProc(_pbVfdGrpAType, VFD_GRP_A_TYPE_IDX_NS,
              _pbVfdGrpATypeOnTable, bIdx);

#endif  
}


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdAChGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_A_CH_IDX_NS)

  vVfdGrpProc(_pbVfdGrpACh, VFD_GRP_A_CH_IDX_NS,
              _pbVfdGrpAChOnTable, bIdx);
  
#endif  
}


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdALRGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_A_LR_IDX_NS)

  vVfdGrpProc(_pbVfdGrpALR, VFD_GRP_A_LR_IDX_NS,
              _pbVfdGrpALROnTable, bIdx);

#endif
} 


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdAKeyGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_A_KEY_IDX_NS)

  vVfdGrpProc(_pbVfdGrpAKey, VFD_GRP_A_KEY_IDX_NS,
              _pbVfdGrpAKeyOnTable, bIdx);

#endif
}


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdPlayInfoGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_PLAYINFO_IDX_NS)

  vVfdGrpProc(_pbVfdGrpPlayInfo, VFD_GRP_PLAYINFO_IDX_NS,
              _pbVfdGrpPlayInfoOnTable, bIdx);

#endif
}


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdColonGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_COLON_IDX_NS)

  vVfdGrpProc(_pbVfdGrpColon, VFD_GRP_COLON_IDX_NS,
              _pbVfdGrpColonOnTable, bIdx);

#endif
}


/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
static void vVfdMiscGrpProc(BYTE bIdx) large
{
#if (VFD_GRP_MISC_IDX_NS)
  BYTE i;
  BYTE bMode;

  if(bIdx == VFD_NULL)
  {
    return;
  }
  if(bIdx == VFD_GRP_OFF)
  {
    for(i = 0; i < VFD_GRP_MISC_IDX_NS; i++)
    {
      bMode = _pbVfdGrpMisc[i];  
      vVfdSetMode(bMode, VFD_OFF);
    }  
  }
  
  if((bIdx & VFD_MISC_OFF) == VFD_MISC_OFF)
  {
    bIdx = bIdx & (~VFD_MISC_OFF);
    bMode = _pbVfdGrpMisc[bIdx];
    vVfdSetMode(bMode, VFD_OFF);
  }
  else
  {
    bMode = _pbVfdGrpMisc[bIdx];
    vVfdSetMode(bMode, VFD_ON);
  }

#endif
}






/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
void vVfdSymbol(WORD wSymbol) large
{
  BYTE bGrp = bVfdSymbolGrp(wSymbol);
  BYTE bIdx = bVfdSymbolIdx(wSymbol);

  switch(bGrp)
  {
    case VFD_GRP_DISC_TYPE:
      vVfdDiscGrpProc(bIdx);
      break;
    case VFD_GRP_TV:
      vVfdTvGrpProc(bIdx);
      break;
    case VFD_GRP_PSCAN:
      vVfdPScanGrpProc(bIdx);
      break;
    case VFD_GRP_REPEAT:
      vVfdRepeatGrpProc(bIdx);
      break;
    case VFD_GRP_AB:
      vVfdABGrpProc(bIdx);
      break;
    case VFD_GRP_TRICK:
      vVfdTrickGrpProc(bIdx);
      break;    
    case VFD_GRP_AUD_TYPE:
      vVfdATypeGrpProc(bIdx);
      break;
    case VFD_GRP_AUD_CH:
      vVfdAChGrpProc(bIdx);
      break;
    case VFD_GRP_AUD_LR:
      vVfdALRGrpProc(bIdx);
      break;
    case VFD_GRP_AUD_KEY:    
      vVfdAKeyGrpProc(bIdx);
      break;
    case VFD_GRP_PLAYINFO:    
      vVfdPlayInfoGrpProc(bIdx);
      break;
    case VFD_GRP_COLON:    
      vVfdColonGrpProc(bIdx);
      break;      
    case VFD_GRP_MISC:
      vVfdMiscGrpProc(bIdx);
      break;   
  }
}



/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
void vVfdMessage(BYTE bMsgIdx) large
{
  vVfdShowMsg(bMsgIdx, FALSE);
  vVfdSymbol(VFD_SYM_COLON_NONE);
  vVfdSymbol(VFD_SYM_PLAYINFO_NONE);  
}

/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
void vVfdMessageClr(void) large
{
  vVfdMessage(VFD_MESSAGE_CLR_ALL);
  vVfdSymbol(VFD_SYM_COLON_NONE);
  vVfdSymbol(VFD_SYM_PLAYINFO_NONE);
}

/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
void vVfdDirectMessage(BYTE bMsgIdx) large
{
  vVfdShowMsg(bMsgIdx, TRUE);
}

//peiyu ,for UNCALLED SEGMENT
#if(defined(VFD_TEMP_TEXT)||defined(VFD_MESSAGE_FR)||defined(VFD_MESSAGE_PAUSE)||defined(VFD_MESSAGE_FR))

/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
void vVfdTempMessage(BYTE bMsgIdx, BYTE bTimeOut) large
{
//#ifdef VFD_TEMP_TEXT
  vVfdShowTempMsg(bMsgIdx, bTimeOut);
  vVfdSymbol(VFD_SYM_COLON_NONE);
  vVfdSymbol(VFD_SYM_PLAYINFO_NONE);  
//#endif  
}

#endif
/************************************************************************
     Function :
  Description :
    Parameter :
    Return    : None
************************************************************************/
void vVfdWord(BYTE bSegIdx, BYTE bNum, BOOL fgZeroExt) large
{
  if(bSegIdx >= VFD_SEG_MAX)
  {
    return;
  }
  if(bSegIdx == VFD_WORD_HR)
  {
    vVfdSegDisplay(VFD_WORD_HR, bNum & 0x0f, FALSE);
  }
  else if(bSegIdx == VFD_WORD_CH100)
  {
    vVfdSegDisplay(VFD_WORD_CH100, bNum & 0x0f, FALSE);
  }
  else
  {
    if((bNum & 0xF0) == 0)
    {
      if(fgZeroExt)
      {
        vVfdSegDisplay(bSegIdx, 0, FALSE);

⌨️ 快捷键说明

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