Index: trunk/psModules/src/extras/pmVisual.c
===================================================================
--- trunk/psModules/src/extras/pmVisual.c	(revision 21422)
+++ trunk/psModules/src/extras/pmVisual.c	(revision 23242)
@@ -18,5 +18,8 @@
 #include "pmHDU.h"
 #include "pmFPA.h"
+#include "pmFPAfile.h"
 #include "pmAstrometryObjects.h"
+#include "pmSubtractionStamps.h"
+#include "pmTrend2D.h"
 #include "pmFPAExtent.h"
 
@@ -28,4 +31,31 @@
 # define KAPAY 700
 
+#include "pmAstrometryVisual.h"
+#include "pmSubtractionVisual.h"
+#include "pmStackVisual.h"
+#include "pmSourceVisual.h"
+
+//#define TESTING
+
+static bool isVisual = false;
+
+
+bool pmVisualSetVisual(bool value) {
+    isVisual = value;
+    return true;
+}
+
+
+bool pmVisualIsVisual(void) {return isVisual;}
+
+bool pmVisualClose(void) {
+    pmAstromVisualClose();
+    pmSubtractionVisualClose();
+    pmStackVisualClose();
+    pmSourceVisualClose();
+    //XXX handle psphot
+    //    psphotVisualClose();
+    return true;
+}
 
 bool pmVisualInitWindow (int *kapid, char *name) {
@@ -34,4 +64,5 @@
         if (*kapid == -1) {
             fprintf (stderr, "Failure to open kapa.\n");
+            isVisual = false;
             return false;
         }
@@ -52,5 +83,5 @@
 
 
-bool pmVisualAskUser(bool *plotFlag, bool *packageFlag)
+bool pmVisualAskUser(bool *plotFlag)
 {
     char key[10];
@@ -63,5 +94,5 @@
     }
     if (key[0] == 'a') {
-        *packageFlag = false;
+        isVisual = false;
     }
     return true;
@@ -182,10 +213,14 @@
 
 bool pmVisualScaleImage(int kapaFD, psImage *inImage, const char *name, int channel, bool clip) {
-
     KiiImage image;
     KapaImageData data;
     Coords coords;
 
-    //make sure we have a compatible image type
+    //make sure we have a compatible image
+    if (inImage == NULL) {
+        fprintf(stderr, "Image is NULL, and cannot be displayed\n");
+        return false;
+    }
+
     if(inImage->type.type != PS_TYPE_F32) {
         fprintf(stderr, "Cannot display this image (imcompatible data type)\n");
@@ -194,4 +229,5 @@
 
     strcpy (coords.ctype, "RA---TAN");
+
 
     double min, max, stdev, mean;
@@ -304,9 +340,11 @@
 
 #else
-
+bool pmVisualSetVisual(bool value) {return true;}
+bool pmVisualIsVisual(void) {return false;}
+bool pmVisualClose(void) {return true;}
 bool pmVisualInitWindow(int *kapid, char *name){return true;}
 bool pmVisualInitGraph (int kapa, void *section, void *graphdata){return true;}
 
-bool pmVisualAskUser(bool *plotFlag, bool *packageFlag){return true;}
+bool pmVisualAskUser(bool *plotFlag){return true;}
 bool pmVisualImStats(psImage *image, double *mean,
                      double *stdev, double *min, double *max){return true;}
