Index: /trunk/psModules/src/extras/Makefile.am
===================================================================
--- /trunk/psModules/src/extras/Makefile.am	(revision 24879)
+++ /trunk/psModules/src/extras/Makefile.am	(revision 24880)
@@ -8,5 +8,6 @@
 	psIOBuffer.c \
 	pmKapaPlots.c \
-	pmVisual.c
+	pmVisual.c \
+	ippStages.c
 
 pkginclude_HEADERS = \
@@ -15,5 +16,6 @@
 	psIOBuffer.h \
 	pmKapaPlots.h \
-	pmVisual.h
+	pmVisual.h \
+	ippStages.h
 
 CLEANFILES = *~
Index: /trunk/psModules/src/extras/ippStages.c
===================================================================
--- /trunk/psModules/src/extras/ippStages.c	(revision 24880)
+++ /trunk/psModules/src/extras/ippStages.c	(revision 24880)
@@ -0,0 +1,29 @@
+/** Functions that describe the various stages of the IPP
+ *  @author Bill Sweeney, IfA
+ **/
+
+#include <pslib.h>
+#include "ippStages.h"
+#include <string.h>
+
+ippStage ippStringToStage(const psString stageString)
+{
+    PS_ASSERT_PTR_NON_NULL(stageString, IPP_STAGE_NONE);
+
+    if (!strcmp(stageString, "raw")) {
+        return IPP_STAGE_RAW;
+    } else if (!strcmp(stageString, "chip")) {
+        return IPP_STAGE_CHIP;
+    } else if (!strcmp(stageString, "camera")) {
+        return IPP_STAGE_CAMERA;
+    } else if (!strcmp(stageString, "warp")) {
+        return IPP_STAGE_WARP;
+    } else if (!strcmp(stageString, "diff")) {
+        return IPP_STAGE_DIFF;
+    } else if (!strcmp(stageString, "stack")) {
+        return IPP_STAGE_STACK;
+    } else {
+        psError(PS_ERR_PROGRAMMING, true, "%s is not a valid IPP stage", stageString);
+        return IPP_STAGE_NONE;
+    }
+}
Index: /trunk/psModules/src/extras/ippStages.h
===================================================================
--- /trunk/psModules/src/extras/ippStages.h	(revision 24880)
+++ /trunk/psModules/src/extras/ippStages.h	(revision 24880)
@@ -0,0 +1,27 @@
+/* @file psVisual.h
+ * @brief some macro defintions for the stages of the pipeline
+ * @author Bill Sweeney, IfA
+ *
+ * Copyright 2009 Institute for Astronomy, University of Hawaii
+ */
+
+#ifndef IPP_STAGES_H
+#define IPP_STAGES_H
+
+typedef enum {
+    IPP_STAGE_NONE = -1,
+    IPP_STAGE_RAW = 0,
+    IPP_STAGE_CHIP,
+    IPP_STAGE_CAMERA,
+    IPP_STAGE_FAKE,
+    IPP_STAGE_WARP,
+    IPP_STAGE_DIFF,
+    IPP_STAGE_STACK,
+} ippStage;
+
+/** return the ippStage represented by a string
+ * @return the corresponding value or IPP_STAGE_NONE if invalid
+ */
+ippStage ippStringToStage(const psString stageString);
+
+#endif
