Index: trunk/ppMerge/src/ppMerge.h
===================================================================
--- trunk/ppMerge/src/ppMerge.h	(revision 5860)
+++ trunk/ppMerge/src/ppMerge.h	(revision 5862)
@@ -1,26 +1,23 @@
-#include <stdio.h>
-#include <strings.h>
+# include <stdio.h>
+# include <strings.h>
+# include <glob.h>
 
-#include "pslib.h"
+# include "pslib.h"
 
-#include "psAdditionals.h"
+# include "psAdditionals.h"
 
-#include "pmAstrometry.h"
-#include "pmReadout.h"
-#include "pmConfig.h"
-#include "pmFPAConstruct.h"
-#include "pmFPARead.h"
-#include "pmFPAConceptsGet.h"
-#include "pmFPAWrite.h"
+# include "pmAstrometry.h"
+# include "pmReadout.h"
+# include "pmConfig.h"
+# include "pmFPAConstruct.h"
+# include "pmFPARead.h"
+# include "pmFPAConceptsGet.h"
+# include "pmFPAWrite.h"
 
-#include "pmFlatField.h"
-#include "pmMaskBadPixels.h"
-#include "pmNonLinear.h"
-#include "pmSubtractBias.h"
-#include "pmChipMosaic.h"
-//#include "pmFPAMorph.h"
+# include "pmReadoutCombine.h"
 
-#define RECIPE "PHASE2"                 // Name of the recipe to use
+# define RECIPE "MERGE" // Name of the recipe to use
 
+// XXX : same as in ppImage
 typedef enum {
     PP_LOAD_NONE,
@@ -30,4 +27,5 @@
 } ppImageLoadDepth;
 
+// XXX : same as in ppImage
 typedef struct {
     psMetadata *site;
@@ -48,5 +46,6 @@
 
 typedef struct {
-    psArray *data;
+    psArray *input;
+    ppFPA *output;
     ppFPA *process;
     ppFPA *mask;
@@ -55,42 +54,22 @@
 typedef struct {
     ppImageLoadDepth imageLoadDepth;
-
-    psStats *mergeStats;		// Statistics for overscan
-    void *overscanFit;			// Overscan fit (polynomial or spline)
-    pmFit overscanFitType;		// Fit type for overscan
-    pmOverscanAxis overscanMode;	// Axis for overscan
-
-    bool doNonLin;			// Non-linearity correction
-    psDataType nonLinearType;
-    psMetadataItem *nonLinearData;
-    void *nonLinearSource;
+    bool doMask;			// apply a pixel mask before stacking
+    pmCombineParams *combineParams;
+    bool applyZeroScale;
+    double gain;
+    double readnoise;
 } ppOptions;
 
-typedef struct {
-    pmCell *input;
-    pmCell *mask;
-    pmCell *bias;
-    pmCell *dark;
-    pmCell *flat;
-} ppDetrend;
+bool ppMergeConfig (ppConfig *config, int argc, char **argv);
+bool ppMergeLoop (ppData *data, ppOptions *options, ppConfig *config);
+bool ppMergeOptions (ppData *data, ppOptions *options, ppConfig *config);
+bool ppMergeOutput (ppData *data, ppOptions *options, ppConfig *config);
+bool ppMergeParseCamera (ppData *data, ppConfig *config);
+bool ppMergeParseDetrend (ppData *data, ppOptions *options, ppConfig *config);
 
-bool ppImageConfig (ppConfig *config, int argc, char **argv);
-bool ppImageLoadPixels (ppFPA *input, ppFPA *process, psDB *db, int nChip, int nCell);
-bool ppImageLoop (ppData *data, ppOptions *options, ppConfig *config);
-bool ppImageOptions (ppData *data, ppOptions *options, ppConfig *config);
-bool ppImageParseCamera (ppData *data, ppConfig *config, char **argv);
-bool ppImageParseDetrend (ppData *data, ppOptions *options, ppConfig *config);
+bool ppMergeCell (pmCell *output, pmCell *mask, psArray *cellList, ppOptions *options, ppConfig *config);
 
-bool ppReadoutWeights (pmReadout *readout);
-
-bool ppDetrendCell (ppDetrend *detrend, ppOptions *options, ppConfig *config);
-
-bool ppDetrendMask (pmCell *cell, pmReadout *input, pmReadout *mask);
-bool ppDetrendNonLinear (pmCell *cell, pmReadout *input, ppOptions *options);
-bool ppDetrendNonLinearLookup (pmReadout *input, psMetadataItem *dataItem);
-bool ppDetrendNonLinearPolynomial (pmReadout *input, psMetadataItem *dataItem);
-bool ppDetrendBias (pmCell *inputCell, pmReadout *inputReadout, pmReadout *pedestal, ppOptions *options);
-pmReadout* ppDetrendPedestal (pmReadout *pedestal, pmCell *input, pmReadout *bias, pmReadout *dark, float darkTime, ppOptions *options);
+// XXX : these functions are identical to the ppImage equivalents
 pmReadout* ppDetrendSelectFirst (pmCell *cell, char *name, bool doThis);
-
 bool ppFPAOpen (ppFPA *fpa, psMetadata *camera, char *name, bool doThis);
+bool ppMergeLoadPixels (ppFPA *input, ppFPA *process, psDB *db, int nChip, int nCell);
