#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 SL2
//short _FIRCoef_OUTPUT_WB[FIRFILTERTEMP] = { -124, -87,-23,-14,27,28,-71,-60,-99,-177,-48,-3,-87,151,-46,-388,-133,-245,-690,29,-44,-547,-82,388,-37,-645,-2194,1097,55,-4320,131,18258};
// FIR SL4
//short _FIRCoef_OUTPUT_WB[FIRFILTERTEMP] = { -127, -134, -58, -112, -63, -72, -104, -103, -60, -183, -72, -92, -176, -30, -82, -411, -74, -112, -502, -34, 97, -672, -244, 452, 82, -899, -1288, 623, 409, -3762, -1187, 19688 };
// FIR 14
//short _FIRCoef_OUTPUT_WB[FIRFILTERTEMP] = {-125, -133, -70, -102, -56, -86, -89, -106, -76, -154, -89, -107, -121, -92, -113, -267, -161, -232, -280, -83, -162, -412, -40, 66, -148, -417, -807, -209, -303, -2231, -810, 17746};
// FIR 15
//short _FIRCoef_OUTPUT_WB[FIRFILTERTEMP] = {-155, -179, -104, -152, -94, -140, -128, -160, -116, -208, -128, -161, -159, -144, -149, -314, -192, -276, -309, -128, -190, -452, -70, 19, -176, -452, -826, -250, -337, -2275, -980, 17395};
// FIR 20
//short _FIRCoef_OUTPUT_WB[FIRFILTERTEMP] = { -55, -90, -118, -110, 34, 8, -154, -124, 46, -71, -245, -263, 16, 67, -449, -356, 548, 21, -840, 252, 745, -606, -706, 266, 249, -1029, -1902, 302, 627, -3380, -733, 20278 };
// FIR 22
//short _FIRCoef_OUTPUT_WB[FIRFILTERTEMP] = {-122, -161, -194, -179, -29, -53, -205, -161, 25, -76, -231, -227, 71, 146, -353, -247, 676, 141, -716, 379, 835, -527, -626, 280, 240, -1062, -1976, 241, 486, -3530, -858, 20110};
// FIR 23
//short _FIRCoef_OUTPUT_WB[FIRFILTERTEMP] = { -33, -85, -125, -129, -3, -43, -203, -154, 36, -60, -202, -183, 104, 132, -412, -354, 503, -80, -967, 156, 700, -630, -710, 328, 402, -835, -1767, 328, 570, -3477, -846, 20162};
// FIR 25
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};


// 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 2
//short _FIRCoef_OUTPUT_NB[FIRFILTERTEMP] = { 15, -14, 15, -13, 15, -13, 12, -18, 5, -24, -6, -35, -20, -48, -41, -67, -66, -88, -96, -111, -131, -132, -175, -152, -235, -162, -344, -149, -699, -50, -4518, 24980};
// NB FIR 3
short _FIRCoef_OUTPUT_NB[FIRFILTERTEMP] = { 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};



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
