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

📄 audio.c

📁 dm270 source code
💻 C
📖 第 1 页 / 共 3 页
字号:
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Output_Mute(BOOL trueorfalse)
{
	if(trueorfalse)		//	TRUE = Mute
	{	
		if(Vol_OutputChannel_Index == 1)
		{
			DEV_ADEC_LOUT1Vol_LOUT1VOL(OutputMute);
			DEV_ADEC_ROUT1Vol_ROUT1VOL(OutputMute);
		}
		else
		{
			DEV_ADEC_LOUT2Vol_LOUT2VOL(OutputMute);
			DEV_ADEC_ROUT2Vol_ROUT2VOL(OutputMute);
		}
	}
	else
	{
		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 Reset					 		 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Reset(void)
{
	DEV_ADEC_Reset();
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Set Data Format		 		 				*
*	Return		:	None													*
*	Description	:	Right, Left Justified, I2S, DSP mode select				*
*--------------------------------------------------------------------------*/
void	API_AUDIO_SetDataFormat(unsigned char select)
{
	DEV_ADEC_AudioInterface_FORMAT(select);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Input Mixer Select	 		 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Input_MixerSelect(unsigned char select)
{
	DEV_ADEC_LeftOutMix1_LMIXSEL(select);
	DEV_ADEC_RightOutMix1_RMIXSEL(select);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Input Mic Bias Enable	 		 				*
*	Return		:	None													*
*	Description	:	MIC bias current setting								*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Input_MicBiasEnable(BOOL trueorfalse)
{							//	TRUE = MIC Power On
	DEV_ADEC_PwrMgmt1_MICB(trueorfalse);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Input Mic Boost		 		 				*
*	Return		:	None													*
*	Description	:	record boost the same setting							*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Input_MicBoost(unsigned char level)
{
	DEV_ADEC_AdclPath_LMICBOOST(level);
	DEV_ADEC_AdcrPath_RMICBOOST(level);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Output Mixer Select	 		 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Output_MixerSelect(BOOL dac_mixer)
{
	if(dac_mixer)	//dac_mixer		TRUE = dac,		FALSE = mixer	
	{
		DEV_ADEC_LeftOutMix1_LI2LO(FALSE);
		DEV_ADEC_RightOutMix2_RI2RO(FALSE);
		DEV_ADEC_LeftOutMix1_LD2LO(TRUE);
		DEV_ADEC_RightOutMix2_RD2RO(TRUE);
	}
	else
	{
		DEV_ADEC_LeftOutMix1_LD2LO(FALSE);
		DEV_ADEC_RightOutMix2_RD2RO(FALSE);
		DEV_ADEC_LeftOutMix1_LI2LO(TRUE);
		DEV_ADEC_RightOutMix2_RI2RO(TRUE);
	}
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Output Mixer Gain		 		 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Output_MixerGain(int vol)
{
	int	gain;

	if(vol > 7)			gain = 0;
	else if(vol < 0)	gain = 7;
	else				gain = 7 - vol;

	DEV_ADEC_LeftOutMix1_LI2LOVOL(gain);
	DEV_ADEC_LeftOutMix2_RI2LOVOL(gain);
	DEV_ADEC_RightOutMix1_LI2ROVOL(gain);
	DEV_ADEC_RightOutMix2_RI2ROVOL(gain);
	DEV_ADEC_MonoOutMix1_LI2MOVOL(gain);
	DEV_ADEC_MonoOutMix2_RI2MOVOL(gain);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Set Sample Rate		 		 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_SetSampleRate(unsigned int Oscillator_freq,unsigned int Sampling_freq)
{
	DEV_Audio_SetClockSampleRate(Oscillator_freq, Sampling_freq);
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio Input Mute			 		 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_Input_Mute( BOOL trueorfalse )
{
	if( trueorfalse )			//	TRUE = Mute Enable
	{
		DEV_ADEC_LeftInputVol_LINMUTE( TRUE );
		DEV_ADEC_RightInputVol_RINMUTE( TRUE );
	}
	
	else
	{
		DEV_ADEC_LeftInputVol_LINMUTE( TRUE );
		DEV_ADEC_RightInputVol_RINMUTE( TRUE );
	}
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio ACLK Enable			 		 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_AclkEnable( BOOL TrueEnable )
{
	if( TrueEnable )	GIO_setBit( ACLK_EN );	//	TRUE = Enable
	else				GIO_clearBit( ACLK_EN );
}

/*--------------------------------------------------------------------------*
*	Brief		:	API Audio EQ Setting			 		 				*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	API_AUDIO_EqSetting( unsigned char mode )
{
	switch( mode )
	{
		case	Default:
			DEV_ADEC_3dCtrl_3DEN( FALSE );
			DEV_ADEC_BassCtrl_BC( FALSE );
			DEV_ADEC_BassCtrl_BB( FALSE );
			DEV_ADEC_BassCtrl_BASS( 0x0F );
			DEV_ADEC_TrebleCtrl_TC( FALSE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x0F );
			break;
		
		case	Rock:	// rock mode
			DEV_ADEC_BassCtrl_BC( FALSE );
			DEV_ADEC_BassCtrl_BB( TRUE );
			DEV_ADEC_BassCtrl_BASS( 0x04 );
			DEV_ADEC_TrebleCtrl_TC( FALSE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x06 );
			DEV_ADEC_3dCtrl_3DLC( FALSE );
			DEV_ADEC_3dCtrl_3DUC( FALSE );
			DEV_ADEC_3dCtrl_3DDEPTH( 0x05 );
			DEV_ADEC_3dCtrl_MODE3D( TRUE );
			DEV_ADEC_3dCtrl_3DEN( TRUE );
			break;
			
		case	Pop:	// pop mode
			DEV_ADEC_BassCtrl_BC( FALSE );
			DEV_ADEC_BassCtrl_BB( FALSE );
			DEV_ADEC_BassCtrl_BASS( 0x09 );
			DEV_ADEC_TrebleCtrl_TC( FALSE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x06 );
			DEV_ADEC_3dCtrl_3DLC( FALSE );
			DEV_ADEC_3dCtrl_3DUC( FALSE );
			DEV_ADEC_3dCtrl_3DDEPTH( 0x07 );
			DEV_ADEC_3dCtrl_MODE3D( TRUE );
			DEV_ADEC_3dCtrl_3DEN( TRUE );
			break;

		case	Jazz:	// jazz mode
			DEV_ADEC_BassCtrl_BC( TRUE );
			DEV_ADEC_BassCtrl_BB( FALSE );
			DEV_ADEC_BassCtrl_BASS( 0x03 );
			DEV_ADEC_TrebleCtrl_TC( TRUE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x04 );
			DEV_ADEC_3dCtrl_3DLC( TRUE );
			DEV_ADEC_3dCtrl_3DUC( FALSE );
			DEV_ADEC_3dCtrl_3DDEPTH( 0x05 );
			DEV_ADEC_3dCtrl_MODE3D( TRUE );
			DEV_ADEC_3dCtrl_3DEN( TRUE );
			break;
	
		case	Classical:	// classical mode
			DEV_ADEC_BassCtrl_BC( FALSE );
			DEV_ADEC_BassCtrl_BB( FALSE );
			DEV_ADEC_BassCtrl_BASS( 0x0F );
			DEV_ADEC_TrebleCtrl_TC( FALSE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x02 );
			DEV_ADEC_3dCtrl_3DLC( FALSE );
			DEV_ADEC_3dCtrl_3DUC( FALSE );
			DEV_ADEC_3dCtrl_3DDEPTH( 0x03 );
			DEV_ADEC_3dCtrl_MODE3D( TRUE );
			DEV_ADEC_3dCtrl_3DEN( TRUE );
			break;

		case	Dance:	// dance mode
			DEV_ADEC_BassCtrl_BC( FALSE );
			DEV_ADEC_BassCtrl_BB( TRUE );
			DEV_ADEC_BassCtrl_BASS( 0x01 );
			DEV_ADEC_TrebleCtrl_TC( FALSE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x03 );
			DEV_ADEC_3dCtrl_3DLC( TRUE );
			DEV_ADEC_3dCtrl_3DUC( FALSE );
			DEV_ADEC_3dCtrl_3DDEPTH( 0x0C );
			DEV_ADEC_3dCtrl_MODE3D( TRUE );
			DEV_ADEC_3dCtrl_3DEN( TRUE );
			break;

		case	Heavy:	// heavy mode
			DEV_ADEC_3dCtrl_3DEN( FALSE );
			DEV_ADEC_BassCtrl_BC( FALSE );
			DEV_ADEC_BassCtrl_BB( FALSE );
			DEV_ADEC_BassCtrl_BASS( 0x03 );
			DEV_ADEC_TrebleCtrl_TC( FALSE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x03 );
			DEV_ADEC_3dCtrl_3DLC( FALSE );
			DEV_ADEC_3dCtrl_3DUC( FALSE );
			DEV_ADEC_3dCtrl_3DDEPTH( 0x00 );
			DEV_ADEC_3dCtrl_MODE3D( TRUE );
			break;

		case	Disco:	// disco mode
			DEV_ADEC_3dCtrl_3DEN( FALSE );
			DEV_ADEC_BassCtrl_BC( TRUE );
			DEV_ADEC_BassCtrl_BB( TRUE );
			DEV_ADEC_BassCtrl_BASS( 0x04 );
			DEV_ADEC_TrebleCtrl_TC( FALSE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x04 );
			DEV_ADEC_3dCtrl_3DLC( FALSE );
			DEV_ADEC_3dCtrl_3DUC( FALSE );
			DEV_ADEC_3dCtrl_3DDEPTH( 0x00 );
			DEV_ADEC_3dCtrl_MODE3D( TRUE );
			break;

		case	Soft:	// soft mode
			DEV_ADEC_3dCtrl_3DEN( FALSE );
			DEV_ADEC_BassCtrl_BC( TRUE );
			DEV_ADEC_BassCtrl_BB( TRUE );
			DEV_ADEC_BassCtrl_BASS( 0x04 );
			DEV_ADEC_TrebleCtrl_TC( TRUE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x0A );
			DEV_ADEC_3dCtrl_3DLC( FALSE );
			DEV_ADEC_3dCtrl_3DUC( FALSE );
			DEV_ADEC_3dCtrl_3DDEPTH( 0x00 );
			DEV_ADEC_3dCtrl_MODE3D( TRUE );
			break;

		case	Live:	// live mode
			DEV_ADEC_BassCtrl_BC( FALSE );
			DEV_ADEC_BassCtrl_BB( FALSE );
			DEV_ADEC_BassCtrl_BASS( 0x0F );
			DEV_ADEC_TrebleCtrl_TC( FALSE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x0F );
			DEV_ADEC_3dCtrl_3DLC( FALSE );
			DEV_ADEC_3dCtrl_3DUC( FALSE );
			DEV_ADEC_3dCtrl_3DDEPTH( 0x0B );
			DEV_ADEC_3dCtrl_MODE3D( TRUE );
			DEV_ADEC_3dCtrl_3DEN( TRUE );
			break;

		case	Hall:	// hall mode
			DEV_ADEC_BassCtrl_BC( FALSE );
			DEV_ADEC_BassCtrl_BB( FALSE );
			DEV_ADEC_BassCtrl_BASS( 0x04 );
			DEV_ADEC_TrebleCtrl_TC( FALSE );
			DEV_ADEC_TrebleCtrl_TRBL( 0x02 );
			DEV_ADEC_3dCtrl_3DLC( FALSE );
			DEV_ADEC_3dCtrl_3DUC( FALSE );
			DEV_ADEC_3dCtrl_3DDEPTH( 0x0B );
			DEV_ADEC_3dCtrl_MODE3D( TRUE );
			DEV_ADEC_3dCtrl_3DEN( TRUE );
			break;
	}
}

⌨️ 快捷键说明

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