r117: *** empty log message ***
[ctsim.git] / src / ifinfo.cpp
index 136792db28bd586604bec92db0dc3bacdc1f064a..c911aa5c80948c37d7535b6dddf0a95244e9076c 100644 (file)
@@ -1,28 +1,15 @@
 /*****************************************************************************
-**  This is part of the CTSim program
-**  Copyright (C) 1983-2000 Kevin Rosenberg
-**
-**  $Id: ifinfo.cpp,v 1.3 2000/06/07 07:43:19 kevin Exp $
-**  $Log: ifinfo.cpp,v $
-**  Revision 1.3  2000/06/07 07:43:19  kevin
-**  Converted to IF data files and C++
-**
-**  Revision 1.2  2000/06/07 03:50:27  kevin
-**  *** empty log message ***
-**
-**  Revision 1.1  2000/06/07 02:29:05  kevin
-**  Initial C++ versions
-**
-**  Revision 1.3  2000/05/16 04:33:59  kevin
-**  Improved option processing
-**
-**  Revision 1.2  2000/05/08 20:02:32  kevin
-**  ANSI C changes
+** FILE IDENTIFICATION
 **
-**  Revision 1.1.1.1  2000/04/28 13:02:44  kevin
-**  Initial CVS import for first public release
+**   Name:          ifinfo.cpp
+**   Purpose:       Display information about an image file
+**   Programmer:    Kevin Rosenberg
+**   Date Started:  April 2000
 **
+**  This is part of the CTSim program
+**  Copyright (C) 1983-2000 Kevin Rosenberg
 **
+**  $Id: ifinfo.cpp,v 1.9 2000/06/19 17:58:13 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -62,19 +49,19 @@ static struct option my_options[] =
 void 
 ifinfo_usage (const char *program)
 {
-  fprintf(stdout, "usage: %s infile [OPTIONS]\n", kbasename(program));
-  fprintf(stdout, "Imagefile information\n");
-  fprintf(stdout, "\n");
-  fprintf(stdout, "     infile       Name of input SDF file\n");
-  fprintf(stdout, "     --display    Display image\n");
-  fprintf(stdout, "     --labels     Print image labels (default)\n");
-  fprintf(stdout, "     --no-labels  Do not print image labels\n");
-  fprintf(stdout, "     --stats      Print image statistics (default)\n");
-  fprintf(stdout, "     --no-stats   Do not print image statistics\n");
-  fprintf(stdout, "     --debug      Debug mode\n");
-  fprintf(stdout, "     --verbose    Verbose mode\n");
-  fprintf(stdout, "     --version    Print version\n");
-  fprintf(stdout, "     --help       Print this help message\n");
+  cout << "usage: " << fileBasename(program) << " infile [OPTIONS]" << endl;
+  cout << "Imagefile information" << endl;
+  cout << endl;
+  cout << "     infile       Name of input IF file" << endl;
+  cout << "     --display    Display image" << endl;
+  cout << "     --labels     Print image labels (default)" << endl;
+  cout << "     --no-labels  Do not print image labels" << endl;
+  cout << "     --stats      Print image statistics (default)" << endl;
+  cout << "     --no-stats   Do not print image statistics" << endl;
+  cout << "     --debug      Debug mode" << endl;
+  cout << "     --verbose    Verbose mode" << endl;
+  cout << "     --version    Print version" << endl;
+  cout << "     --help       Print this help message" << endl;
 }
 
 int 
@@ -116,11 +103,11 @@ ifinfo_main (int argc, char *const argv[])
          break;
         case O_VERSION:
 #ifdef VERSION
-         fprintf(stdout, "Version %s\n", VERSION);
+          cout << "Version " <<  VERSION << endl;
 #else
-         fprintf(stderr, "Unknown version number");
+          cout << "Unknown version number" << endl;
 #endif
-         exit(0);
+         return (0);
        case O_HELP:
        case '?':
          ifinfo_usage(argv[0]);
@@ -140,32 +127,31 @@ ifinfo_main (int argc, char *const argv[])
   in_file = argv[optind];
 
   im = new ImageFile (in_file);
-  if (! im->adf.fileRead ()) {
+  if (! im->fileRead ()) {
     sys_error (ERR_WARNING, "Unable to read file %s", in_file);
     return (1);
   }
 
   if (opt_labels) 
     {
-      int nlabels = im->adf.getNumLabels();
+      int nlabels = im->getNumLabels();
       int i;
 
       for (i = 0; i < nlabels; i++)
        {
            Array2dFileLabel label;
-           im->adf.labelRead (label, i);
-
-           string str;
-           label.getDateString (str);
+           im->labelRead (label, i);
 
            if (label.getLabelType() == Array2dFileLabel::L_HISTORY) {
-             cout << "History: " << label.getLabelString() << endl;
+             cout << "History: " << endl;
+             cout << "  " << label.getLabelString() << endl;
              cout << "  calc time = " << label.getCalcTime() << " secs" << endl;
-             cout << "  Timestamp = " << str << endl;
+             cout << "  Timestamp = " << label.getDateString() << endl;
            } else if (label.getLabelType() == Array2dFileLabel::L_USER) {
              cout << "Note: " <<  label.getLabelString() << endl;
-             cout << "  Timestamp = %s" << str << endl;
-         }
+             cout << "  Timestamp = %s" << label.getDateString() << endl;
+           }
+           cout << endl;
        }
     }
 
@@ -234,13 +220,13 @@ ifinfo_main (int argc, char *const argv[])
            }
        }
       stddev = sqrt(stddev / (nx * ny));
-      cout << "nx=" << nx << endl;
-      cout << "nx=" << ny << endl;
-      cout << "min=" << minfound << endl;
-      cout << "max=" << maxfound << endl;
-      cout << "mean=" << mean << endl;
-      cout << "mode=" << mode << endl;
-      cout << "stddef=" << stddev << endl;
+      cout << "    nx: " << nx << endl;
+      cout << "    nx: " << ny << endl;
+      cout << "   min: " << minfound << endl;
+      cout << "   max: " << maxfound << endl;
+      cout << "  mean: " << mean << endl;
+      cout << "  mode: " << mode << endl;
+      cout << "stddef" << stddev << endl;
     }
   
   return (0);
@@ -250,6 +236,16 @@ ifinfo_main (int argc, char *const argv[])
 int 
 main (int argc, char *const argv[])
 {
-  return (ifinfo_main(argc, argv));
+  int retval = 1;
+
+  try {
+    retval = ifinfo_main(argc, argv);
+  } catch (exception e) {
+    cerr << "Exception: " << e.what() << endl;
+  } catch (...) {
+    cerr << "Unknown exception" << endl;
+  }
+
+  return (retval);
 }
 #endif