Index: /branches/eam_branches/ipp-20100823/ippconfig/recipes/jpeg.mdc
===================================================================
--- /branches/eam_branches/ipp-20100823/ippconfig/recipes/jpeg.mdc	(revision 29521)
+++ /branches/eam_branches/ipp-20100823/ippconfig/recipes/jpeg.mdc	(revision 29522)
@@ -5,4 +5,5 @@
 # * SCALE.MIN: Minimum for scaling
 # * SCALE.MAX: Maximum for scaling
+# * OPTIONS: comma-separated list : -SB,+SB,+X,+Y,-X,-Y
 
 PPIMAGE.JPEG1  	        METADATA
@@ -11,5 +12,5 @@
 	SCALE.MIN	F32	 -5.0
 	SCALE.MAX	F32	+10.0
-	SCALE.BAR	BOOL	T
+	OPTIONS		STR	+SB,-X,+Y
 END
 
@@ -19,5 +20,5 @@
 	SCALE.MIN	F32	0.95
 	SCALE.MAX	F32	1.05
-	SCALE.BAR	BOOL	F
+	OPTIONS		STR	+SB,-X,+Y
 END
 
@@ -27,5 +28,5 @@
 	SCALE.MIN	F32	 -5.0
 	SCALE.MAX	F32	+10.0
-	SCALE.BAR	BOOL	F
+	OPTIONS		STR	-SB,-X,+Y
 END
 
@@ -35,5 +36,5 @@
 	SCALE.MIN	F32	 -8.0
 	SCALE.MAX	F32	 +8.0
-	SCALE.BAR	BOOL	T
+	OPTIONS		STR	+SB,-X,+Y
 END
 
@@ -43,5 +44,5 @@
 	SCALE.MIN	F32	 -8.0
 	SCALE.MAX	F32	 +8.0
-	SCALE.BAR	BOOL	F
+	OPTIONS		STR	-SB,-X,+Y
 END
 
@@ -51,5 +52,5 @@
 	SCALE.MIN	F32	 -8.0
 	SCALE.MAX	F32	 +8.0
-	SCALE.BAR	BOOL	T
+	OPTIONS		STR	+SB,-X,+Y
 END
 
@@ -59,5 +60,5 @@
 	SCALE.MIN	F32 	 -5.0
 	SCALE.MAX	F32	+10.0
-	SCALE.BAR	BOOL	T
+	OPTIONS		STR	+SB,-X,+Y
 END
 
@@ -67,5 +68,5 @@
 	SCALE.MIN	F32 	 -5.0
 	SCALE.MAX	F32	+10.0
-	SCALE.BAR	BOOL	F
+	OPTIONS		STR	-SB,-X,+Y
 END
 
@@ -76,5 +77,5 @@
 		SCALE.MIN	F32	-5.0
 		SCALE.MAX	F32	+5.0
-		SCALE.BAR	BOOL	T
+		OPTIONS		STR	+SB,-X,+Y
 	END
 
@@ -84,5 +85,5 @@
 		SCALE.MIN	F32	-5.0
 		SCALE.MAX	F32	+5.0
-		SCALE.BAR	BOOL	F
+		OPTIONS		STR	-SB,-X,+Y
 	END
 END
@@ -95,5 +96,5 @@
 		SCALE.MIN	F32	-5.0
 		SCALE.MAX	F32	+5.0
-		SCALE.BAR	BOOL	T
+		OPTIONS		STR	+SB,-X,+Y
 	END
 
@@ -103,5 +104,5 @@
 		SCALE.MIN	F32	-5.0
 		SCALE.MAX	F32	+5.0
-		SCALE.BAR	BOOL	F
+		OPTIONS		STR	-SB,-X,+Y
 	END
 END
@@ -114,5 +115,5 @@
 		SCALE.MIN	F32	-2.0
 		SCALE.MAX	F32	+3.0
-		SCALE.BAR	BOOL	T
+		OPTIONS		STR	+SB,-X,+Y
 	END
 
@@ -122,5 +123,5 @@
 		SCALE.MIN	F32	-2.0
 		SCALE.MAX	F32	+3.0
-		SCALE.BAR	BOOL	F
+		OPTIONS		STR	-SB,-X,+Y
 	END
 END
@@ -133,5 +134,5 @@
 		SCALE.MIN	F32	0.90
 		SCALE.MAX	F32	1.10
-		SCALE.BAR	BOOL	T
+		OPTIONS		STR	+SB,-X,+Y
 	END
 
@@ -141,5 +142,5 @@
 		SCALE.MIN	F32	0.95
 		SCALE.MAX	F32	1.05
-		SCALE.BAR	BOOL	F
+		OPTIONS		STR	-SB,-X,+Y
 	END
 END
@@ -151,13 +152,13 @@
 		SCALE.MIN	F32	-5.0
 		SCALE.MAX	F32	+5.0
-		SCALE.BAR	BOOL	T
-	END
-
-	PPIMAGE.JPEG2		 METADATA
-		COLORMAP	STR	-greyscale
-		SCALE.MODE	STR	VALUE
-		SCALE.MIN	F32	-5.0
-		SCALE.MAX	F32	+5.0
-		SCALE.BAR	BOOL	F
+		OPTIONS		STR	+SB,-X,+Y
+	END
+
+	PPIMAGE.JPEG2		 METADATA
+		COLORMAP	STR	-greyscale
+		SCALE.MODE	STR	VALUE
+		SCALE.MIN	F32	-5.0
+		SCALE.MAX	F32	+5.0
+		OPTIONS		STR	-SB,-X,+Y
 	END
 END
@@ -169,5 +170,5 @@
 		SCALE.MIN	F32	0.99
 		SCALE.MAX	F32	1.01
-		SCALE.BAR	BOOL	T
+		OPTIONS		STR	+SB,-X,+Y
 	END
 
@@ -177,5 +178,5 @@
 		SCALE.MIN	F32	0.99
 		SCALE.MAX	F32	1.01
-		SCALE.BAR	BOOL	F
+		OPTIONS		STR	-SB,-X,+Y
 	END
 END
@@ -188,13 +189,13 @@
 		SCALE.MIN	F32	-2.0
 		SCALE.MAX	F32	+3.0
-		SCALE.BAR	BOOL	T
-	END
-
-	PPIMAGE.JPEG2		 METADATA
-		COLORMAP	STR	-greyscale
-		SCALE.MODE	STR	RANGE
-		SCALE.MIN	F32	-2.0
-		SCALE.MAX	F32	+3.0
-		SCALE.BAR	BOOL	F
+		OPTIONS		STR	+SB,-X,+Y
+	END
+
+	PPIMAGE.JPEG2		 METADATA
+		COLORMAP	STR	-greyscale
+		SCALE.MODE	STR	RANGE
+		SCALE.MIN	F32	-2.0
+		SCALE.MAX	F32	+3.0
+		OPTIONS		STR	-SB,-X,+Y
 	END
 END
@@ -206,5 +207,5 @@
 		SCALE.MIN	F32	0.95
 		SCALE.MAX	F32	1.05
-		SCALE.BAR	BOOL	T
+		OPTIONS		STR	+SB,-X,+Y
 	END
 
@@ -214,5 +215,5 @@
 		SCALE.MIN	F32	0.95
 		SCALE.MAX	F32	1.05
-		SCALE.BAR	BOOL	F
+		OPTIONS		STR	-SB,-X,+Y
 	END
 END
@@ -224,5 +225,5 @@
 		SCALE.MIN	F32	0.0
 		SCALE.MAX	F32	5.0
-		SCALE.BAR	BOOL	T
+		OPTIONS		STR	+SB,-X,+Y
 	END
 
@@ -232,5 +233,5 @@
 		SCALE.MIN	F32	0.0
 		SCALE.MAX	F32	5.0
-		SCALE.BAR	BOOL	F
+		OPTIONS		STR	-SB,-X,+Y
 	END
 END
@@ -242,5 +243,5 @@
 	SCALE.MIN	F32	 -8.0
 	SCALE.MAX	F32	 +8.0
-	SCALE.BAR	BOOL	T
+	OPTIONS		STR	+SB,-X,+Y
 END
 
@@ -250,5 +251,5 @@
 	SCALE.MIN	F32	 -8.0
 	SCALE.MAX	F32	 +8.0
-	SCALE.BAR	BOOL	F
-END
-
+	OPTIONS		STR	-SB,-X,+Y
+END
+
Index: /branches/eam_branches/ipp-20100823/psModules/src/camera/pmFPA_JPEG.c
===================================================================
--- /branches/eam_branches/ipp-20100823/psModules/src/camera/pmFPA_JPEG.c	(revision 29521)
+++ /branches/eam_branches/ipp-20100823/psModules/src/camera/pmFPA_JPEG.c	(revision 29522)
@@ -179,8 +179,14 @@
     psFree(stats);
 
+    // default options are: no flip in X or Y, scale bar on bottom
+    psImageJpegOptions *jpegOptions = psImageJpegOptionsAlloc();
+
     char *colormapName = psMetadataLookupStr(NULL, options, "COLORMAP"); // Name of colour map
     if (!colormapName) {
         colormapName = "-greyscale";
     }
+    psImageJpegColormapSet(jpegOptions, colormapName);
+
+    // set up the scale options
     char *mode = psMetadataLookupStr(NULL, options, "SCALE.MODE"); // Mode for scaling image
     if (!mode) {
@@ -195,43 +201,40 @@
         fmax = +6.0;
     }
-    bool haveBar = psMetadataLookupBool(&status, options, "SCALE.BAR"); // Mode for scaling image
-    if (!status) {
-        haveBar = false;
-    }
-
-    float min = 0, max = 0;             // Minimum and maximum for stretch
-
     if (!strcasecmp(mode, "RANGE")) {
-        min = mean + fmin*delta;
-        max = mean + fmax*delta;
+        jpegOptions->min = mean + fmin*delta;
+        jpegOptions->max = mean + fmax*delta;
     } else if (!strcasecmp(mode, "FRACTION")) {
-        min = fmin*mean;
-        max = fmax*mean;
+        jpegOptions->min = fmin*mean;
+        jpegOptions->max = fmax*mean;
     } else if (!strcasecmp(mode, "VALUE")) {
-        min = fmin;
-        max = fmax;
+	jpegOptions->min = fmin;
+        jpegOptions->max = fmax;
     } else {
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Unrecognised scaling mode: %s", mode);
         return false;
     }
-
-    if (!isfinite(min) || !isfinite(max)) {
+    if (!isfinite(jpegOptions->min) || !isfinite(jpegOptions->max)) {
         psLogMsg("psModules.jpeg", PS_LOG_WARN,
                  "The stretch parameters are not both finite --- writing blank jpeg");
-        min = 0;
-        max = 1;
-    }
-
-    psImageJpegOptions *jpegOptions = psImageJpegOptionsAlloc();
-    psImageJpegColormapSet(jpegOptions, colormapName);
-
-    // default options are: no flip in X or Y, scale bar on bottom
-    jpegOptions->min = min;
-    jpegOptions->max = max;
-
-    if (haveBar) {
-	jpegOptions->showScale = PS_JPEG_SHOWSCALE_BOTTOM;
-    } else {
-	jpegOptions->showScale = PS_JPEG_SHOWSCALE_NONE;
+        jpegOptions->min = 0;
+        jpegOptions->max = 1;
+    }
+
+    jpegOptions->showScale = PS_JPEG_SHOWSCALE_NONE;
+    jpegOptions->xFlip = false;
+    jpegOptions->yFlip = false;
+    
+    char *userOptions = psMetadataLookupStr(&status, options, "OPTIONS"); // Mode for scaling image
+    if (userOptions) {
+	// just use strstr for now 
+	if (strcasestr(userOptions, "+SB")) {
+	    jpegOptions->showScale = PS_JPEG_SHOWSCALE_BOTTOM;
+	} 
+	if (strcasestr(userOptions, "-X")) {
+	    jpegOptions->xFlip = true;
+	} 
+	if (strcasestr(userOptions, "-Y")) {
+	    jpegOptions->yFlip = true;
+	} 
     }
 
