process_data.c

来自「visual dsp++ audio iir」· C语言 代码 · 共 61 行

C
61
字号
#include "Talkthrough.h"

//--------------------------------------------------------------------------//
// Function:	Process_Data()												//
//																			//
// Description: This function is called from inside the SPORT0 ISR every 	//
//				time a complete audio frame has been received. The new 		//
//				input samples can be found in the variables iChannel0LeftIn,//
//				iChannel0RightIn, iChannel1LeftIn and iChannel1RightIn 		//
//				respectively. The processed	data should be stored in 		//
//				iChannel0LeftOut, iChannel0RightOut, iChannel1LeftOut,		//
//				iChannel1RightOut, iChannel2LeftOut and	iChannel2RightOut	//
//				respectively.												//
//--------------------------------------------------------------------------//
void Process_Data(void)
{
    int nValue;
	int i;
	extern int BTCLeftVolume;
	extern int BTCRightVolume;
	//fir_init(state, coefs, delay, NUM_TAPS, 1);	// initialize filter state 
	iir_init(state,coefs,delay,NUM_TAPS);
	if (dmaFlag == 0)
	{
		
		//firStereo(iRxBuffer1, iTxBuffer0, VEC_SIZE, &state);	// apply the filter to the data
		iirStereo(iRxBuffer1,iTxBuffer0, VEC_SIZE, &state);
		for (i=0;i<VEC_SIZE;i++)
		{
			iChannel0LeftOut = iTxBuffer0[2*i];
			nValue = (iChannel0LeftOut);	
			nValue = (nValue >> BTCLeftVolume);	//volume
			btc_write_value(0, (unsigned int*)&nValue, sizeof(nValue));
			iChannel0RightOut = iTxBuffer0[2*i+1];
			nValue = (iChannel0RightOut);	
			nValue = (nValue >> BTCRightVolume);//volume
			btc_write_value(1, (unsigned int*)&nValue, sizeof(nValue));
		}
		dmaFlag = 1;
	}
	else
	{
		
		//firStereo(iRxBuffer0, iTxBuffer1, VEC_SIZE, &state);	// apply the filter to the data
		iirStereo(iRxBuffer0, iTxBuffer1, VEC_SIZE, &state);	// apply the filter to the data
		for (i=0;i<VEC_SIZE;i++)
		{
			iChannel0LeftOut = iTxBuffer1[2*i];
			nValue = (iChannel0LeftOut);	
			nValue = (nValue >> BTCLeftVolume);	//volume
			btc_write_value(0, (unsigned int*)&nValue, sizeof(nValue));
			iChannel0RightOut = iTxBuffer1[2*i+1];
			nValue = (iChannel0RightOut);	
			nValue = (nValue >> BTCRightVolume);//volume
			btc_write_value(1, (unsigned int*)&nValue, sizeof(nValue));
		}
		dmaFlag = 0;
	} 

}

⌨️ 快捷键说明

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