aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--engine.h1
-rw-r--r--main.c21
-rw-r--r--ui.c5
-rw-r--r--ui.h3
4 files changed, 30 insertions, 0 deletions
diff --git a/engine.h b/engine.h
index cb77a35..3922ab8 100644
--- a/engine.h
+++ b/engine.h
@@ -6,6 +6,7 @@ typedef struct {
Pressure map;
Fraction ve;
Fraction comp_efficiency;
+ Fraction intercooler_efficiency;
} Engine;
void init_engine(Engine *e);
diff --git a/main.c b/main.c
index aa5c161..1e73fb1 100644
--- a/main.c
+++ b/main.c
@@ -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;
diff --git a/ui.c b/ui.c
index d1b4bb2..fc6427a 100644
--- a/ui.c
+++ b/ui.c
@@ -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;
diff --git a/ui.h b/ui.h
index db95f25..b656f93 100644
--- a/ui.h
+++ b/ui.h
@@ -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);