// file: exft_cstr_1.cc
//

// isip include files
//
#include "extract_feature.h"
#include "extract_feature_constants.h"
 
// method: constructor
//
// arguments: none
//
// return: none
//
// this is the default constructor for the class
//
Extract_feature::Extract_feature() {

  // declare local variables
  //
  strcpy((char*)window_type_d, (char*)EXTF_DEF_WINDOW_TYPE);
                                                // type of window to use
  use_pre_emph_d = EXTF_DEF_USE_PRE_EMPH;
                                                // flag of pre-emphasis
  pre_emph_coeff_d = EXTF_DEF_PRE_COEFF;	// pre-emphasis filter coeff
  use_liftering_d = EXTF_DEF_USE_LIFTERING;
                                                // flag of pre-emphasis
  lifter_coeff_d = EXTF_DEF_LIFTER_COEFF;	// liftering coefficient
  frame_dur_d = EXTF_DEF_FRAME_DUR;	  // frame duration in msecs
  window_dur_d = EXTF_DEF_WINDOW_DUR; 	  // window duration in msecs
  sample_freq_d = EXTF_DEF_SF;		  // sample frequency
  num_chans_d = EXTF_DEF_NUM_CHANS;	  // number of channels in data
  channel_d = EXTF_DEF_CHAN_NUM;	  // default channel	
  swap_byte_d = EXTF_DEF_SWAP;		  // whether or not to swap bytes
  input_file_d = (char_1*)NULL;		  // name of input data file
  output_file_d = (char_1*)NULL;          // name of output file
  delta_win_d = EXTF_DEF_DELTA_WIN;	  // delta window size
  num_fbanks_d = EXTF_DEF_NUM_FBANKS;	  // num filterbank channels
  mel_width_d = (float_8)0;               // user-defined mel width
  cepstral_mean_subtract_d = EXTF_DEF_NORMALIZE; // normalize vectors
  delta_d = EXTF_DEF_DELTA;		  // delta features
  delta_delta_d = EXTF_DEF_DELTA_DELTA;	  // delta features
  output_mode_d = EXTF_DEF_OUT_MODE;      // output mode
  c0_d = ISIP_FALSE;                      // no c0 by default
  
  vtln_d = EXTF_DEF_VTLN;                 // vtln
  vtln_factor_d = EXTF_DEF_VTLN_FACTOR;   // vtl normalization factor
  vtln_algo_d = EXTF_DEF_VTLN_ALGO;       // vtln implement algorithm

  num_coeffs_d[EXTF_ALGO_MEAN] = 0;
  num_coeffs_d[EXTF_ALGO_FBA] =  0;
  num_coeffs_d[EXTF_ALGO_FFT_MFCC] = EXTF_NUM_MFCC;
  num_file_d = (int_4)0;                   // number of the valid files

  zero_mean_d = ISIP_FALSE;
  energy_norm_d = ISIP_FALSE;
  include_energy_d = ISIP_TRUE;           // include energy as a feature?
  
  // allocate memory for the input file name
  //
  input_file_d = new char_1[ISIP_MAX_FNAME_SIZE];
  input_file_d[0] = '\0';
  output_file_d = new char_1[ISIP_MAX_FNAME_SIZE];
  output_file_d[0] = '\0';
  
  // Communicator relevant paramters
  //
  buf_d = NULL;

  // exit gracefully
  //
}
