📄 vfd_pub.c
字号:
/**********************************************************************/
/*************** 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 + -