📄 vfd_pub.c
字号:
Function :
Description :
Parameter :
Return : None
************************************************************************/
void vVfdLedSet(BOOL fgVFDLedChange, BOOL fgVFDLedOnOff, BYTE bVFDLedState) large
{
_fgLedChange = fgVFDLedChange;
_fgLedOnOff = fgVFDLedOnOff;
_bLedState = bVFDLedState;
}
#endif
#if defined(DVD_RECEIVER) //xiao 03-04-26
/////////////////////////////////////////////////////////////////
//FUNCTION: Show channel VOl
//Parament: bChannel which channel
// 0-CH_MODE_NONE,1-CH_MODE_FL,2-CH_MODE_CT,3-CH_MODE_FR,4-CH_MODE_RR
// 5-CH_MODE_RL,6-CH_MODE_SUBW,7-CH_MODE_TREBLE,8-CH_MODE_BASS,9-CH_MODE_NM_VOL
// bVOL value of channel
#if !defined(DVD_TUNER)
void vVfdShowVOL(BYTE bChannel, BYTE bVOL) large
{
//Adjuade the vol
if (bChannel == CH_MODE_NM_VOL) //main vol
{
if (bVOL < 0)
{
bVOL = 0;
}
if (bVOL > BBK_MAX_MAIN_VOL)
{
bVOL = BBK_MAX_MAIN_VOL ;
}
}
else if(bChannel ==CH_MODE_BASS ||bChannel ==CH_MODE_TREBLE)
{
if (bVOL < 0)
{
bVOL = 0;
}
if (bVOL >BBK_MAX_TONE_VOL_LEVEL)
{
bVOL = BBK_MAX_TONE_VOL_LEVEL;
}
}
#ifdef BASS_BOOST_DRIVER
else if(bChannel ==CH_MODE_BASSBOOST)
{
if (bVOL < 0)
{
bVOL = 0;
}
if (bVOL >3)
{
bVOL = 3;
}
}
#endif
#if defined(USE_PT2399)
else if(bChannel ==CH_MODE_MICVOL ||bChannel ==CH_MODE_MICECHO)
{
if (bVOL < 0)
{
bVOL = 0;
}
if (bVOL >24)
{
bVOL = 24;
}
}
#endif
else
{
if (bVOL < 0)
{
bVOL = 0;
}
if (bVOL >BBK_MAX_CH_VOL_LEVEL)
{
bVOL = BBK_MAX_CH_VOL_LEVEL;
}
}
switch(bChannel)
{
#if defined(USE_PT2399)
case CH_MODE_MICVOL : vVfdTempMessage(VFD_MESSAGE_MICVOL,0);break;
case CH_MODE_MICECHO : vVfdTempMessage(VFD_MESSAGE_MICECHO,0);break;
#endif
case CH_MODE_FL : vVfdTempMessage(VFD_MESSAGE_FL,0);break;
case CH_MODE_CT : vVfdTempMessage(VFD_MESSAGE_CENT,0);break;
case CH_MODE_FR : vVfdTempMessage(VFD_MESSAGE_FR,0);break;
case CH_MODE_RR : vVfdTempMessage(VFD_MESSAGE_RS,0);break;
case CH_MODE_RL : vVfdTempMessage(VFD_MESSAGE_LS,0);break;
case CH_MODE_SUBW : vVfdTempMessage(VFD_MESSAGE_SUB,0);break;
case CH_MODE_TREBLE: vVfdTempMessage(VFD_MESSAGE_TREBLE,0);break;
case CH_MODE_BASS : vVfdTempMessage(VFD_MESSAGE_BASS,0);break;
#ifdef BASS_BOOST_DRIVER
case CH_MODE_BASSBOOST : vVfdTempMessage(VFD_MESSAGE_BASSBOOST,0);break;
#endif
default : vVfdTempMessage(VFD_MESSAGE_VOLUM,0);break;
}
if (bChannel == CH_MODE_NM_VOL)
{
bVOL = bHEXToBCD( bVOL);
vVfdSegDisplay(VFD_SEG_SEC_HIGH,(bVOL & 0xF0) >> 4,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_LOW ,(bVOL & 0x0F),FALSE);
}
#if defined(USE_PT2399)
else if (bChannel==CH_MODE_MICVOL || bChannel==CH_MODE_MICECHO)
{
bVOL = bHEXToBCD( bVOL);
vVfdSegDisplay(VFD_SEG_SEC_HIGH,(bVOL & 0xF0) >> 4,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_LOW ,(bVOL & 0x0F),FALSE);
}
#endif
#if !defined(DAV935)
else if(bChannel ==CH_MODE_BASS ||bChannel ==CH_MODE_TREBLE)
{
if (bVOL > 10)
{
#ifndef USE_RDS
vVfdSegDisplay(VFD_SEG_MIN_HIGH,SEG_CHAR_PLUSE,FALSE);
#endif
bVOL -= 10;
}
else if (bVOL < 10)
{
vVfdSegDisplay(VFD_SEG_MIN_LOW,SEG_CHAR__,FALSE);
bVOL = 10 - bVOL;
}
else
{
vVfdSegDisplay(VFD_SEG_MIN_LOW,SEG_CLEAN,FALSE);
bVOL = 0;
}
vVfdSegDisplay(VFD_SEG_SEC_HIGH,bVOL/10,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_LOW,bVOL%10,FALSE);
}
#endif
#ifdef BASS_BOOST_DRIVER
else if (bChannel ==CH_MODE_BASSBOOST)
{
vVfdSegDisplay(VFD_SEG_SEC_LOW,bVOL,FALSE);
}
#endif
else
{
if (bVOL > 12)
{
#ifndef USE_RDS
vVfdSegDisplay(VFD_SEG_MIN_HIGH,SEG_CHAR_PLUSE,FALSE);
#endif
bVOL -= 12;
}
else if (bVOL < 12)
{
//vVfdSegDisplay(VFD_SEG_HR,SEG_CHAR__,FALSE);
vVfdSegDisplay(VFD_SEG_MIN_LOW,SEG_CHAR__,FALSE);
bVOL = 12 - bVOL;
}
else
{
//vVfdSegDisplay(VFD_SEG_HR,SEG_CLEAN,FALSE);
vVfdSegDisplay(VFD_SEG_MIN_LOW,SEG_CLEAN,FALSE);
bVOL = 0;
}
vVfdSegDisplay(VFD_SEG_SEC_HIGH,bVOL/10,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_LOW,bVOL%10,FALSE);
//vVfdSegDisplay(VFD_SEG_MIN_HIGH,bVOL/10,FALSE);
//vVfdSegDisplay(VFD_SEG_MIN_LOW,bVOL%10,FALSE);
//vVfdSegDisplay(VFD_SEG_SEC_HIGH,SEG_CHAR_d,FALSE);
//vVfdSegDisplay(VFD_SEG_SEC_LOW,SEG_CHAR_B,FALSE);
}
if (_bSysState == TUNER_STATE)
{
vVfdSymbol(VFD_SYM_TUNER);
vVfdSymbol(VFD_SYM_LOCK_ON);
}
if (_bPWRMode < 4)
_bVfdTimer = 200;
}
#endif
#ifdef DVD_DECODE
/************************************************************************
Function :
Description :
Parameter :
Return :
************************************************************************/
void vAdoInDisplay(BYTE bTmp) large
{
if (_bPlayerMute==FALSE) // mute off
{
if(bTmp==SPDIF1_STATE) vVfdMessage(VFD_MESSAGE_SPDIF1);
else vVfdMessage(VFD_MESSAGE_SPDIF2);
}
else
{
_bVfdTimer = 0;
vVfdMessage(VFD_MESSAGE_MUTE);
}
}
#endif
////////////////////////////////////////////////////////////////////
//Display the frequency
//
#ifdef USE_RDS
#define VFD_CHAR_NUMBER 7
/*
void VfdTunerMsg(BYTE bMsgIdIdx) large
{
vVfdShowMsg( bMsgIdIdx, FALSE);
}
*/
/************************************************************************
Function :
Description :
Parameter :
Return :
************************************************************************/
void VfdTunerSetChar(BYTE bSeg, BYTE bCode) large
{
BYTE *pbChar;
vVfdSegDisplay(bSeg, bCode, FALSE);
}
/************************************************************************
Function :
Description :
Parameter :
Return :
************************************************************************/
code BYTE bVfdCharList[]={SEG_CHAR_A,
SEG_CHAR_B,
SEG_CHAR_C,
SEG_CHAR_d, //D
SEG_CHAR_E,
SEG_CHAR_F,
SEG_CHAR_G,
SEG_CHAR_H,
SEG_CHAR_I,
SEG_CHAR_J,
SEG_CHAR_K,
SEG_CHAR_L,
SEG_CHAR_M,
SEG_CHAR_N,
SEG_CHAR_O,
SEG_CHAR_P,
SEG_CHAR_q,
SEG_CHAR_R,
SEG_CHAR_S,
SEG_CHAR_T,
SEG_CHAR_U,
SEG_CHAR_V,
SEG_CHAR_W,
SEG_CHAR_X,
SEG_CHAR_Y,
SEG_CHAR_Z
};
BYTE bGetCharIndex(BYTE bValue)large
{
if((bValue>=0x30)&&(bValue<=0x39))//it the digital number
{
return(bValue-0x30);
}
else if((bValue>=0x41)&&(bValue<=0x5a))//"A"--"Z"
{
return (bVfdCharList[bValue-0x41]);
}
else if ((bValue>=0x61)&&(bValue<=0x7a))//"a"--"z"
{
return (bVfdCharList[bValue-0x61]);
}
/*else if(bValue==0x2c)//","
{
return(VFD_NUM_SEMCON);
}
else if(bValue==0x2d)//"-"
{
return(VFD_NUM_MID_LINE);
}
else if(bValue==0x2e)//"."
{
return(VFD_NUM_STOP);
}
else if(bValue==0x2f)//"/"
{
return(VFD_NUM_SK_LINE);
}
else if(bValue==0x20)
{
return(VFD_NUM_MULP);
}
*/
else
{
//return clear number
return(SEG_CLEAN);
}
}
/************************************************************************
Function :
Description :
Parameter :
Return :
************************************************************************/
code BYTE pbVfdListPosition[]={
VFD_SEG_SEC_LOW,VFD_SEG_SEC_HIGH,VFD_SEG_MIN_LOW,VFD_SEG_MIN_HIGH,
VFD_SEG_HR,VFD_SEG_CHAP_LOW,VFD_SEG_CHAP_HIGH
};
void VfdShowRDSInfor(BYTE bStep, BYTE *pbRdsData)large
{
BYTE i=0;
BYTE bTemp;
//clear the vfd
vVfdClearAll();
vVfdSymbol(VFD_SYM_COLON_NONE);
vVfdSymbol(VFD_SYM_TUNER_FMAM_OFF);
vVfdSymbol(VFD_SYM_MEM_OFF);
vVfdSymbol(VFD_SYM_A_CODE_STEROE_OFF);
vVfdSymbol(VFD_SYM_A_CODE_RDS);
bTemp=VFD_CHAR_NUMBER*(bStep/VFD_CHAR_NUMBER);
for(i=0;i<((bStep%VFD_CHAR_NUMBER)+1);i++)
{
if((bTemp+i)>=64)
{
VfdTunerSetChar(pbVfdListPosition[(bStep%VFD_CHAR_NUMBER)-i],10);
}
else
{
VfdTunerSetChar(pbVfdListPosition[(bStep%VFD_CHAR_NUMBER)-i],bGetCharIndex(pbRdsData[bTemp+i]));
}
}
if((bStep/VFD_CHAR_NUMBER)!=0)
{
bTemp=(bStep/VFD_CHAR_NUMBER-1)*VFD_CHAR_NUMBER+((bStep%VFD_CHAR_NUMBER)+1);
for(i=0;i<(VFD_CHAR_NUMBER-((bStep%VFD_CHAR_NUMBER)+1));i++)
{
if((bTemp+i)>=64)
{
VfdTunerSetChar(pbVfdListPosition[VFD_CHAR_NUMBER-1-i],10);
}
else
{
VfdTunerSetChar(pbVfdListPosition[VFD_CHAR_NUMBER-1-i],
bGetCharIndex(pbRdsData[bTemp+i]));
}
}
}
}
#endif
void vVfdShowFreq(WORD Freq, BYTE Band) large
{
if(Band == BAND_FM)
{
vVfdSymbol(VFD_SYM_TUNER_FM_ON);
}
else
{
vVfdSymbol(VFD_SYM_TUNER_AM_ON);
}
if((Freq/10000) == FALSE)
{
vVfdSegDisplay(VFD_SEG_HR, SEG_CLEAN,FALSE);//if msb is 0, no display
}
else
{
vVfdSegDisplay(VFD_SEG_HR, (BYTE)(Freq/10000),FALSE);
}
Freq = Freq%10000;
if(((Freq/1000) == FALSE) && (Band == BAND_AM))//if am msb is 0, no display
{
vVfdSegDisplay(VFD_SEG_MIN_HIGH, SEG_CLEAN,FALSE);
}
else
{
vVfdSegDisplay(VFD_SEG_MIN_HIGH, (BYTE)(Freq/1000),FALSE);
}
Freq = Freq%1000;
vVfdSegDisplay(VFD_SEG_MIN_LOW, (BYTE)(Freq/100),FALSE);
Freq = Freq%100;
vVfdSegDisplay(VFD_SEG_SEC_HIGH, (BYTE)(Freq/10),FALSE);
Freq = Freq%10;
vVfdSegDisplay(VFD_SEG_SEC_LOW, (BYTE)Freq,FALSE);
vVfdSymbol(VFD_SYM_TUNER);
vVfdSymbol(VFD_SYM_LOCK_ON);
}
void vVfdTunerStoringFlash(BYTE bState,BYTE bNum1, BYTE bNum0) large
{
vVfdSymbol(VFD_SYM_TUNER_FMAM_OFF);
// vVfdMessage(VFD_MESSAGE_CLR_ALL);
vVfdSymbol(VFD_SYM_TUNER);
if (bState == FLASH_ON)
{
vVfdSegDisplay(VFD_SEG_CHAP_HIGH,SEG_CLEAN ,FALSE);
vVfdSegDisplay(VFD_SEG_CHAP_LOW ,SEG_CLEAN ,FALSE);
vVfdSegDisplay(VFD_SEG_HR ,SEG_CLEAN ,FALSE);
vVfdSegDisplay(VFD_SEG_MIN_LOW ,bNum0 ,FALSE);
vVfdSegDisplay(VFD_SEG_MIN_HIGH,bNum1 ,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_HIGH ,SEG_CLEAN ,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_LOW ,SEG_CLEAN ,FALSE);
}
else
vVfdMessage(VFD_MESSAGE_CLR_ALL);
}
/************************************************************************
Function :
Description :
Parameter :
Return :
************************************************************************/
#ifdef SLEEP_FUNCTION
#if defined(DAV935)||defined(DVR938)
void VfdShowSleepTime() large
{
BYTE temp = 0;
//temp = _wSleepCounter/60;
temp = _wSleepCounter/50;
if(_bSysState ==TUNER_STATE)
{
switch (_bSetSleepState)
{
case SLEEP_ON:
case SLEEP_5M:
case SLEEP_10M:
case SLEEP_15M:
case SLEEP_30M:
case SLEEP_60M:
case SLEEP_90M:
case SLEEP_ON_DISPLAY:
if(temp >90)
temp = 90;
if(temp < 0)
temp = 0;
vVfdSegDisplay(VFD_SEG_CHAP_HIGH,temp/10 ,FALSE);
temp = temp%10;
vVfdSegDisplay(VFD_SEG_CHAP_LOW ,temp ,FALSE);
break;
case SLEEP_OFF:
// vVfdSegDisplay(VFD_SEG_CHAP_HIGH,SEG_CLEAN ,FALSE);
// vVfdSegDisplay(VFD_SEG_CHAP_LOW,SEG_CLEAN ,FALSE);
vVfdSegDisplay(VFD_SEG_CHAP_HIGH,SEG_DIGIT_0 ,FALSE);
vVfdSegDisplay(VFD_SEG_CHAP_HIGH,SEG_DIGIT_0 ,FALSE);
break;
}
}
}
#elif defined(DVR979)
void VfdShowSleepTime() large
{
BYTE temp = 0;
//temp = _wSleepCounter/60;
temp = _wSleepCounter/50;
if(_bSysState ==TUNER_STATE)
{
switch (_bSetSleepState)
{
case SLEEP_ON:
case SLEEP_15M:
case SLEEP_30M:
case SLEEP_45M:
case SLEEP_60M:
case SLEEP_75M:
case SLEEP_90M:
case SLEEP_ON_DISPLAY:
vVfdTempMessage(VFD_MESSAGE_SLEEP,0);
if(temp >90)
temp = 90;
if(temp < 0)
temp = 0;
//vVfdSegDisplay(VFD_SEG_CHAP_HIGH,temp/10 ,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_HIGH,temp/10 ,FALSE);
temp = temp%10;
//vVfdSegDisplay(VFD_SEG_CHAP_LOW ,temp ,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_LOW,temp ,FALSE);
break;
case SLEEP_OFF:
vVfdTempMessage(VFD_MESSAGE_SLEEP_OFF,0);
//vVfdSegDisplay(VFD_SEG_CHAP_HIGH,SEG_CLEAN ,FALSE);
//vVfdSegDisplay(VFD_SEG_CHAP_LOW,SEG_CLEAN ,FALSE);
break;
}
}
}
void VfdShowDvdSleepTime() large
{
BYTE temp = 0;
//temp = _wSleepCounter/60;
temp = _wSleepCounter/39;
if(_bSysState ==DVD_STATE)
{
switch (_bSetSleepState)
{
case SLEEP_ON:
case SLEEP_15M:
case SLEEP_30M:
case SLEEP_45M:
case SLEEP_60M:
case SLEEP_75M:
case SLEEP_90M:
case SLEEP_ON_DISPLAY:
vVfdTempMessage(VFD_MESSAGE_SLEEP,0);
if(temp >90)
temp = 90;
if(temp < 0)
temp = 0;
//vVfdSegDisplay(VFD_SEG_CHAP_HIGH,temp/10 ,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_HIGH,temp/10 ,FALSE);
temp = temp%10;
//vVfdSegDisplay(VFD_SEG_CHAP_LOW ,temp ,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_LOW,temp ,FALSE);
break;
case SLEEP_OFF:
vVfdTempMessage(VFD_MESSAGE_SLEEP_OFF,0);
//vVfdSegDisplay(VFD_SEG_CHAP_HIGH,SEG_CLEAN ,FALSE);
//vVfdSegDisplay(VFD_SEG_CHAP_LOW,SEG_CLEAN ,FALSE);
break;
}
if (_bPWRMode < 4)
_bVfdTimer = 200;
}
}
#endif
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -