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

📄 vfd_pub.c

📁 MTK 1389e版 MINI组合音响代码
💻 C
📖 第 1 页 / 共 3 页
字号:
     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 + -