From e9e5c21068ab8d92b69d522a752f4362a112242b Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 1 Mar 2025 12:40:27 -0500 Subject: reformat MAP when unit changes --- ui.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'ui.c') diff --git a/ui.c b/ui.c index cd9dddb..fea7e20 100644 --- a/ui.c +++ b/ui.c @@ -24,6 +24,9 @@ static const char *const pressure_units[] = {"mbar", "kPa", "bar", "psi"}; static const PressureMaker pressure_makers[nelem(pressure_units)] = { millibar, kilopascal, bar, psi, }; +static const PressureReader pressure_readers[nelem(pressure_units)] = { + as_millibar, as_kilopascal, as_bar, as_psi, +}; static const char *const volume_flow_rate_units[] = {"m³/s", "CFM"}; static VolumeFlowRateReader volume_flow_rate_readers[nelem(volume_flow_rate_units)] = { @@ -94,6 +97,21 @@ set_map(UI *ui, int idx) { ui->points[idx].map = p; } +void +set_map_unit(UI *ui) { + PressureMaker maker; + PressureReader reader; + int i; + Pressure map; + + maker = pressure_makers[ui->map_unit.oldidx]; + reader = pressure_readers[ui->map_unit.idx]; + for (i = 0; i < ui->npoints; i++) { + map = maker(ui->map[i].value); + w_set_field(&ui->map[i], reader(map)); + } +} + void set_ve(UI *ui, int idx) { ui->points[idx].ve = percent(ui->ve[idx].value); -- cgit v1.2.3