From 29a720e61568d6a9b215e804bb4ef999d9f7a7a5 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 1 Mar 2025 18:39:12 -0500 Subject: compute(): recompute outputs --- main.c | 20 ++++++++++---------- ui.c | 30 ++++++++++++++++++------------ ui.h | 4 ++-- 3 files changed, 30 insertions(+), 24 deletions(-) diff --git a/main.c b/main.c index cfcb9fb..8242853 100644 --- a/main.c +++ b/main.c @@ -160,7 +160,7 @@ displacement_row(mu_Context *ctx, UI *ui) { mu_label(ctx, "Displacement:"); if (w_field(ctx, &ui->displacement) & MU_RES_CHANGE) { set_displacement(ui); - set_all_volume_flow_rate(ui); + compute_all(ui); } if (w_select(ctx, &ui->displacement_unit) & MU_RES_CHANGE) { set_displacement_unit(ui); @@ -173,7 +173,7 @@ ambient_temperature_row(mu_Context *ctx, UI *ui) { mu_label(ctx, "Ambient T:"); if (w_field(ctx, &ui->ambient_temperature) & MU_RES_CHANGE) { set_ambient_temperature(ui); - set_all_volume_flow_rate(ui); + compute_all(ui); } if (w_select(ctx, &ui->ambient_temperature_unit) & MU_RES_CHANGE) { set_ambient_temperature_unit(ui); @@ -186,7 +186,7 @@ ambient_pressure_row(mu_Context *ctx, UI *ui) { mu_label(ctx, "Ambient P:"); if (w_field(ctx, &ui->ambient_pressure) & MU_RES_CHANGE) { set_ambient_pressure(ui); - set_all_volume_flow_rate(ui); + compute_all(ui); } if (w_select(ctx, &ui->ambient_pressure_unit) & MU_RES_CHANGE) { set_ambient_pressure_unit(ui); @@ -206,7 +206,7 @@ rpm_row(mu_Context *ctx, UI *ui) { for (i = 0; i < ui->npoints; i++) { if (w_field(ctx, &ui->rpm[i])) { set_rpm(ui, i); - set_volume_flow_rate(ui, i); + compute(ui, i); } } } @@ -226,7 +226,7 @@ map_row(mu_Context *ctx, UI *ui) { for (i = 0; i npoints; i++) { if (w_field(ctx, &ui->map[i])) { set_map(ui, i); - set_volume_flow_rate(ui, i); + compute(ui, i); } } } @@ -244,7 +244,7 @@ ve_row(mu_Context *ctx, UI *ui) { for (i = 0; i < ui->npoints; i++) { if (w_field(ctx, &ui->ve[i])) { set_ve(ui, i); - set_volume_flow_rate(ui, i); + compute(ui, i); } } } @@ -262,7 +262,7 @@ comp_efficiency_row(mu_Context *ctx, UI *ui) { for (i = 0; i < ui->npoints; i++) { if (w_field(ctx, &ui->comp_efficiency[i])) { set_comp_efficiency(ui, i); - set_volume_flow_rate(ui, i); + compute(ui, i); } } } @@ -280,7 +280,7 @@ intercooler_efficiency_row(mu_Context *ctx, UI *ui) { for (i = 0; i < ui->npoints; i++) { if (w_field(ctx, &ui->intercooler_efficiency[i])) { set_intercooler_efficiency(ui, i); - set_volume_flow_rate(ui, i); + compute(ui, i); } } } @@ -300,7 +300,7 @@ intercooler_deltap_row(mu_Context *ctx, UI *ui) { for (i = 0; i < ui->npoints; i++) { if (w_field(ctx, &ui->intercooler_deltap[i])) { set_intercooler_deltap(ui, i); - set_volume_flow_rate(ui, i); + compute(ui, i); } } } @@ -334,7 +334,7 @@ volume_flow_rate_row(mu_Context *ctx, UI *ui) { mu_label(ctx, "Volume flow rate:"); mu_layout_width(ctx, UNIT_WIDTH); if (w_select(ctx, &ui->volume_flow_rate_unit) & MU_RES_CHANGE) { - set_all_volume_flow_rate(ui); + compute_all(ui); } mu_layout_width(ctx, FIELD_WIDTH); for (i = 0; i < ui->npoints; i++) { diff --git a/ui.c b/ui.c index edb83f2..0aeaae8 100644 --- a/ui.c +++ b/ui.c @@ -61,6 +61,7 @@ static void init_comp_efficiency(UI *ui); static void init_intercooler_efficiency(UI *ui); static void init_intercooler_deltap(UI *ui); static void init_volume_flow_rate(UI *ui); +static void compute_volume_flow_rate(UI *ui, int idx); void @@ -80,6 +81,8 @@ init_ui(UI *ui) { init_intercooler_deltap(ui); init_volume_flow_rate(ui); + + compute(ui, 0); } static void @@ -188,8 +191,6 @@ static void init_volume_flow_rate(UI *ui) { w_init_select(&ui->volume_flow_rate_unit, nelem(volume_flow_rate_units), volume_flow_rate_units); w_init_number(ui->volume_flow_rate[0]); - - set_volume_flow_rate(ui, 0); } void @@ -358,7 +359,21 @@ set_intercooler_deltap_unit(UI *ui) { } void -set_volume_flow_rate(UI *ui, int idx) { +compute(UI *ui, int idx) { + compute_volume_flow_rate(ui, idx); +} + +void +compute_all(UI *ui) { + int i; + + for (i = 0; i < ui->npoints; i++) { + compute(ui, i); + } +} + +static void +compute_volume_flow_rate(UI *ui, int idx) { int unit_idx; VolumeFlowRateReader convert; VolumeFlowRate v; @@ -371,15 +386,6 @@ set_volume_flow_rate(UI *ui, int idx) { w_set_number(ui->volume_flow_rate[idx], v); } -void -set_all_volume_flow_rate(UI *ui) { - int i; - - for (i = 0; i < ui->npoints; i++) { - set_volume_flow_rate(ui, i); - } -} - void insert_point(UI *ui, int idx) { int i; diff --git a/ui.h b/ui.h index 16d3c6e..bd00b68 100644 --- a/ui.h +++ b/ui.h @@ -46,7 +46,7 @@ void set_comp_efficiency(UI *ui, int idx); void set_intercooler_efficiency(UI *ui, int idx); void set_intercooler_deltap(UI *ui, int idx); void set_intercooler_deltap_unit(UI *ui); -void set_volume_flow_rate(UI *ui, int idx); -void set_all_volume_flow_rate(UI *ui); +void compute(UI *ui, int idx); +void compute_all(UI *ui); void insert_point(UI *ui, int idx); void remove_point(UI *ui, int idx); -- cgit v1.2.3