diff options
| -rw-r--r-- | engine.h | 1 | ||||
| -rw-r--r-- | main.c | 21 | ||||
| -rw-r--r-- | ui.c | 5 | ||||
| -rw-r--r-- | ui.h | 3 |
4 files changed, 30 insertions, 0 deletions
@@ -6,6 +6,7 @@ typedef struct { Pressure map; Fraction ve; Fraction comp_efficiency; + Fraction intercooler_efficiency; } Engine; void init_engine(Engine *e); @@ -63,6 +63,7 @@ static void rpm_row(mu_Context *ctx, UI *ui); static void map_row(mu_Context *ctx, UI *ui); static void ve_row(mu_Context *ctx, UI *ui); static void comp_efficiency_row(mu_Context *ctx, UI *ui); +static void intercooler_efficiency_row(mu_Context *ctx, UI *ui); static void dup_del_row(mu_Context *ctx, UI *ui); static void volume_flow_rate_row(mu_Context *ctx, UI *ui); static void hpad(mu_Context *ctx, int w); @@ -141,6 +142,7 @@ main_window(mu_Context *ctx, UI *ui) { map_row(ctx, ui); ve_row(ctx, ui); comp_efficiency_row(ctx, ui); + intercooler_efficiency_row(ctx, ui); dup_del_row(ctx, ui); vpad(ctx, 0); @@ -243,6 +245,7 @@ ve_row(mu_Context *ctx, UI *ui) { } } } + static void comp_efficiency_row(mu_Context *ctx, UI *ui) { int i; @@ -262,6 +265,24 @@ comp_efficiency_row(mu_Context *ctx, UI *ui) { } static void +intercooler_efficiency_row(mu_Context *ctx, UI *ui) { + int i; + + mu_layout_row(ctx, 0, NULL, 0); + mu_layout_width(ctx, LABEL_WIDTH); + mu_label(ctx, "Intercooler efficiency:"); + mu_layout_width(ctx, UNIT_WIDTH); + mu_label(ctx, "(%)"); + mu_layout_width(ctx, FIELD_WIDTH); + 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); + } + } +} + +static void dup_del_row(mu_Context *ctx, UI *ui) { int i; @@ -194,6 +194,11 @@ set_comp_efficiency(UI *ui, int idx) { } void +set_intercooler_efficiency(UI *ui, int idx) { + ui->points[idx].intercooler_efficiency = percent(ui->intercooler_efficiency[idx].value); +} + +void set_volume_flow_rate(UI *ui, int idx) { int unit_idx; VolumeFlowRateReader convert; @@ -21,6 +21,8 @@ typedef struct { w_Field comp_efficiency[MAX_POINTS]; + w_Field intercooler_efficiency[MAX_POINTS]; + Engine points[MAX_POINTS]; w_Select volume_flow_rate_unit; @@ -38,6 +40,7 @@ void set_map(UI *ui, int idx); void set_map_unit(UI *ui); void set_ve(UI *ui, int idx); void set_comp_efficiency(UI *ui, int idx); +void set_intercooler_efficiency(UI *ui, int idx); void set_volume_flow_rate(UI *ui, int idx); void set_all_volume_flow_rate(UI *ui); void insert_point(UI *ui, int idx); |