main/recipes.c

changeset 54
7b134c27fadb
parent 19
49e2960d4642
child 56
756d1a63d129
--- a/main/recipes.c	Sun May 19 21:05:07 2019 +0200
+++ b/main/recipes.c	Mon Jul 01 23:15:49 2019 +0200
@@ -51,7 +51,9 @@
 {
     if (! recipe.Additions) {
 	// No entries yet, add the first one.
-    	sprintf(recipe.Addition[recipe.Additions].Name, "%s", Name);
+    	snprintf(recipe.Addition[recipe.Additions].Name, 63, "%s", Name);
+//        recipe.Addition[recipe.Additions].Name = "";
+//	strncat(recipe.Addition[recipe.Additions].Name, Name, 63);
     	recipe.Addition[recipe.Additions].Type = Type;
     	recipe.Addition[recipe.Additions].Time = Time;
     	recipe.Additions++;
@@ -62,7 +64,9 @@
     for (int i = 0; i < recipe.Additions; i++) {
 	if (recipe.Addition[i].Time == Time) {
 	    // Yes, update the name.
-	    snprintf(recipe.Addition[i].Name, 63, "%s, %s", recipe.Addition[i].Name, Name);
+	    //snprintf(recipe.Addition[i].Name, 63, "%s, %s", recipe.Addition[i].Name, Name);
+	    strncat(recipe.Addition[i].Name, ", ", 63 - strlen(recipe.Addition[i].Name));
+	    strncat(recipe.Addition[i].Name, Name, 63 - strlen(recipe.Addition[i].Name));
 	    return;
 	}
     }
@@ -76,7 +80,7 @@
 		recipe.Addition[j+1].Type = recipe.Addition[j].Type;
 		recipe.Addition[j+1].Time = recipe.Addition[j].Time;
 	    }
-	    sprintf(recipe.Addition[i].Name, "%s", Name);
+	    snprintf(recipe.Addition[i].Name, 63, "%s", Name);
 	    recipe.Addition[i].Type = Type;
 	    recipe.Addition[i].Time = Time;
 	    recipe.Additions++;
@@ -85,7 +89,7 @@
     }
 
     // Just append.
-    sprintf(recipe.Addition[recipe.Additions].Name, "%s", Name);
+    snprintf(recipe.Addition[recipe.Additions].Name, 63, "%s", Name);
     recipe.Addition[recipe.Additions].Type = Type;
     recipe.Addition[recipe.Additions].Time = Time;
     recipe.Additions++;
@@ -145,7 +149,8 @@
              * We are in a recipe
              */
             if ((_xml_depth == 3) && (strcmp("NAME", _xml_element[2]) == 0)) {
-                snprintf(recipe.Name, 127, "%s", char_data_buffer);
+		recipe.Name[0] = '\0';
+                strncat(recipe.Name, char_data_buffer, 127);
             } else if ((_xml_depth == 3) && (strcmp("BOIL_TIME", _xml_element[2]) == 0)) {
                 recipe.BoilTime = atoi(char_data_buffer);
             } else if ((_xml_depth == 5) && (strcmp("HOPS", _xml_element[2]) == 0) && (strcmp("HOP", _xml_element[3]) == 0)) {
@@ -444,7 +449,7 @@
 
     switch (Main_Screen) {
 	case MAIN_TOOLS_RECIPE:
-			TopMessage("Recepten importeren");
+			TopMessage((char *)"Recepten importeren");
 			r_Imported = 0;
 			TFT_setFont(DEFAULT_FONT, NULL);
 			y = 28;
@@ -464,10 +469,10 @@
 					append_recipe();
 					rename(filename, newname);
 				    	_fg = TFT_GREEN;
-				    	TFT_print(" Ok", LASTX, y);
+				    	TFT_print((char *)" Ok", LASTX, y);
 				    } else {
 				    	_fg = TFT_RED;
-				    	TFT_print(" Fout", LASTX, y);
+				    	TFT_print((char *)" Fout", LASTX, y);
 				    }
 				    r_Imported++;	// Count them all
 				    y += 16;
@@ -514,7 +519,7 @@
 	case MAIN_TOOLS_RECIPE:
 			if (r_Imported) {
 			    Buttons_Clear();
-			    Buttons_Add(135, 210, 50, 30, "Ok"  , 0);
+			    Buttons_Add(135, 210, 50, 30, (char *)"Ok"  , 0);
 			    Buttons_Show();
 
 			    while (true) {
@@ -529,23 +534,23 @@
 			    _bg = TFT_BLACK;
 			    TFT_fillScreen(_bg);
 			    TFT_resetclipwin();
-			    TopMessage("Recepten");
+			    TopMessage((char *)"Recepten");
 			    r_UpdateRec = false;
 			    read_recipe(r_CurrentRec);
 			    TFT_setFont(DEFAULT_FONT, NULL);
-			    ShowText(2, 28, "Naam", recipe.Name);
-			    ShowText(2, 44, "Code", recipe.Code);
-			    ShowInteger(162, 44, "Record", NULL, r_CurrentRec);
-			    ShowInteger(2, 60, "Kooktijd", " min", recipe.BoilTime);
-			    ShowFloat(162, 60, "Koel tot", " C", recipe.CoolTemp, 2);
-			    ShowFloat(2, 76, "Maisch in", " C", recipe.MashStep[0].Temperature, 2);
-			    ShowFloat(162, 76, "Spoelwater", " C", recipe.SpargeTemp, 2);
+			    ShowText(2, 28, (char *)"Naam", recipe.Name);
+			    ShowText(2, 44, (char *)"Code", recipe.Code);
+			    ShowInteger(162, 44, (char *)"Record", NULL, r_CurrentRec);
+			    ShowInteger(2, 60, (char *)"Kooktijd", (char *)" min", recipe.BoilTime);
+			    ShowFloat(162, 60, (char *)"Koel tot", (char *)" C", recipe.CoolTemp, 2);
+			    ShowFloat(2, 76, (char *)"Maisch in", (char *)" C", recipe.MashStep[0].Temperature, 2);
+			    ShowFloat(162, 76, (char *)"Spoelwater", (char *)" C", recipe.SpargeTemp, 2);
 			    y =  92;
 			    _fg = TFT_WHITE;
-			    TFT_print("Maisch stap", 2, y);
-			    TFT_print("T", 200, y);
-			    TFT_print("Temp.", 220, y);
-			    TFT_print("Rust", 280, y);
+			    TFT_print((char *)"Maisch stap", 2, y);
+			    TFT_print((char *)"T", 200, y);
+			    TFT_print((char *)"Temp.", 220, y);
+			    TFT_print((char *)"Rust", 280, y);
 			    _fg = TFT_YELLOW;
 			    y += 16;
 			    for (int i = 1; i < 8; i++) {
@@ -566,53 +571,53 @@
 				sprintf(tmp, "%d ", recipe.Additions);
 				TFT_print(tmp, 2, y);
 				_fg = TFT_WHITE;
-				TFT_print("toevoegingen om", LASTX, y);
+				TFT_print((char *)"toevoegingen om", LASTX, y);
 				_fg = TFT_YELLOW;
 				for (int i = 1; i <= recipe.Additions; i++) {
 				    sprintf(tmp, " %d", recipe.Addition[i-1].Time);
 				    TFT_print(tmp, LASTX, y);
 				}
 				_fg = TFT_WHITE;
-				TFT_print(" minuten", LASTX, y);
+				TFT_print((char *)" minuten", LASTX, y);
 			    } else {
 				_fg = TFT_WHITE;
-				TFT_print("Geen hop toevoegingen.", 2, y);
+				TFT_print((char *)"Geen hop toevoegingen.", 2, y);
 			    }
 			    y += 16;
 			    if (recipe.Whirlpool9 || recipe.Whirlpool7 || recipe.Whirlpool6 || recipe.Whirlpool2) {
 				_fg = TFT_WHITE;
-				TFT_print("Whirlpool ", 2, y);
+				TFT_print((char *)"Whirlpool ", 2, y);
 				_fg = TFT_YELLOW;
 				if (recipe.Whirlpool9)
-				    TFT_print("88+ ", LASTX, y);
+				    TFT_print((char *)"88+ ", LASTX, y);
 				if (recipe.Whirlpool7)
-				    TFT_print("71+ ", LASTX, y);
+				    TFT_print((char *)"71+ ", LASTX, y);
 				if (recipe.Whirlpool6)
-				    TFT_print("60+ ", LASTX, y);
+				    TFT_print((char *)"60+ ", LASTX, y);
 				if (recipe.Whirlpool2)
-				    TFT_print("koud", LASTX, y);
+				    TFT_print((char *)"koud", LASTX, y);
 			    }
 
 			    Buttons_Clear();
-			    Buttons_Add(  0, 210, 45, 30, "Ok"  , 0);
-			    Buttons_Add( 46, 210, 45, 30, "+"   , 1);
+			    Buttons_Add(  0, 210, 45, 30, (char *)"Ok"  , 0);
+			    Buttons_Add( 46, 210, 45, 30, (char *)"+"   , 1);
 			    if (r_CurrentRec != config.RecipeRec)
-				Buttons_Add( 92, 210, 45, 30, "-", 2);
+				Buttons_Add( 92, 210, 45, 30, (char *)"-", 2);
 			    else
-				Buttons_Add( 92, 210, 45, 30, ""    , 2);
+				Buttons_Add( 92, 210, 45, 30, (char *)""    , 2);
 			    if (r_CurrentRec > 1)
-				Buttons_Add(138, 210, 45, 30, "<", 3);
+				Buttons_Add(138, 210, 45, 30, (char *)"<", 3);
 			    else
-				Buttons_Add(138, 210, 45, 30, "", 3);
+				Buttons_Add(138, 210, 45, 30, (char *)"", 3);
 			    if (r_CurrentRec < r_Records)
-				Buttons_Add(184, 210, 45, 30, ">", 4);
+				Buttons_Add(184, 210, 45, 30, (char *)">", 4);
 			    else
-				Buttons_Add(184, 210, 45, 30, "", 4);
+				Buttons_Add(184, 210, 45, 30, (char *)"", 4);
 			    if (r_CurrentRec != config.RecipeRec)
-				Buttons_Add(230, 210, 45, 30, "Std", 5);
+				Buttons_Add(230, 210, 45, 30, (char *)"Std", 5);
 			    else
-				Buttons_Add(230, 210, 45, 30, "", 5);
-			    Buttons_Add(276, 210, 45, 30, "Ed"  , 6);
+				Buttons_Add(230, 210, 45, 30, (char *)"", 5);
+			    Buttons_Add(276, 210, 45, 30, (char *)"Ed"  , 6);
 			    Buttons[0].dark = true;
 			    Buttons_Show();
 			} /* if (r_UpdateRec) */
@@ -701,15 +706,15 @@
 			dst = (uint8_t*)&recipe;
 			crc1 = crc32_le(0, dst, sizeof(recipe));
 
-			EditText("Naam", recipe.Name, 31);
-			EditText("Code", recipe.Code, 31);
+			EditText((char *)"Naam", recipe.Name, 31);
+			EditText((char *)"Code", recipe.Code, 31);
 			mashsteps = 0;
 			for (int i = 1; i < 7; i++) {
 			    if (recipe.MashStep[i].Resttime)
 				mashsteps++;
 			}
-			EditInt("Maisch stappen", &mashsteps, 1, 6);
-			EditFloat("Inmaisch temperatuur", &recipe.MashStep[0].Temperature, 38, 74, 2);
+			EditInt((char *)"Maisch stappen", &mashsteps, 1, 6);
+			EditFloat((char *)"Inmaisch temperatuur", &recipe.MashStep[0].Temperature, 38, 74, 2);
 			// Round to 0.25 values
 			recipe.MashStep[0].Temperature = ((int)(recipe.MashStep[0].Temperature * 4)) / 4.0;
 			for (int i = 1; i <= mashsteps; i++) {
@@ -741,18 +746,18 @@
 			    }
 			}
 			mintemp = recipe.MashStep[mashsteps].Temperature;
-			EditFloat("Uitmaischen temperatuur", &recipe.MashStep[7].Temperature, mintemp, 80, 2);
+			EditFloat((char *)"Uitmaischen temperatuur", &recipe.MashStep[7].Temperature, mintemp, 80, 2);
 			recipe.MashStep[7].Temperature = ((int)(recipe.MashStep[7].Temperature * 4)) / 4.0;
-			EditUint16("Uitmaischen tijd in minuten", &recipe.MashStep[7].Resttime, 1, 15);
+			EditUint16((char *)"Uitmaischen tijd in minuten", &recipe.MashStep[7].Resttime, 1, 15);
 			recipe.MashStep[7].Ramptime = (int)(recipe.MashStep[7].Temperature - recipe.MashStep[mashsteps].Temperature);
 			// Zero any higher steps to diable them.
 			for (int i = (mashsteps + 1); i < 7; i++)
 			    recipe.MashStep[i].Resttime = 0;
 
-			EditUint16("Kook tijd in minuten", &recipe.BoilTime, 3, 480);
-			EditUint8("Hop/kruiden toevoegingen", &recipe.Additions, 1, 10);
+			EditUint16((char *)"Kook tijd in minuten", &recipe.BoilTime, 3, 480);
+			EditUint8((char *)"Hop/kruiden toevoegingen", &recipe.Additions, 1, 10);
 			for (uint8_t i = 0; i < recipe.Additions; i++) {
-			    sprintf(tmp, "Toevoeging %d maam", i+1);
+			    sprintf(tmp, "Toevoeging %d naam", i+1);
 			    if (strlen(recipe.Addition[i].Name) == 00) {
 				sprintf(recipe.Addition[i].Name, "Hop %d", (int)i+1);
 			    }
@@ -766,17 +771,17 @@
 			    recipe.Addition[i].Type = ADDITION_HOP;
 			}
 
-			EditFloat("Koel temperatuur", &recipe.CoolTemp, 10, 30, 2);
+			EditFloat((char *)"Koel temperatuur", &recipe.CoolTemp, 10, 30, 2);
 			recipe.CoolTemp = ((int)(recipe.CoolTemp * 4)) / 4.0;
-			EditFloat("Spoelwater temperatuur", &recipe.SpargeTemp, 75, 98, 2);
+			EditFloat((char *)"Spoelwater temperatuur", &recipe.SpargeTemp, 75, 98, 2);
 			recipe.SpargeTemp = ((int)(recipe.SpargeTemp * 4)) / 4.0;
-			EditUint16("Whirlpool 88..100 graden, 0 = niet", &recipe.Whirlpool9, 0, 120);
-			EditUint16("Whirlpool 71..77 graden, 0 = niet", &recipe.Whirlpool7, 0, 120);
-			EditUint16("Whirlpool 60..66 graden, 0 = niet", &recipe.Whirlpool6, 0, 120);
-			EditUint16("Whirlpool koud, 0 = niet", &recipe.Whirlpool2, 0, 120);
+			EditUint16((char *)"Whirlpool 88..100 graden, 0 = niet", &recipe.Whirlpool9, 0, 120);
+			EditUint16((char *)"Whirlpool 71..77 graden, 0 = niet", &recipe.Whirlpool7, 0, 120);
+			EditUint16((char *)"Whirlpool 60..66 graden, 0 = niet", &recipe.Whirlpool6, 0, 120);
+			EditUint16((char *)"Whirlpool koud, 0 = niet", &recipe.Whirlpool2, 0, 120);
 
 			crc2 = crc32_le(0, dst, sizeof(recipe));
-			if ((crc1 != crc2) && Confirm("Gewijzigd, opslaan?", "Ja", "Nee")) {
+			if ((crc1 != crc2) && Confirm((char *)"Gewijzigd, opslaan?", (char *)"Ja", (char *)"Nee")) {
 			    write_recipe(r_CurrentRec);
 			}
 			Main_Screen = MAIN_TOOLS_RECIPE;

mercurial