// file: $isip/class/algo/AlgorithmBase/algb_01.cc
// version: $Id: algb_01.cc 8232 2002-06-26 14:12:21Z gao $
//

// isip include files
//
#include "AlgorithmBase.h"

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

  // declare local variables
  //
  String value;
  String output;
 
  // output an information message
  //
  output.debugStr(name(), msg_a, L":");
  Console::put(output);
  Console::increaseIndention();
  
  // display debug level
  //
  output.debugStr(name(), msg_a, L"debug_level_d", debug_level_d.getName());
  Console::put(output);

  // display the status flag
  //
  value.assign(is_valid_d);
  output.debugStr(name(), msg_a, L"is_valid_d", value);
  Console::put(output);
  
  // display the compute mode name
  //
  output.debugStr(name(), msg_a, L"cmode_d",
                  CMODE_MAP.getName((long)cmode_d));
  Console::put(output);

  // display the data mode name
  //  
  output.debugStr(name(), msg_a, L"dmode_d",
                  DMODE_MAP.getName((long)dmode_d));
  Console::put(output);  

  // display signal processing parameters
  //
  value.assign(sample_freq_d);
  output.debugStr(name(), msg_a, L"sample_freq_d", value);
  Console::put(output);

  value.assign(frame_dur_d);
  output.debugStr(name(), msg_a, L"frame_dur_d", value);
  Console::put(output);

  value.assign(signal_duration_d);
  output.debugStr(name(), msg_a, L"signal_duration_d", value);
  Console::put(output);

  value.assign(frame_index_d);
  output.debugStr(name(), msg_a, L"frame_index_d", value);
  Console::put(output);

  value.assign(leftover_samps_d);
  output.debugStr(name(), msg_a, L"leftover_samps_d", value);
  Console::put(output);
  
  // display internal parameters used in moving data around
  //
  value.assign(num_elements_d);
  output.debugStr(name(), msg_a, L"num_elements_d", value);
  Console::put(output);

  value.assign(offset_d);
  output.debugStr(name(), msg_a, L"offset_d", value);
  Console::put(output);

  // decrease indention
  //
  Console::decreaseIndention();
 
  // exit gracefully
  //
  return true;
}
