aboutsummaryrefslogtreecommitdiffstats
path: root/ui.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui.c')
-rw-r--r--ui.c18
1 files changed, 18 insertions, 0 deletions
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)] = {
@@ -95,6 +98,21 @@ set_map(UI *ui, int idx) {
}
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);
}