summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-07-05 23:14:07 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-07-18 05:50:22 -0700
commit469cc68b029ac3308b4338a43acfa21679493e8b (patch)
tree110eaf78f7c1123784313009f2b8ee4844ec16f8 /core
parent29005b578de4680556f6a3fa01781a8af842ced8 (diff)
downloadsubsurface-469cc68b029ac3308b4338a43acfa21679493e8b.tar.gz
Cleanup: replace pressure reading macros by inline functions
Replace the INTERPOLATED_PRESSURE and SENSOR_PRESSURE macros by inline functions. Generate a common inline function that reads a pressure value for a dynamic sensor. Not all SENSOR_PRESSURE macros can be replaced, because the macro is also used to set the value and C sadly doesn't know the concept of "return reference from a function". Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core')
-rw-r--r--core/gaspressures.c6
-rw-r--r--core/profile.c4
-rw-r--r--core/profile.h20
3 files changed, 22 insertions, 8 deletions
diff --git a/core/gaspressures.c b/core/gaspressures.c
index 3b84aad24..2109c2702 100644
--- a/core/gaspressures.c
+++ b/core/gaspressures.c
@@ -352,7 +352,7 @@ static void debug_print_pressures(struct plot_info *pi)
int i;
for (i = 0; i < pi->nr; i++) {
struct plot_data *entry = pi->entry + i;
- printf("%5d |%9d | %9d |\n", i, SENSOR_PRESSURE(entry), INTERPOLATED_PRESSURE(entry));
+ printf("%5d |%9d | %9d |\n", i, get_plot_sensor_pressure(entry), get_plot_interpolated_pressure(entry));
}
}
#endif
@@ -388,7 +388,7 @@ void populate_pressure_information(struct dive *dive, struct divecomputer *dc, s
first = last = -1;
for (int i = 0; i < pi->nr; i++) {
struct plot_data *entry = pi->entry + i;
- unsigned pressure = SENSOR_PRESSURE(entry, sensor);
+ int pressure = get_plot_sensor_pressure(entry, sensor);
if (!pressure)
continue;
@@ -417,7 +417,7 @@ void populate_pressure_information(struct dive *dive, struct divecomputer *dc, s
for (int i = first; i <= last; i++) {
struct plot_data *entry = pi->entry + i;
- unsigned pressure = SENSOR_PRESSURE(entry, sensor);
+ int pressure = get_plot_sensor_pressure(entry, sensor);
int time = entry->sec;
while (ev && ev->time.seconds <= time) { // Find 1st gaschange event after
diff --git a/core/profile.c b/core/profile.c
index bbf654d40..d6a26431a 100644
--- a/core/profile.c
+++ b/core/profile.c
@@ -1309,8 +1309,8 @@ static void debug_print_profiledata(struct plot_info *pi)
fprintf(f1, "id t1 gas gasint t2 t3 dil dilint t4 t5 setpoint sensor1 sensor2 sensor3 t6 po2 fo2\n");
for (i = 0; i < pi->nr; i++) {
entry = pi->entry + i;
- fprintf(f1, "%d gas=%8d %8d ; dil=%8d %8d ; o2_sp= %d %d %d %d PO2= %f\n", i, SENSOR_PRESSURE(entry),
- INTERPOLATED_PRESSURE(entry), O2CYLINDER_PRESSURE(entry), INTERPOLATED_O2CYLINDER_PRESSURE(entry),
+ fprintf(f1, "%d gas=%8d %8d ; dil=%8d %8d ; o2_sp= %d %d %d %d PO2= %f\n", i, get_plot_sensor_pressure(entry),
+ get_plot_interpolated_pressure(entry), O2CYLINDER_PRESSURE(entry), INTERPOLATED_O2CYLINDER_PRESSURE(entry),
entry->o2pressure.mbar, entry->o2sensor[0].mbar, entry->o2sensor[1].mbar, entry->o2sensor[2].mbar, entry->pressures.o2);
}
fclose(f1);
diff --git a/core/profile.h b/core/profile.h
index 8e2912671..761f270d7 100644
--- a/core/profile.h
+++ b/core/profile.h
@@ -98,12 +98,26 @@ int get_maxdepth(struct plot_info *pi);
#define SENSOR_PR 0
#define INTERPOLATED_PR 1
#define SENSOR_PRESSURE(_entry,_idx) (_entry)->pressure[_idx][SENSOR_PR]
-#define INTERPOLATED_PRESSURE(_entry,_idx) (_entry)->pressure[_idx][INTERPOLATED_PR]
+
+static inline int get_plot_pressure_data(const struct plot_data *entry, int sensor, int idx)
+{
+ return entry->pressure[idx][sensor];
+}
+
+static inline int get_plot_sensor_pressure(const struct plot_data *entry, int idx)
+{
+ return get_plot_pressure_data(entry, SENSOR_PR, idx);
+}
+
+static inline int get_plot_interpolated_pressure(const struct plot_data *entry, int idx)
+{
+ return get_plot_pressure_data(entry, INTERPOLATED_PR, idx);
+}
static inline int get_plot_pressure(const struct plot_data *entry, int idx)
{
- int res = SENSOR_PRESSURE(entry, idx);
- return res ? res : INTERPOLATED_PRESSURE(entry, idx);
+ int res = get_plot_sensor_pressure(entry, idx);
+ return res ? res : get_plot_interpolated_pressure(entry, idx);
}
#ifdef __cplusplus