brewco/setup.c

changeset 445
3ec477cda546
parent 443
6b80a37fdf8d
child 446
78e9d5234d15
--- a/brewco/setup.c	Fri Dec 04 14:21:25 2015 +0100
+++ b/brewco/setup.c	Fri Dec 04 22:57:23 2015 +0100
@@ -36,9 +36,90 @@
 
 
 
-int toggleYesNo(int value, char *text)
+void editFloat(float *value, float low, float high, char *text)
 {
-    int		key, new = value;
+    int		key;
+    float	new = *value;
+    char	pmpt[81];
+
+    prompt(0, NULL);
+    prompt(133, NULL);
+
+    for (;;) {
+	snprintf(pmpt, Config.lcd_cols + 1, "%s: %5.1f\001", text, new);
+	prompt(200, pmpt);
+	if (new == low)
+	    prompt(404, NULL);
+	else if (new == high)
+	    prompt(402, NULL);
+	else
+	    prompt(403, NULL);
+
+	key = keywait();
+	if ((key == KEY_RETURN) || my_shutdown)
+	    return;
+	if (key == KEY_UP) {
+	    new = new + 0.5;
+	    if (new > high)
+		new = high;
+	}
+	if (key == KEY_DOWN) {
+	    new = new - 0.5;
+	    if (new < low)
+		new = low;
+	}
+	if (key == KEY_ENTER) {
+	    *value = new;
+	    return;
+	}
+    }
+}
+
+
+
+void editInteger(int *value, int low, int high, char *text)
+{
+    int         key, new = *value;
+    char        pmpt[81];
+
+    prompt(0, NULL);
+    prompt(134, NULL);
+
+    for (;;) {
+        snprintf(pmpt, Config.lcd_cols + 1, "%s: %2d mins", text, new);
+        prompt(200, pmpt);
+        if (new == low)
+            prompt(404, NULL);
+        else if (new == high)
+            prompt(402, NULL);
+        else
+            prompt(403, NULL);
+
+        key = keywait();
+        if ((key == KEY_RETURN) || my_shutdown)
+            return;
+        if (key == KEY_UP) {
+            new++;
+            if (new > high)
+                new = high;
+        }
+        if (key == KEY_DOWN) {
+            new--;
+            if (new < low)
+                new = low;
+        }
+        if (key == KEY_ENTER) {
+            *value = new;
+            return;
+        }
+    }
+}
+
+
+
+void toggleYesNo(int *value, char *text)
+{
+    int		key, new = *value;
     char	pmpt[81];
 
     prompt(0, NULL);
@@ -56,13 +137,15 @@
 
 	key = keywait();
 	if ((key == KEY_RETURN) || my_shutdown)
-	    return value;
+	    return;
 	if ((key == KEY_UP) && new)
 	    new = 0;
 	else if ((key == KEY_DOWN) && (new == 0))
 	    new = 1;
-	if (key == KEY_ENTER)
-	    return new;
+	if (key == KEY_ENTER) {
+	    *value = new;
+	    return;
+	}
     }
 }
 
@@ -132,7 +215,7 @@
 	    case 13:	snprintf(pmpt, Config.lcd_cols + 1, " Pump on-boil: %s", unit->pump_onboil ? (char *)"Yes":(char *)"No");
 			prompt(200, pmpt);
 			break;
-	    case 14:	snprintf(pmpt, Config.lcd_cols + 1, "  Pump stop: %3d\337C", unit->pump_stop);
+	    case 14:	snprintf(pmpt, Config.lcd_cols + 1, " Pump stop: %5.1f\001", unit->pump_stop);
 			prompt(200, pmpt);
 			break;
 	    case 15:	snprintf(pmpt, Config.lcd_cols + 1, "    Skip Add: %s", unit->skip_add ? (char *)"Yes":(char *)"No");
@@ -169,8 +252,32 @@
 
 	if (key == KEY_ENTER) {
 	    switch(index) {
-		case 7:	unit->hlt_heater_mltfirst = toggleYesNo(unit->hlt_heater_mltfirst , (char *)"MLT heat b4 HLT");
-			break;
+
+		case 7:		toggleYesNo(&unit->hlt_heater_mltfirst, (char *)"MLT heat b4 HLT");
+				break;
+		case 8:		editInteger(&unit->pump_cycle, 5, 15, (char *)"Pump cycle");
+				break;
+		case 9:		editInteger(&unit->pump_rest, 1, 5, (char *)"Pump rest ");
+				break;
+		case 10:	toggleYesNo(&unit->pump_premash, (char *)" Pump pre-mash");
+				break;
+		case 11:	toggleYesNo(&unit->pump_onmash, (char *)" Pump on-mash");
+				break;
+		case 12:	toggleYesNo(&unit->pump_mashout, (char *)" Pump mashout");
+				break;
+		case 13:	toggleYesNo(&unit->pump_onboil, (char *)" Pump on-boil");
+				break;
+		case 14:	editFloat(&unit->pump_stop, 80.0, 110.0, (char *)" Pump stop");
+				break;
+		case 15:	toggleYesNo(&unit->skip_add, (char *)"Skip add water");
+				break;
+		case 16:	toggleYesNo(&unit->skip_remove, (char *)"Skip remove Mash");
+				break;
+		case 17:	toggleYesNo(&unit->skip_iodine, (char *)"Skip iodine test");
+				break;
+		case 19:	toggleYesNo(&unit->whirlpool, (char *)"Do a whirlpool");
+				break;
+
 	    }
 	}
     // name

mercurial