// file: $isip/class/mmedia/AudioFile/adf_01.cc
// version: $Id: adf_01.cc 8173 2002-06-07 14:32:52Z gao $
//

// isip include files
//
#include <Console.h>
#include "AudioFile.h"
 
// method: debug
//
// arguments:
//  const unichar* msg: (input) information message
//
// return: a boolean value indicating status
//
// this method dumps the contents of an object to the console
// 
boolean AudioFile::debug(const unichar* msg_a) const {

  // local variables
  //
  String output;
  String param;
  String value;
  String empty_str;

  // output the parameters
  //
  value.assign(FILE_TYPE_MAP.getName(file_type_d));
  output.debugStr(name(), msg_a, L"file_type", value);
  Console::put(output);

  value.assign(FILE_FORMAT_MAP.getName(file_format_d));
  output.debugStr(name(), msg_a, L"file_format", value);
  Console::put(output);

  value.assign(COMP_TYPE_MAP.getName(compression_type_d));
  output.debugStr(name(), msg_a, L"compression_type", value);
  Console::put(output);

  value.assign((double)amplitude_range_d);
  output.debugStr(name(), msg_a, L"amplitude_range", value);
  Console::put(output);
  
  value.assign((double)sample_freq_d);
  output.debugStr(name(), msg_a, L"sample_freq", value);
  Console::put(output);
  
  value.assign((long)sample_num_bytes_d);
  output.debugStr(name(), msg_a, L"sample_num_bytes", value);
  Console::put(output);

  value.assign(SAMPLE_PRECISION_MAP.getName(sample_precision_d));
  output.debugStr(name(), msg_a, L"sample_precision", value);
  Console::put(output);
  
  value.assign((long)num_channels_d);
  output.debugStr(name(), msg_a, L"num_channels", value);
  Console::put(output);

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

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

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

  output.debugStr(name(), msg_a, L"id", id_d);
  Console::put(output);

  Console::increaseIndention();

  ma_coeff_d.debug(L"ma_coeff");
  ar_coeff_d.debug(L"ar_coeff");
  
  Console::decreaseIndention();
  
  // exit gracefully
  //
  return true;
}
