brewco/setup.c

changeset 461
482bab226340
parent 459
1f88be70f253
child 462
830ae3c3ef98
--- a/brewco/setup.c	Tue Dec 15 23:14:00 2015 +0100
+++ b/brewco/setup.c	Wed Dec 16 22:06:11 2015 +0100
@@ -209,6 +209,69 @@
 
 
 
+void editName(char *name, char *text)
+{
+    char	pmpt[81];
+    int		i, x = 0, key, val;
+
+    if (debug)
+	fprintf(stdout, "editName(%s)\n", name);
+
+    prompt(0, NULL);
+    prompt(131, NULL);              /* "    Change Name     " */
+    prompt(417, NULL);              /* " up  dwn  next  ok  " */
+
+    for (;;) {
+	snprintf(pmpt, Config.lcd_cols + 1, "                    ");
+	prompt(200, pmpt);
+#ifdef HAVE_WIRINGPI_H
+	lcdPosition(lcdHandle, x, 1);
+	lcdPutchar(lcdHandle, '*');
+#endif
+        slcdPosition(slcdHandle, x, 1);
+	slcdPutchar(slcdHandle, '*');
+	snprintf(pmpt, Config.lcd_cols + 1, "%s", name);
+	prompt(300, pmpt);
+
+	key = keywait();
+
+	if ((key == KEY_ENTER) || my_shutdown) {
+	    if (debug)
+		fprintf(stdout, "End editName(%s)\n", name);
+	    for (i = strlen(name) -1; i > 1; i--) {
+		if (name[i] != ' ')
+		    break;
+		name[i] = '\0';
+	    }
+	    if (debug)
+		fprintf(stdout, "End editName(%s)\n", name);
+	    return;
+	}
+	if (key == KEY_RETURN) {
+	    if (x < 19)
+		x++;
+	    else
+		x = 0;
+	    if (debug)
+		fprintf(stdout, "editName: strlen=%d x=%d\n", (int)strlen(name) - 1, x);
+	    if (x > ((int)strlen(name) - 1)) {
+		name[x + 1] = '\0';
+		name[x] = ' ';
+	    }
+	}
+	if (key == KEY_UP || key == KEY_DOWN) {
+	    val = name[x];
+	    if ((key == KEY_UP) && (val < 126))
+	    	val++;
+	    if ((key == KEY_DOWN) && (val > 32))
+	    	val--;
+	    name[x] = val;
+	}
+    }
+}
+
+
+
 void editPID(pid_var *pid)
 {
     int		idx = 1, key, val;
@@ -220,7 +283,7 @@
 
     for (;;) {
 	prompt(0, NULL);
-	prompt(135, NULL);
+	prompt(192, NULL);
 
 	if (idx == 1)
 	    prompt(402, NULL);
@@ -511,7 +574,7 @@
 void editUnit(units_list *unit)
 {
     int		idx = 1, key;
-    char	pmpt[81], *uuid;
+    char	pmpt[81], *uuid, *name;
     uLong	ocrc, ncrc;
 
     if (debug)
@@ -524,7 +587,7 @@
     for (;;) {
 
 	prompt(0, NULL);
-	prompt(131, NULL);
+	prompt(193, NULL);
 
 	if (idx == 1)
 	    prompt(402, NULL);
@@ -618,7 +681,13 @@
 
 	if (key == KEY_ENTER) {
 	    switch(idx) {
-		case 1:		// name
+		case 1:		name = calloc(sizeof(char), 21);
+				snprintf(name, 21, unit->name);
+				editName(name, (char *)"Unit name");
+				if (unit->name)
+				    free(unit->name);
+				unit->name = xstrcpy(name);
+				free(name);
 				break;
 		case 2:		uuid = xstrcpy(unit->hlt_sensor.uuid);
 				editSensor(uuid, (char *)"HLT sensor");
@@ -763,7 +832,7 @@
 void editRecipe(a_recipe *recipe)
 {
     int         idx = 1, key;
-    char        pmpt[81];
+    char        pmpt[81], *name;
     uLong       ocrc, ncrc;
 
     if (debug)
@@ -776,7 +845,7 @@
     for (;;) {
 
         prompt(0, NULL);
-        prompt(139, NULL);
+        prompt(191, NULL);
 
         if (idx == 1)
             prompt(402, NULL);
@@ -818,9 +887,21 @@
 
         if (key == KEY_ENTER) {
             switch(idx) {
-                case 1:         // name
+                case 1:         name = calloc(sizeof(char), 21);
+				snprintf(name, 21, recipe->name);
+				editName(name, (char *)"Recipe name");
+				if (recipe->name)
+				    free(recipe->name);
+				recipe->name = xstrcpy(name);
+				free(name);
                                 break;
-		case 2:		// code
+		case 2:		name = calloc(sizeof(char), 21);
+				snprintf(name, 21, recipe->code);
+				editName(name, (char *)"Recipe code");
+				if (recipe->code)
+				    free(recipe->code);
+				recipe->code = xstrcpy(name);
+				free(name);
 				break;
 		case 3:		editInteger(&recipe->boiltime, 60, 240, 5, (char *)"Boil time:", (char *)"mins");
 				break;
@@ -995,7 +1076,7 @@
 	prompt(102, NULL);          /* "     SETUP MENU     " */
 	prompt(221, NULL);          /* "   Select Recipe    " */
 	if (total) {
-	    snprintf(pmpt, Config.lcd_cols + 1, "%s", recipe->name);
+	    snprintf(pmpt, Config.lcd_cols + 1, "%s %s                   ", recipe->code, recipe->name);
 	    prompt(300, pmpt);
 	}
 	if (total == 0)
@@ -1060,7 +1141,7 @@
 	    }
 	    prompt(102, NULL);		/* "     SETUP MENU     " */
 	    prompt(222, NULL);		/* " Select Brewsystem  " */
-	    snprintf(pmpt, Config.lcd_cols + 1, "%s", unit->name);
+	    snprintf(pmpt, Config.lcd_cols + 1, "%s                    ", unit->name);
 	    prompt(300, pmpt);
 	    if (total == 1)
 		prompt(415, NULL);	/* "add  ---  quit  ok  " */

mercurial