#ifndef	SolmonVoice_EQ
#define SolmonVoice_EQ

#include "SamsungSolomonVoiceW_Int.h"

#define		SF_EQ_TAP					SF_FIRFILTERNUM /*63*/
#define		SF_INC_ADTIME				31000
#define		SF_DEC_ADTMIE				10000

// WB bypass
//short _FIRCoef_OUTPUT_WB[FIRFILTERTEMP] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384 };
// FIR 25 // Buds+ final
//short _FIRCoef_OUTPUT_WB[FIRFILTERTEMP] = { -39, -172, -237, -119, 75, -45, -211, -26, 196, -50, -251, -131, 134, -16, -575, -325, 570, -161, -980, 366, 843, -689, -715, 439, 409, -1041, -1892, 452, 565, -3587, -740, 20397};
// Bean DV2
short _FIRCoef_OUTPUT_WB[FIRFILTERTEMP] = { 
    //1013 test
	//3, -125, 19, -280, -202, -92, -183, -53, 69, -261, -98, -129, -74, -167, 79, -172, -367, -29, 425, -602, 13, 274, 313, -221, -2, 70, -902, -1703, 198, -1444, -197, 15843
	//1104
	//25, -69, -30, -43, -74, -9, -105, -52, -36, -151, 27, -121, -100, -20, -96, -20, -171, -19, 64, -365, 23, 11, -238, -279, -227, 252, -692, -671, 841, -1728, -880, 15865
	//1111
	//-6, -49, -3, -45, -72, -6, -149, -76, 111, -229, -111, 113, 75, -163, -184, 32, -153, -266, 4, -126, 206, 140, -223, 109, 236, -550, -804, 379, 550, -2079, -1030, 14868
	
	// 1119
	//0, -45, 3, -41, -53, -23, -155, -91, 86, -216, -98, 123, 101, -143, -154, 19, -176, -358, -134, -119, 349, 316, -65, 136, 81, -887, -937, 579, 612, -2179, -302, 13697
	// 1119 ÇÊÅÍ 4
	//-2, -46, 2, -43, -52, -22, -150, -87, 86, -222, -105, 120, 104, -138, -153, 16, -173, -341, -113, -122, 308, 256, -89, 191, 190, -807, -963, 445, 468, -2219, -196, 13871
	// 1119 ÇÊÅÍ 5
	//-2, -48, -1, -45, -55, -20, -145, -81, 92, -222, -110, 112, 98, -145, -161, 16, -155, -306, -79, -121, 255, 174, -143, 214, 286, -705, -934, 384, 369, -2268, -159, 13949
	//1120 ÇÊÅÍ6
	//6, -50, -3, -59, -60, -31, -141, -74, 110, -206, -97, 108, 91, -172, -179, -6, -152, -287, -41, -95, 258, 146, -135, 257, 376, -702, -1040, 178, 309, -2384, 170, 13931
	//1126 filter9
	//2, -46, 9, -72, -51, -38, -146, -81, 102, -202, -109, 114, 112, -178, -151, 28, -126, -263, 18, -51, 242, 239, -112, 174, 506, -737, -1222, 396, 173, -2740, 847, 12961
	//filter 10
	 6, -54, 9, -73, -46, -46, -153, -85, 120, -187, -104, 91, 92, -183, -132, 41, -125, -275, 28, -32, 248, 197, -165, 163, 578, -644, -1192, 310, 46, -2798, 927, 13100
	//filter 17
	//61, -11, 44, -65, -60, -90, -210, -160, 45, -268, -175, 29, 59, -187, -95, 101, -41, -180, 149, 114, 428, 370, -48, 142, 387, -1000, -1607, -33, -79, -2654, 1308, 13565

};


// NB bypass
//short _FIRCoef_OUTPUT_NB[FIRFILTERTEMP] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,};
// NB FIR 3 Buds+ final
short _FIRCoef_OUTPUT_NB[FIRFILTERTEMP] = {
	//Bean NB
	//9, -31, 112, -146, 116, -62, -29, 37, 56, -161, 163, -191, -80, 69, -111, -133, 178, -462, -133, 15, -448, 91, 197, -997, -241, -158, -1155, 1494, 20, -4026, -6781, 32767
    //1015 ATTIC
	58, -21, 159, -141, 157, -63, 4, 26, 80, -182, 175, -224, -82, 22, -126, -194, 149, -537, -177, -74, -505, -10, 128, -1110, -321, -281, -1243, 1364, -73, -4159, -6877, 32631
};



//RX EQ filter
short _FIRCoef_OUTPUT_RX_WB[FIRFILTERTEMP] = { 
    //- 4, 0, 3, -7, 14, -25, 35, -53, 78, -93, 105, -148, 171, -152, 150, -155, 138, -123, -37, 177, 35, 138, -765, 738, -516, 760, -1127, 2007, -1335, -745, -3063, 7835
	-4, 0, 3, -7, 14, -25, 35, -53, 79, -92, 105, -148, 171, -151, 151, -154, 139, -122, -36, 178, 36, 140, -764, 740, -514, 763, -1125, 2010, -1333, -742, -3061, 7837
    //-1, 2, -3, 3, -3, 5, -4, 6, -2, 3, -7, -6, 6, -4, 33, -29, 13, -130, 127, -31, 56, 190, -285, 64, -381, 931, -706, 318, 115, -640, -2194, 6418
    //- 1, 1, -3, 3, -4, 4, -5, 6, -2, 3, -7, -5, 7, -2, 36, -25, 18, -126, 129, -31, 54, 187, -287, 64, -384, 919, -736, 260, 23, -764, -2342, 6261
};
short _FIRCoef_OUTPUT_RX_NB[FIRFILTERTEMP] = { -6, 4, 7, -6, 27, -32, 62, -77, 124, -122, 179, -197, 249, -199, 246, -170, 187, -77, -57, 340, -144, 487, -1027, 1212, -1140, 1630, -1776, 2925, -2587, 328, -2767, 6799 };

void SolomonVoiceWFIRFilterInit(FIRStatus* FIR_buf, SamsungSolomonVoiceWTxFIRParam* FIR_param);
void SolomonVoiceW_FIR_ParamConfig(SamsungSolomonVoiceWTxFIRParam* FIR_param, SamsungSolomonVoiceWTxFIRParam* param);
void FN_SOLOMONVOICEW_TX_FirCoefConfig(short *SF_FIRCoef, short *rxfircoef);
int FN_SOLOMONVOICEW_TX_FilterUpdate(short* cur_coeff, short* dst_coeff, short flag);
void FN_SOLOMONVOICEW_TX_FIRFilter(short* Input, short* FIRCoeff, short* FIRFiltBuff, short size);

#endif
