1053 prompt(300, pmpt); |
1053 prompt(300, pmpt); |
1054 break; |
1054 break; |
1055 case 3: snprintf(pmpt, Config.lcd_cols + 1, "Boil time: %3d mins", recipe->boiltime); |
1055 case 3: snprintf(pmpt, Config.lcd_cols + 1, "Boil time: %3d mins", recipe->boiltime); |
1056 prompt(200, pmpt); |
1056 prompt(200, pmpt); |
1057 break; |
1057 break; |
1058 case 4: |
1058 case 4: snprintf(pmpt, Config.lcd_cols + 1, " Cool to: %5.1f\001", recipe->coolto); |
|
1059 prompt(200, pmpt); |
|
1060 break; |
1059 case 5: |
1061 case 5: |
1060 case 6: |
1062 case 6: |
1061 case 7: |
1063 case 7: |
1062 case 8: |
1064 case 8: |
1063 case 9: |
1065 case 9: |
1064 case 10: |
1066 case 10: |
1065 case 11: snprintf(pmpt, Config.lcd_cols + 1, "Mash: %s", recipe->mash[idx - 4].name); |
1067 case 11: |
1066 prompt(200, pmpt); |
1068 case 12: snprintf(pmpt, Config.lcd_cols + 1, "Mash: %s", recipe->mash[idx - 5].name); |
1067 if (recipe->mash[idx - 4].skip) |
1069 prompt(200, pmpt); |
|
1070 if (recipe->mash[idx - 5].skip) |
1068 snprintf(pmpt, Config.lcd_cols + 1, " Skipped"); |
1071 snprintf(pmpt, Config.lcd_cols + 1, " Skipped"); |
1069 else |
1072 else |
1070 snprintf(pmpt, Config.lcd_cols + 1, " Sv %4.1f\001 %3d mins", recipe->mash[idx - 4].setpoint, recipe->mash[idx - 4].duration); |
1073 snprintf(pmpt, Config.lcd_cols + 1, " Sv %4.1f\001 %3d mins", recipe->mash[idx - 5].setpoint, recipe->mash[idx - 5].duration); |
1071 prompt(300, pmpt); |
1074 prompt(300, pmpt); |
1072 break; |
1075 break; |
1073 case 12: |
|
1074 case 13: |
1076 case 13: |
1075 case 14: |
1077 case 14: |
1076 case 15: |
1078 case 15: |
1077 case 16: |
1079 case 16: |
1078 case 17: |
1080 case 17: |
1079 case 18: |
1081 case 18: |
1080 case 19: |
1082 case 19: |
1081 case 20: |
1083 case 20: |
1082 case 21: snprintf(pmpt, Config.lcd_cols + 1, "Add: %s", recipe->hops[idx - 12].name); |
1084 case 21: |
1083 prompt(200, pmpt); |
1085 case 22: snprintf(pmpt, Config.lcd_cols + 1, "Add: %s", recipe->hops[idx - 13].name); |
1084 if (recipe->hops[idx - 12].skip) |
1086 prompt(200, pmpt); |
|
1087 if (recipe->hops[idx - 13].skip) |
1085 snprintf(pmpt, Config.lcd_cols + 1, " Skipped"); |
1088 snprintf(pmpt, Config.lcd_cols + 1, " Skipped"); |
1086 else { |
1089 else { |
1087 if (recipe->hops[idx - 12].boiltime == -1) |
1090 if (recipe->hops[idx - 13].boiltime == -1) |
1088 snprintf(pmpt, Config.lcd_cols + 1, " First Wort Hop"); |
1091 snprintf(pmpt, Config.lcd_cols + 1, " First Wort Hop"); |
1089 else |
1092 else |
1090 snprintf(pmpt, Config.lcd_cols + 1, " Boil for %3d mins", recipe->hops[idx - 12].boiltime); |
1093 snprintf(pmpt, Config.lcd_cols + 1, " Boil for %3d mins", recipe->hops[idx - 13].boiltime); |
1091 } |
1094 } |
1092 prompt(300, pmpt); |
1095 prompt(300, pmpt); |
1093 break; |
1096 break; |
1094 case 22: |
1097 case 23: |
1095 case 23: |
1098 case 24: |
1096 case 24: snprintf(pmpt, Config.lcd_cols + 1, "Hopstand: %s", recipe->hopstand[idx - 22].name); |
1099 case 25: snprintf(pmpt, Config.lcd_cols + 1, "Hopstand: %s", recipe->hopstand[idx - 23].name); |
1097 prompt(200, pmpt); |
1100 prompt(200, pmpt); |
1098 if (recipe->hopstand[idx - 22].skip) |
1101 if (recipe->hopstand[idx - 23].skip) |
1099 snprintf(pmpt, Config.lcd_cols + 1, " Skipped"); |
1102 snprintf(pmpt, Config.lcd_cols + 1, " Skipped"); |
1100 else if (recipe->hopstand[idx - 22].hold) |
1103 else if (recipe->hopstand[idx - 23].hold) |
1101 snprintf(pmpt, Config.lcd_cols + 1, "Hold at %4.1f %3d mins", recipe->hopstand[idx - 22].setpoint, recipe->hopstand[idx - 22].duration); |
1104 snprintf(pmpt, Config.lcd_cols + 1, "Hold at %4.1f %3d mins", recipe->hopstand[idx - 23].setpoint, recipe->hopstand[idx - 23].duration); |
1102 else |
1105 else |
1103 snprintf(pmpt, Config.lcd_cols + 1, "Hold for %3d mins", recipe->hopstand[idx - 22].duration); |
1106 snprintf(pmpt, Config.lcd_cols + 1, "Hold for %3d mins", recipe->hopstand[idx - 23].duration); |
1104 prompt(300, pmpt); |
1107 prompt(300, pmpt); |
1105 break; |
1108 break; |
1106 } |
1109 } |
1107 |
1110 |
1108 key = keywait(); |
1111 key = keywait(); |
1145 recipe->code = xstrcpy(name); |
1148 recipe->code = xstrcpy(name); |
1146 free(name); |
1149 free(name); |
1147 break; |
1150 break; |
1148 case 3: editInteger(&recipe->boiltime, 60, 240, 5, (char *)"Boil time:", (char *)"mins"); |
1151 case 3: editInteger(&recipe->boiltime, 60, 240, 5, (char *)"Boil time:", (char *)"mins"); |
1149 break; |
1152 break; |
1150 case 4: |
1153 case 4: editFloat(&recipe->coolto, 10.0, 30.0, (char *)" Cool to"); |
|
1154 |
1151 case 5: |
1155 case 5: |
1152 case 6: |
1156 case 6: |
1153 case 7: |
1157 case 7: |
1154 case 8: |
1158 case 8: |
1155 case 9: |
1159 case 9: |
1156 case 10: |
1160 case 10: |
1157 case 11: editMash(&recipe->mash[idx-4]); |
1161 case 11: |
1158 break; |
1162 case 12: editMash(&recipe->mash[idx-5]); |
1159 case 12: |
1163 break; |
1160 case 13: |
1164 case 13: |
1161 case 14: |
1165 case 14: |
1162 case 15: |
1166 case 15: |
1163 case 16: |
1167 case 16: |
1164 case 17: |
1168 case 17: |
1165 case 18: |
1169 case 18: |
1166 case 19: |
1170 case 19: |
1167 case 20: |
1171 case 20: |
1168 case 21: editHopaddition(&recipe->hops[idx-12], recipe->boiltime); |
1172 case 21: |
1169 break; |
1173 case 22: editHopaddition(&recipe->hops[idx-13], recipe->boiltime); |
1170 case 22: |
1174 break; |
1171 case 23: |
1175 case 23: |
1172 case 24: editHopstand(&recipe->hopstand[idx-22]); |
1176 case 24: |
|
1177 case 25: editHopstand(&recipe->hopstand[idx-23]); |
1173 break; |
1178 break; |
1174 } |
1179 } |
1175 } |
1180 } |
1176 } |
1181 } |
1177 } |
1182 } |
1193 snprintf(name, 21, "New recipe %d", number); |
1198 snprintf(name, 21, "New recipe %d", number); |
1194 recipe->name = xstrcpy(name); |
1199 recipe->name = xstrcpy(name); |
1195 snprintf(name, 21, "%04d", number); |
1200 snprintf(name, 21, "%04d", number); |
1196 recipe->code = xstrcpy(name); |
1201 recipe->code = xstrcpy(name); |
1197 recipe->boiltime = 90; |
1202 recipe->boiltime = 90; |
|
1203 recipe->coolto = 20.0; |
1198 recipe->starttime = recipe->endtime = (time_t)0; |
1204 recipe->starttime = recipe->endtime = (time_t)0; |
1199 /* |
1205 /* |
1200 * Initial mash schedule, set a single-step 67 degr. mash |
1206 * Initial mash schedule, set a single-step 67 degr. mash |
1201 */ |
1207 */ |
1202 recipe->mash[0].name = xstrcpy((char *)"Mash-in"); |
1208 recipe->mash[0].name = xstrcpy((char *)"Mash-in"); |