Index: trunk/Ohana/src/libohana/include/dvo.h
===================================================================
--- trunk/Ohana/src/libohana/include/dvo.h	(revision 4810)
+++ trunk/Ohana/src/libohana/include/dvo.h	(revision 4832)
@@ -108,15 +108,22 @@
 /* a catalog contains this data */
 typedef struct {
-  /* data in the file: */
+  /* description of the catalog file: */
+  char *filename;
+  int lockmode;
+  FILE *f;
+
+  /* extra table data if needed (move these to enums?) */
+  char catmode[10];         /* storage mode: raw, mef, split, mysql */
+  char average_format[80];  /* table format: internal, loneos, elixir, panstarrs */
+  char measure_format[80];  /* table format: must match average_format */
+  
+  /* data in the catalog */
+  Header  header;
   Average *average;
   Measure *measure; 
   Missing *missing; 
   SecFilt *secfilt;
-  Header  header;
   int Naverage, Nmeasure, Nmissing, Nsecfilt;
-  /* description of the catalog file: */
-  char *filename;
-  int lockmode;
-  FILE *f;
+
   /* pointers for data manipulation */
   int *found;
@@ -222,3 +229,30 @@
 int   ConvertStruct (char *buffer, int size, int Nbytes, char *type);
 
+/*** conversion functions / I/O conversions ***/
+
+Average *AveragePanstarrsToInternal (AveragePanstarrs *in, int Nvalues);
+Average *FtableToAverage (FTable *ftable, int *Naverage, char *extname);
+Average *ReadRawAverage (FILE *f, int Naverage, char *format);
+Average *AverageLoneosToInternal (AverageLoneos *in, int Nvalues);
+Average *AverageElixirToInternal (AverageElixir *in, int Nvalues);
+AverageElixir *AverageInternalToElixir (Average *in, int Nvalues);
+AverageLoneos *AverageInternalToLoneos (Average *in, int Nvalues);
+AveragePanstarrs *AverageInternalToPanstarrs (Average *in, int Nvalues);
+Measure *MeasurePanstarrsToInternal (MeasurePanstarrs *in, int Nvalues);
+Measure *FtableToMeasure (FTable *ftable, int *Nmeasure, char *extname);
+Measure *ReadRawMeasure (FILE *f, int Nmeasure, char *format);
+Measure *MeasureLoneosToInternal (MeasureLoneos *in, int Nvalues);
+Measure *MeasureElixirToInternal (MeasureElixir *in, int Nvalues);
+MeasureElixir *MeasureInternalToElixir (Measure *in, int Nvalues);
+MeasureLoneos *MeasureInternalToLoneos (Measure *in, int Nvalues);
+MeasurePanstarrs *MeasureInternalToPanstarrs (Measure *in, int Nvalues);
+int AverageToFtable (FTable *ftable, Average *average, int Naverage, char *extname);
+int MeasureToFtable (FTable *ftable, Measure *measure, int Nmeasure, char *extname);
+int WriteRawAverage (FILE *f, Average *average, int Naverage, char *format);
+int WriteRawMeasure (FILE *f, Measure *measure, int Nmeasure, char *format);
+int load_catalog_raw (Catalog *catalog, char mode, int VERBOSE);
+int save_catalog_raw (Catalog *catalog, char VERBOSE);
+int load_catalog_mef (Catalog *catalog, char mode, int VERBOSE);
+int save_catalog_mef (Catalog *catalog, char VERBOSE);
+
 # endif
