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

📄 audio.c

📁 我个人编写的车载dvd上的程序
💻 C
📖 第 1 页 / 共 3 页
字号:
                 if(AudioMid > 6){
                 	str[5] = 'R';
                     str[7] = '0' + AudioMid -6;
                 	}else {
                 	 str[5] = 'L';
                 	 str[7] = '0' + 6 - AudioMid;
                     	}
                 	str[6] =' ';

#else
			Display(DISP_CLEAR2);
			DispBuff[2][6]='M';
			DispBuff[2][7]='I';
			DispBuff[2][8]='D';
			DispBuff[2][9]=' ';
			DispBuff[2][10]=' ';
			DispBuff[2][11]=' ';
			DispBuff[2][12]=' ';
			DispBuff[2][13]='0';
			if(AudioMid>6)
			{
				DispBuff[2][12]='+';
				DispBuff[2][13]='0'+AudioMid-6;
			}
			else if(AudioMid<6)
			{
				DispBuff[2][12]='-';
				DispBuff[2][13]='0'+6-AudioMid;
			}
			Display(DISP_REFRESH2);
#endif			
			break;
		case AUDIO_MODE_TRE:
#ifdef SINO_MOS
                     str[0] = 'T';
                     str[1] = 'R';
                     str[2] = 'E';
                     str[3] = ' ';
                     str[4] = ' ';
                     if(AudioTre > 6)
                     	{
                     	   str[5] = 'R';
                     	   str[7] = '0'+AudioTre -6;
                     	}else{
                     	   str[5] = 'L';
                     	   str[7] = '0' +6 - AudioTre;
                     		}
                     	str[6] = ' ';

#else
			Display(DISP_CLEAR2);
			DispBuff[2][6]='T';
			DispBuff[2][7]='R';
			DispBuff[2][8]='E';
			DispBuff[2][9]=' ';
			DispBuff[2][10]=' ';
			DispBuff[2][11]=' ';
			DispBuff[2][12]=' ';
			DispBuff[2][13]='0';
			if(AudioTre>6)
			{
				DispBuff[2][12]='+';
				DispBuff[2][13]='0'+AudioTre-6;
			}
			else if(AudioTre<6)
			{
				DispBuff[2][12]='-';
				DispBuff[2][13]='0'+6-AudioTre;
			}
			Display(DISP_REFRESH2);
#endif			
			break;
		case AUDIO_MODE_BAL:
#ifdef SINO_MOS
                    str[0] =  'B';
                    str[1] =  'A';
                    str[2] =  'L';
                    str[3] = ' ';
                 if(AudioBal >12){  
                    str[4] ='R';
                    str[6] = '0' + (AudioBal - 12)/10;
                    str[7] = '0' + (AudioBal - 12)%10;
                 	}else{
                 	str[4] = 'L';
                 	str[6] = '0' + (12 - AudioBal)/10;
                 	str[7] = '0' + (12 - AudioBal)%10;
                 		}
                 	str[5] = ' ';
                   
#else
			Display(DISP_CLEAR2);
			DispBuff[2][6]='B';
			DispBuff[2][7]='A';
			DispBuff[2][8]='L';
			DispBuff[2][9]=' ';
			DispBuff[2][10]=' ';
			DispBuff[2][11]=' ';
			DispBuff[2][12]=' ';
			DispBuff[2][13]='0';
			if(AudioBal>12)
			{
				DispBuff[2][11]='R';
				DispBuff[2][12]='0'+(AudioBal-12)/10;
				DispBuff[2][13]='0'+(AudioBal-12)%10;
			}
			else if(AudioBal<12)
			{
				DispBuff[2][11]='L';
				DispBuff[2][12]='0'+(12-AudioBal)/10;
				DispBuff[2][13]='0'+(12-AudioBal)%10;
			}
			Display(DISP_REFRESH2);
#endif			
			break;
		case AUDIO_MODE_FAD:
#ifdef SINO_MOS
                  str[0] = 'F';
                  str[1] = 'A';
                  str[2] = 'D';
                  str[3] = ' ';
                  if(AudioFad > 12){
                  	str[4] = 'F';
                  	str[6] = '0' + (AudioFad - 12)/10;
                  	str[7] = '0' + (AudioFad - 12)%10;
                  	}else{
                  	 str[4] = 'R';
                  	 str[6] = '0' + (12 - AudioFad)/10;
                  	 str[7] = '0' + (12 - AudioFad)%10;
                  		}
                  	str[5] = ' ';
#else
			Display(DISP_CLEAR2);
			DispBuff[2][6]='F';
			DispBuff[2][7]='A';
			DispBuff[2][8]='D';
			DispBuff[2][9]=' ';
			DispBuff[2][10]=' ';
			DispBuff[2][11]=' ';
			DispBuff[2][12]=' ';
			DispBuff[2][13]='0';
			if(AudioFad>12)
			{
				DispBuff[2][11]='F';
				DispBuff[2][12]='0'+(AudioFad-12)/10;
				DispBuff[2][13]='0'+(AudioFad-12)%10;
			}
			else if(AudioFad<12)
			{
				DispBuff[2][11]='R';
				DispBuff[2][12]='0'+(12-AudioFad)/10;
				DispBuff[2][13]='0'+(12-AudioFad)%10;
			}
			Display(DISP_REFRESH2);
#endif			
			break;

		case AUDIO_MODE_MUTE:

			break;

		case AUDIO_MODE_EQ:
			/*switch(AudioEQMode)
			{
				case EQ_MODE_OFF:	
					DispNum[0]='D';
					DispNum[1]='S';
					DispNum[2]='P';
					DispNum[3]=' ';
					DispNum[4]='O';
					DispNum[5]='F';
					DispNum[6]='F';
					DispNum[7]=' ';
					break;
					
				case EQ_MODE_CLASSIC:		
					DispNum[0]='C';
					DispNum[1]='L';
					DispNum[2]='A';
					DispNum[3]='S';
					DispNum[4]='S';
					DispNum[5]='I';
					DispNum[6]='C';
					DispNum[7]=' ';
					F_DISP_DSP=1;
					F_DISP_CLASSIC=1;
					F_DISP_POP=0;
					F_DISP_ROCK=0;
					break;
					
				case EQ_MODE_POP:		
					DispNum[0]=' ';
					DispNum[1]=' ';
					DispNum[2]='P';
					DispNum[3]='O';
					DispNum[4]='P';
					DispNum[5]=' ';
					DispNum[6]=' ';
					DispNum[7]=' ';
					F_DISP_DSP=1;
					F_DISP_CLASSIC=0;
					F_DISP_POP=1;
					F_DISP_ROCK=0;
					break;
					
				case EQ_MODE_ROCK:	
					DispNum[0]=' ';
					DispNum[1]=' ';
					DispNum[2]='R';
					DispNum[3]='O';
					DispNum[4]='C';
					DispNum[5]='K';
					DispNum[6]=' ';
					DispNum[7]=' ';
					F_DISP_DSP=1;
					F_DISP_CLASSIC=0;
					F_DISP_POP=0;
					F_DISP_ROCK=1;
					break;
			}	*/
			break;
	}
	
#ifdef D_STORE_DATA_IN_EEPROM
#if 0
	        AudioBuff[0]  = AudioVol;
		 AudioBuff[1] = AudioMid;
		 AudioBuff[2] = AudioTre;
		 AudioBuff[3] = AudioBal;
		 AudioBuff[4] = AudioFad;
		 AudioBuff[5] = 0xaa;
		 EepromWrite(EEPROM_ADDR,AUDIO_VOL_POS,6,&AudioBuff[0]);
#endif		 
#endif
}
#endif
/*********************************************
	Function:		ChangeToAudioMode
	Description:	
	Write/Modify:	Perry.Liang
	Time:		2006-1-24- 15:18:56
*********************************************/
void ChangeToAudioMode(void)
{
	if(System.DispMode.Current!=DISPMODE_AUDIO)
		System.DispMode.Requst=DISPMODE_AUDIO;
	AudioTimer=30;
	F_AudioDispReq=1;
}

/*********************************************
	Function:		AudioKey
	Description:	
	Write/Modify:	Perry.Liang
	Time:		2004-8-9- 16:31:46
*********************************************/
void AudioKey(void)
{

	if(System.PowerMode!=POWERMODE_POWERON)return;
	/*if(KeyCode!=S_AD_MUTE
	&&KeyCode!=P_EC_UP
	&&KeyCode!=P_EC_DN
	&&F_MuteKey)return;*/
#if 0
	if((AudioTimer>1)
		
		&&(CHECK_KEY!=P_AD_SEL)
		
		&&(CHECK_KEY!=P_AD_VOLUP)
		&&(CHECK_KEY!=P_AD_VOLDN)
		
		&&(CHECK_KEY!=P_AD_MUTE)
	
		&&(CHECK_KEY!=P_RM_SEL)
		&&(CHECK_KEY!=P_RM_VOLUP)
		&&(CHECK_KEY!=P_RM_VOLDN)
		&&(CHECK_KEY!=P_RM_MUTE)
		//&&(CHECK_KEY!=P_AD_DSP)
		&&(CHECK_KEY!=NOKEY)
 
		)
		AudioTimer=1;
#endif		
     if((AudioTimer > 1)
     	   &&(SysCommand != SYSTEM_COMMAND_AUDIO_OPTION)
     	   &&(SysCommand != SYSTEM_COMMAND_AUDIO_VOL_UP)
     	   &&(SysCommand != SYSTEM_COMMAND_AUDIO_VOL_DN)
     	   &&(SysCommand !=  SYSTEM_COMMAND_AUDIO_MUTE)
     	   &&(SysCommand != SYSTEM_COMMAND_IDLE)
     	   ) 
     	   AudioTimer  = 1;
	switch(SysCommand)
	{

		case SYSTEM_COMMAND_AUDIO_OPTION:
			ChangeToAudioMode();
			AudioWorkMode=MaxMinChangeProtect(AudioWorkMode, 1, 6, 1, 0);	
			//debug("Audio mode");
			//debug_val("AudioWorkMode:",AudioWorkMode);
			break;
			
		case SYSTEM_COMMAND_AUDIO_VOL_UP:
		
			if(F_PTYSelect)break;
			if(F_MuteKey) 
			{
				F_MuteKey=0;
				AudioMute(SOFTOFF);
				AudioWorkMode=AUDIO_MODE_IDLE;
			}
			ChangeToAudioMode();
			//debug_val("AudioWorkMode:",AudioWorkMode);
			AudioMenu(UP);
			//debug("Audio Vol up");
			break;
			
		case SYSTEM_COMMAND_AUDIO_VOL_DN:
			if(F_PTYSelect)break;
			if(F_MuteKey) 
			{
				F_MuteKey=0;
				AudioMute(SOFTOFF);
				AudioWorkMode=AUDIO_MODE_IDLE;
			}
			ChangeToAudioMode();
			AudioMenu(DOWN);
			//debug("Audio vol DN");
			break;

		case SYSTEM_COMMAND_AUDIO_MUTE:

			F_MuteKey=~F_MuteKey;
			if(F_MuteKey)
			{
				if(System.DispMode.Current!=DISPMODE_AUDIO)
					System.DispMode.Requst=DISPMODE_AUDIO;
				AudioWorkMode=AUDIO_MODE_MUTE;
				F_AudioDispReq=1;
				AudioMute(SOFTON);
				//AMute(SOFTON);
				//debug("Audio Mute on");
			}
			else
			{
				AudioTimer=1;
				AudioMute(SOFTOFF);
			      // AMute(SOFTOFF);
			//debug("Audio Mute off");
			}
			
			break;
			
		case SYSTEM_COMMAND_AUDIO_EQ_BAND:		
			F_LOUD=~F_LOUD;
			if(F_LOUD)
			{
				AudioIXBass=2;
				AudioIXBassFre=2;
			}
			else
			{
				AudioIXBass=0;
				AudioIXBassFre=0;
			}
			F_VolNotSoftChange=1;
			AudioCalc(AUDIO_ALL_VAL);
			AudioSend(AUDIO_AREA_LOUD_VOL);
			//F_DISP_LOUD=F_LOUD;
			//DisplayRefresh();
			break;

	}
	#ifdef SINO_MOS

       // System.DispMode.Requst  = DISPMODE_AUDIO;
	#endif

}

/*********************************************
	Function:		AudioMenu
	Description:	
	Write/Modify:	Perry.Liang
	Time:		2004-8-9- 16:31:52
*********************************************/
void AudioMenu(signed char dirc)
{
	switch(AudioWorkMode)
	{
		case AUDIO_MODE_IDLE:
			AudioWorkMode=AUDIO_MODE_VOL;
		case AUDIO_MODE_VOL:
			AudioVol=MaxMinChangeProtect(AudioVol,dirc,46,0,1);
			F_VolNotSoftChange=1;
			AudioCalc(AUDIO_ALL_VAL);
			AudioSend(AUDIO_AREA_SOURCE_VOL);
			//debug_val("AudioVol:",AudioVol);
			break;
			/*
		case AUDIO_MODE_SUBW:
			AudioSubw=MaxMinChangeProtect(AudioSubw,dirc,12,0,1);
			AudioSubw_Bk=AudioSubw; // jack 5_13 bug 2 zone 4
			AudioCalc(AUDIO_SUBW);
			AudioSend(AUDIO_AREA_SUBW);
			break;
		case AUDIO_MODE_SUBW_FRE:
			AudioSubwFre=MaxMinChangeProtect(AudioSubwFre,dirc,3,1,1);
			AudioSubwFre_Bk=AudioSubwFre;
			AudioCalc(AUDIO_SUBW_FRE);
			AudioSend(AUDIO_AREA_SMB);
			break;
		case AUDIO_MODE_IXBASS:
			AudioIXBass=MaxMinChangeProtect(AudioIXBass,dirc,3,1,1);
			AudioIXBass_Bk=AudioIXBass;
			AudioCalc(AUDIO_ALL_VAL);
			AudioSend(AUDIO_AREA_LOUD_VOL);
			break;
		case AUDIO_MODE_IXB_FRE:
			AudioIXBassFre=MaxMinChangeProtect(AudioIXBassFre,dirc,3,1,1);
			AudioCalc(AUDIO_IXBAS_FRE);
			AudioSend(AUDIO_AREA_LOUD);
			break;
			*/
		case AUDIO_MODE_BASS:
			AudioBas=MaxMinChangeProtect(AudioBas,dirc,12,0,1);
			AudioCalc(AUDIO_BAS);
			AudioSend(AUDIO_AREA_BASS);
			AudioEQMode=EQ_MODE_OFF;
			break;
			/*
		case AUDIO_MODE_BASS_FRE:
			AudioBasFre=MaxMinChangeProtect(AudioBasFre,dirc,3,0,1);
			AudioCalc(AUDIO_BAS_FRE);
			AudioSend(AUDIO_AREA_SMB);
			break;
		case AUDIO_MODE_BASS_Q:
			AudioBasQ=MaxMinChangeProtect(AudioBasQ,dirc,3,0,1);
			AudioCalc(AUDIO_BAS_Q);
			AudioSend(AUDIO_AREA_BASS);
			break;
			*/
		case AUDIO_MODE_MID:
			AudioMid=MaxMinChangeProtect(AudioMid,dirc,12,0,1);
			AudioCalc(AUDIO_MID);
			AudioSend(AUDIO_AREA_MID);
			break;
			/*
		case AUDIO_MODE_MID_FRE:
			AudioMidFre=MaxMinChangeProtect(AudioMidFre,dirc,3,0,1);
			AudioCalc(AUDIO_MID_FRE);
			AudioSend(AUDIO_AREA_SMB);
			break;
		case AUDIO_MODE_MID_Q:
			AudioMidQ=MaxMinChangeProtect(AudioMidQ,dirc,3,0,1);
			AudioCalc(AUDIO_MID_Q);
			AudioSend(AUDIO_AREA_MID);
			break;
			*/
		case AUDIO_MODE_TRE:
			AudioTre=MaxMinChangeProtect(AudioTre,dirc,12,0,1);
			AudioCalc(AUDIO_TRE);
			AudioSend(AUDIO_AREA_TRE);
			AudioEQMode=EQ_MODE_OFF;
			break;
			/*
		case AUDIO_MODE_TRE_FRE:
			AudioTreFre=MaxMinChangeProtect(AudioTreFre,dirc,3,0,1);
			AudioCalc(AUDIO_TRE_FRE);
			AudioSend(AUDIO_AREA_TRE);
			break;
			*/
		case AUDIO_MODE_BAL:
			AudioBal=MaxMinChangeProtect(AudioBal,dirc,24,0,1);
			AudioCalc(AUDIO_BAL);
			AudioSend(AUDIO_AREA_SPK);
			break;
		case AUDIO_MODE_FAD:
			AudioFad=MaxMinChangeProtect(AudioFad,dirc,24,0,1);
			AudioCalc(AUDIO_FAD);
			AudioSend(AUDIO_AREA_SPK);
			break;

	}
	
}


/*********************************************
	Function:		AudioMute
	Description:	
	Write/Modify:	Perry.Liang
	Time:		2004-8-9- 16:31:56
*********************************************/

void AudioMute(unsigned char type)
{

	switch(type)
	{
		case SOFTON:
			F_MUTE=1;
			AudioCalc(AUDIO_OTHER_VAL);
			AudioSend(AUDIO_AREA_MUTE);
			
			break;
		case SOFTOFF:
			if(F_MuteKey)break;
			F_MUTE=0;
			AudioCalc(AUDIO_OTHER_VAL);
			AudioSend(AUDIO_AREA_MUTE);
		      
			break;
		case HARDON:
			Pin_AMUTE=1;
			break;
		case HARDOFF:
			Pin_AMUTE=0;
			break;
	}
	
}

/*********************************************
	Function:		GetRealLoudTable
	Description:	
	Write/Modify:	Perry.Liang
	Time:		2006-1-24- 15:18:42
*********************************************/
unsigned char GetRealLoudTable(unsigned char ixbass)
{
	switch(AudioIXBass)
	{
		case 1:
			if(AudioVol==0)
				return(0);
			else if(AudioVol<22)
				return(5);
			else if(AudioVol<25)
				return(4);
			else if(AudioVol<31)
				return(3);
			else if(AudioVol<34)
				return(2);
			else if(AudioVol<38)
				return(1);
			else
				return(0);
			break;
		case 2:
			if(AudioVol==0)
				return(0);
			else if(AudioVol<17)
				return(10);
			else if(AudioVol<21)
				return(9);
			else if(AudioVol<23)
				return(8);
			else if(AudioVol<25)
				return(7);
			else if(AudioVol<29)
				return(6);
			else if(AudioVol<31)
				return(5);
			else if(AudioVol<33)
				return(4);
			else if(AudioVol<34)
				return(3);
			else if(AudioVol<37)
				return(2);
			else if(AudioVol<38)
				return(1);
			else
				return(0);
			break;
		case 3:
			if(AudioVol==0)
				return(0);

⌨️ 快捷键说明

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