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

📄 audio.c

📁 dm270 source code
💻 C
📖 第 1 页 / 共 3 页
字号:
/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Input Channel Select			 				*
*	Input		:	which input channel										*	
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Input_SelChannel(unsigned char channel)
{
	switch(channel)
	{
		case	Channel_1:
			DEV_ADEC_AdclPath_LINSEL(INPUT1);
			DEV_ADEC_AdcrPath_RINSEL(INPUT1);
			Vol_InputChannel_Index = 1;
			break;

		case	Channel_2:
			DEV_ADEC_AdclPath_LINSEL(INPUT2);
			DEV_ADEC_AdcrPath_RINSEL(INPUT2);
			Vol_InputChannel_Index = 2;
			break;

		case	Channel_3:
			DEV_ADEC_AdclPath_LINSEL(INPUT3);
			DEV_ADEC_AdcrPath_RINSEL(INPUT3);
			Vol_InputChannel_Index = 3;
			break;
	}
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Input Step Volume				 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Input_StepVolume(BOOL trueorfalse)
{
	if(trueorfalse)			//	TRUE  = input volume step Up,
							//	FALSE = input volume step Down
	{
		R_input_vol += API_Vol_StepIndex;
		if(R_input_vol >= 63)	R_input_vol = 63;
		else					R_input_vol += 0;
		
		L_input_vol += API_Vol_StepIndex;
		if(L_input_vol >= 63)	L_input_vol = 63;
		else					L_input_vol += 0;
		
	}
	else
	{
		R_input_vol -= API_Vol_StepIndex;
		if(R_input_vol <= 0)	R_input_vol = 0;
		else					R_input_vol -= 0;
		
		L_input_vol -= API_Vol_StepIndex;
		if(L_input_vol <=0)		L_input_vol = 0;
		else					L_input_vol -= 0;
	}
	
	DEV_ADEC_LeftInputVol_LINVOL(L_input_vol);
	DEV_ADEC_RightInputVol_RINVOL(R_input_vol);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Input Set Volume				 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Input_SetVolume(unsigned char vol)
{
	L_input_vol = vol;
	R_input_vol = vol;
	DEV_ADEC_LeftInputVol_LINVOL(L_input_vol);
	DEV_ADEC_RightInputVol_RINVOL(R_input_vol);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Output CHannnel Select	 					*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Output_SelChannel(unsigned char channel)
{
	switch(channel)
	{
		case	Channel_1:
			API_AUDIO_PowerStandBy(TRUE);
			DEV_ADEC_PwrMgmt2_OUT2(FALSE);
			DEV_ADEC_PwrMgmt2_OUT1(TRUE);
			Vol_OutputChannel_Index = 1;
			API_AUDIO_PowerStandBy(FALSE);
			break;
		
		case	Channel_2:
			API_AUDIO_PowerStandBy(TRUE);
			DEV_ADEC_PwrMgmt2_OUT1(FALSE);
			DEV_ADEC_PwrMgmt2_OUT2(TRUE);
			Vol_OutputChannel_Index = 2;
			API_AUDIO_PowerStandBy(FALSE);
			break;
	}
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Output Step Volume 		 					*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Output_StepVolume(BOOL trueorfalse)
{
	if(trueorfalse)
	{
		R_output_vol += API_Vol_StepIndex;

		if(R_output_vol >= 127)		R_output_vol = 127;
		else if(R_output_vol <= 47)	R_output_vol = 47 + API_Vol_StepIndex;
		else						R_output_vol += 0;
		
		L_output_vol += API_Vol_StepIndex;
		if(L_output_vol >= 127)		L_output_vol = 127;
		else if(L_output_vol <= 47)	L_output_vol = 47 + API_Vol_StepIndex;
		else						L_output_vol += 0;
		
	}
	else
	{
		R_output_vol -= API_Vol_StepIndex;
		if(R_output_vol <= 47)			R_output_vol = 47;
		else if(R_output_vol >= 127)	R_output_vol = 127 - API_Vol_StepIndex;
		else							R_output_vol -= 0;
		
		L_output_vol -= API_Vol_StepIndex;
		if(L_output_vol <=47)			L_output_vol = 47;
		else if(L_output_vol >= 127)	L_output_vol = 127 - API_Vol_StepIndex;
		else							L_output_vol -= 0;
	}

	API_OutputVolumeIndex = L_output_vol + R_output_vol - 94;

	if(Vol_OutputChannel_Index == 1)
	{
		DEV_ADEC_LOUT1Vol_LOUT1VOL(L_output_vol);
		DEV_ADEC_ROUT1Vol_ROUT1VOL(R_output_vol);
	}
	else
	{
		DEV_ADEC_LOUT2Vol_LOUT2VOL(L_output_vol);
		DEV_ADEC_ROUT2Vol_ROUT2VOL(R_output_vol);
	}
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Output Set Volume 		 					*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Output_SetVolume(unsigned char volR ,unsigned char volL)
{
	int	tempR, tempL;
	int	steptemp;
	
	steptemp = (127-47)/API_Vol_StepSet;
	
	if( volR == 0 )
	{
		tempR = 47;
	}
	else if( volR > 0 && volR < (API_Vol_StepSet+1) )
	{
		tempR = 127 - steptemp*( API_Vol_StepSet - volR );
	}
	else	tempR = 127;

	if( volL == 0 )
	{
		tempL = 47;
	}
	else if( volL > 0 && volL < (API_Vol_StepSet+1) )
	{
		tempL = 127 - steptemp*( API_Vol_StepSet - volL );
	}
	else	tempL = 127;

	L_output_vol = tempR;
	R_output_vol = tempL;
	API_OutputVolumeIndex = L_output_vol + R_output_vol - 94;
	
	if(Vol_OutputChannel_Index == 1)
	{
		DEV_ADEC_LOUT2Vol_LOUT2VOL(OutputMute);
		DEV_ADEC_ROUT2Vol_ROUT2VOL(OutputMute);
		DEV_ADEC_LOUT1Vol_LOUT1VOL(L_output_vol);
		DEV_ADEC_ROUT1Vol_ROUT1VOL(R_output_vol);
	}
	else
	{
		DEV_ADEC_LOUT1Vol_LOUT1VOL(OutputMute);
		DEV_ADEC_ROUT1Vol_ROUT1VOL(OutputMute);
		DEV_ADEC_LOUT2Vol_LOUT2VOL(L_output_vol);
		DEV_ADEC_ROUT2Vol_ROUT2VOL(R_output_vol);
	}
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Step Volume Balance			 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_StepBalance(BOOL trueorfalse)
{
	int	vol_temp1;
	int	vbr_index;
	int	vbl_index;
	
	if(trueorfalse)		//	TRUE	:Right Volume Up
	{					//	FALSE	:Left Volume Up
		if(API_Balance_ValueIndex == 10)	API_Balance_ValueIndex = 10;
		else								API_Balance_ValueIndex += API_Balance_StepIndex;
	}
	else
	{
		if(API_Balance_ValueIndex == 0)		API_Balance_ValueIndex = 0;
		else								API_Balance_ValueIndex -= API_Balance_StepIndex;
	}
	
	vbr_index = API_Balance_ValueIndex;
	vbl_index = 10 - API_Balance_ValueIndex;
	vol_temp1 = API_OutputVolumeIndex;
	vol_temp1 *= vbr_index;
	vol_temp1 /= 10;
	R_output_vol = vol_temp1 + 47;
	vol_temp1 = API_OutputVolumeIndex;
	vol_temp1 *= vbl_index;
	vol_temp1 /= 10;
	L_output_vol = vol_temp1 + 47;

	if(Vol_OutputChannel_Index == 1)
	{
			DEV_ADEC_LOUT1Vol_LOUT1VOL(L_output_vol);
			DEV_ADEC_ROUT1Vol_ROUT1VOL(R_output_vol);
	}		
	else
	{
			DEV_ADEC_LOUT2Vol_LOUT2VOL(L_output_vol);
			DEV_ADEC_ROUT2Vol_ROUT2VOL(R_output_vol);
	}
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Output Step Volume Treble 					*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_StepTreble(BOOL trueorfalse)
{
	if(trueorfalse)		//	TRUE	:Up
	{					//	FALSE	:Down
		if(API_Treble_ValueIndex == 1)	API_Treble_ValueIndex = 1;
		else							API_Treble_ValueIndex -= API_Treble_StepIndex;
	}
	
	else
	{
		if(API_Treble_ValueIndex == 11)	API_Treble_ValueIndex = 11;
		else							API_Treble_ValueIndex += API_Treble_StepIndex;
	}
	
	DEV_ADEC_TrebleCtrl_TRBL(API_Treble_ValueIndex);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Output Set Volume Treble 						*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_SetTreble(unsigned char value)
{
	if(value >=11)		API_Treble_ValueIndex = 11;
	else if(value <=1)	API_Treble_ValueIndex = 1;
	else				API_Treble_ValueIndex = value;
	DEV_ADEC_TrebleCtrl_TRBL(API_Treble_ValueIndex);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Output Step Volume Bass 		 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_StepBass(BOOL trueorfalse)
{
	if(trueorfalse)		//	TRUE	:Up
	{					//	FALSE	:Down
		if(API_Bass_ValueIndex == 1)	API_Bass_ValueIndex = 1;
		else							API_Bass_ValueIndex -= API_Bass_StepIndex;
	}
	
	else
	{
		if(API_Bass_ValueIndex == 11)	API_Bass_ValueIndex = 11;
		else							API_Bass_ValueIndex += API_Bass_StepIndex;
	}
	
	DEV_ADEC_BassCtrl_BASS(API_Bass_ValueIndex);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Output Set Volume Bass 		 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_SetBass(unsigned char value)
{
	if(value >=11)		API_Bass_ValueIndex = 11;
	else if(value <=1)	API_Bass_ValueIndex = 1;
	else				API_Bass_ValueIndex = value;
	DEV_ADEC_BassCtrl_BASS(API_Bass_ValueIndex);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Output Mute Off		 		 				*
*	Return		:	None													*

⌨️ 快捷键说明

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