// file: $isip/class/algo/FilterBank/fb_01.cc
// version: $Id: fb_01.cc 8318 2002-07-10 00:53:25Z picone $
//

// isip include files
//
#include "FilterBank.h"
#include <Console.h>

// method: debug
//
// arguments:
//  const unichar* msg: (input) message to print
//
// return: a boolean value indicating status
//
boolean FilterBank::debug(const unichar* msg_a) const {

  // declare local variables
  //
  String value;
  String output;

  // output the information message
  //
  output.debugStr(name(), msg_a, L":");
  Console::put(output);

  Console::increaseIndention();
  
  // display the algorithm name
  //
  output.debugStr(name(), msg_a, L"algorithm_d",
		  ALGO_MAP.getName((long)algorithm_d));
  Console::put(output);

  // display the implementation name
  //
  output.debugStr(name(), msg_a, L"implementation_d",
                  IMPL_MAP.getName((long)implementation_d));
  Console::put(output);

  // display the filters
  //
  filters_d.debug(L"filters_d");

  // display the filter parameter file
  //
  filters_pfile_d.debug(L"filters_pfile_d");

  // display the scale algorithm
  //
  output.debugStr(name(), msg_a, L"scale_d",
		  SCALE_MAP.getName((long)scale_d));
  Console::put(output);

  // display the frequency sampling algorithm
  //
  output.debugStr(name(), msg_a, L"fsmp_d",
		  FREQUENCY_SAMPLING_MAP.getName((long)fsmp_d));
  Console::put(output);

  // display the input_mode name
  //
  output.debugStr(name(), msg_a, L"input_mode_d",
                  INPUT_MODE_MAP.getName((long)input_mode_d));
  Console::put(output);

  // display the order
  //
  value.assign(order_d);
  output.debugStr(name(), msg_a, L"order_d", value);
  Console::put(output);

  // display the filter spacing in warped scale
  //
  value.assign(bandwidth_d);
  output.debugStr(name(), msg_a, L"bandwidth_d", value);
  Console::put(output);

  // display the internal buffers
  //
  warp_freq_d.debug(L"warp_freq_d");
  lin_freq_d.debug(L"lin_freq_d");
  cen_freq_d.debug(L"cen_freq_d");

  // display the base class
  //
  AlgorithmBase::debug(L"AlgorithmBase");
  
  // decrease indention
  //
  Console::decreaseIndention();
  
  // exit gracefully
  //
  return true;
}
