// file: $isip/class/algo/Output/out_01.cc
// version: $Id: out_01.cc 9218 2003-06-17 22:57:48Z picone $
//

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

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

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

  // display the algorithm choice
  //
  output.debugStr(name(), msg_a, L"algorithm_d",
		  ALGO_MAP((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 file name
  //
  value.assign(output_filename_d);
  output.debugStr(name(), msg_a, L"output_filename_d", value);
  Console::put(output);

  // display the output filename information
  //
  output.debugStr(name(), msg_a,
		  CommandLine::DEF_PARAM_DIRECTORY, output_directory_d);
  Console::put(output);

  output.debugStr(name(), msg_a,
		  CommandLine::DEF_PARAM_EXTENSION, output_extension_d);
  Console::put(output);

  value.assign(output_filename_d);
  output.debugStr(name(), msg_a,
		  CommandLine::DEF_PARAM_PRESERVE, value);
  Console::put(output);

  output.debugStr(name(), msg_a,
		  CommandLine::DEF_PARAM_SUFFIX, output_suffix_d);
  Console::put(output);
  
  // output the parameters
  //
  if (implementation_d == SAMPLED_DATA) {
    audio_output_d.debug(L"audio_output_d");
  }
  else {
    feature_output_d.debug(L"feature_output_d");
  }
  
  // display the base class
  //
  AlgorithmBase::debug(L"AlgorithmBase");

  // decrease indention
  //
  Console::decreaseIndention();

  // exit gracefully
  //
  return true;
}
