#ifndef	__Flag_controll__
#define __Flag_controll__

#ifdef Linux_make
#include "SamsungTxECNS_typedef.h"
#elif defined Linux_gcc_make
#include "SamsungTxECNS_typedef.h"
#else
#include "SamsungTxECNS_typedef.h"
#endif

#define E_DIFF_BUF_SIZE 20
#define FRAME_DIFF_BUF_SIZE 6

typedef struct Flag_control_buffer_struct
{

	Word16 hg_frame_vad, hg_frame_vad_ls;

	Word32 maxE;
	Word32 E_ch1_frame_vad, E_ch2_frame_vad, E_nfd, E_noise_psd;

	Word16 E_ch_q;
	Word16 frame_vad, frame_vad_ls, frame_vad_tmp, frame_vad_tmp2, frame_vad_hg_cnt, frame_vad_hg2_cnt, frame_vad2, frame_vad2_hg_cnt;
	Word16 frame_vad_lf;
	Word16 thd_noise_free;
	Word16 thd_noise_free_Rx;
	Word16 noise_free_flag;
	Word16 noise_free_flag_changed;
	Word16 noise_free_flag_hg_cnt;  // for disable
	Word16 noise_free_flag_hg_cnt2; // for enable
	Word16 noise_free_flag_hg_max;


	Word16 thd_noise_free_ultra;
	Word16 noise_free_flag_ultra;
	Word16 noise_free_flag_hg_cnt_ultra;  // for disable
	Word16 noise_free_flag_hg_cnt2_ultra; // for enable
	Word16 noise_free_flag_hg_max_ultra;
	
	Word32 thd_noise_free2;
	Word16 noise_free_flag2;
	Word16 noise_free_flag2_buf[FRAME_DIFF_BUF_SIZE];
	Word16 noise_free_flag2_hg_cnt;  // for disable
	Word16 noise_free_flag2_hg_cnt2; // for enable

	Word16 noise_free_flag_AEC;
	Word16 noise_free_flag_RES;
	Word16 noise_free_flag_RES_hg_cnt;

	Word16 frame_Rx_VAD, frame_DTD, frame_vad_hg3_cnt, flag_HF_top_prox, frame_Rx_VAD_hg;

	Word16 Tx_silence;
	Word16 frame_vad_freq_low, frame_vad_freq_mid, frame_vad_freq_high;
	Word16 noise_free_freq_low, noise_free_freq_high;

	Word16 gsc_update;
	Word16 gsc_update_hg_cnt;
	Word16 flag_noise_psd_used;

	Word16 E_based_vad_cnt;
	Word16 E_diff_based_vad_cnt;
	
	Word32 E_diff_log_avg[E_DIFF_BUF_SIZE];
	Word16 E_diff_log_avg_ptr;
	Word16 E_based_vad;
	Word16 E_diff_based_vad;
	Word16 E_diff_based_vad_threhold;
	Word16 mute_cnt;
	Word16 HS_abnormal_pos;
	Word16 HS_abnormal_pos_max_cnt;

	Word32 noise_onset_thd_band_e;
	Word32 noise_onset_thd_v2_band_e;
	Word16 noise_onset_thd_ceps_max;
	Word16 noise_onset_thd_Npsd;
	Word16 noise_onset_hg_cnt;

	Word16 AMS_flag;
}FC_buffer;


#endif