From 47874c2ec00339314e43d282ab2bc906e9c9ac9b Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 1 Mar 2025 14:26:11 -0500 Subject: add ambient pressure input --- ui.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'ui.c') 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]); @@ -122,6 +125,35 @@ set_ambient_temperature_unit(UI *ui) { w_set_field(&ui->ambient_temperature, reader(t)); } +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; -- cgit v1.2.3