aboutsummaryrefslogtreecommitdiffstats
path: root/ui.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui.c')
-rw-r--r--ui.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/ui.c b/ui.c
index 418cb10..0ef1dfb 100644
--- a/ui.c
+++ b/ui.c
@@ -49,6 +49,9 @@ init_ui(UI *ui) {
w_init_field(&ui->ambient_temperature);
w_init_select(&ui->ambient_temperature_unit, nelem(temperature_units), temperature_units);
+ w_init_field(&ui->ambient_pressure);
+ w_init_select(&ui->ambient_pressure_unit, nelem(pressure_units), pressure_units);
+
ui->npoints = 1;
w_init_field(&ui->rpm[0]);
@@ -123,6 +126,35 @@ set_ambient_temperature_unit(UI *ui) {
}
void
+set_ambient_pressure(UI *ui) {
+ int idx, i;
+ PressureMaker convert;
+ Pressure p;
+
+ idx = ui->ambient_pressure_unit.idx;
+ assert(idx >= 0 && (long unsigned int) idx < nelem(pressure_units));
+
+ convert = pressure_makers[idx];
+ p = convert(ui->ambient_pressure.value);
+
+ for (i = 0; i < ui->npoints; i++) {
+ ui->points[i].ambient_pressure = p;
+ }
+}
+
+void
+set_ambient_pressure_unit(UI *ui) {
+ PressureMaker maker;
+ Pressure p;
+ PressureReader reader;
+
+ maker = pressure_makers[ui->ambient_pressure_unit.oldidx];
+ p = maker(ui->ambient_pressure.value);
+ reader = pressure_readers[ui->ambient_pressure_unit.idx];
+ w_set_field(&ui->ambient_pressure, reader(p));
+}
+
+void
set_map(UI *ui, int idx) {
int unit_idx;
PressureMaker convert;