From 56395b38946d4b7de9e485098e928e8e432ef920 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Thu, 29 May 2014 13:13:11 -0700 Subject: [PATCH] Don't assume that pressures are always positive When planning a dive, the dive could use more gas than is in the cylinder. So getting a negative end pressure is a useful indication to the user that there plan might not be a good one. Signed-off-by: Dirk Hohndel --- dive.c | 4 ++-- dive.h | 2 +- helpers.h | 2 +- profile.c | 4 ++-- qt-gui.cpp | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dive.c b/dive.c index ae07d151a..0d8f48754 100644 --- a/dive.c +++ b/dive.c @@ -76,7 +76,7 @@ void remove_event(struct event* event) } } -int get_pressure_units(unsigned int mb, const char **units) +int get_pressure_units(int mb, const char **units) { int pressure; const char *unit; @@ -454,7 +454,7 @@ void per_cylinder_mean_depth(struct dive *dive, struct divecomputer *dc, int *me static void fixup_pressure(struct dive *dive, struct sample *sample) { - unsigned int pressure, index; + int pressure, index; cylinder_t *cyl; pressure = sample->cylinderpressure.mbar; diff --git a/dive.h b/dive.h index 50bd2df39..03acea496 100644 --- a/dive.h +++ b/dive.h @@ -68,7 +68,7 @@ typedef struct const char *description; /* "integrated", "belt", "ankle" */ } weightsystem_t; -extern int get_pressure_units(unsigned int mb, const char **units); +extern int get_pressure_units(int mb, const char **units); extern double get_depth_units(int mm, int *frac, const char **units); extern double get_volume_units(unsigned int ml, int *frac, const char **units); extern double get_temp_units(unsigned int mk, const char **units); diff --git a/helpers.h b/helpers.h index e4bc1c6b4..fbcf2895f 100644 --- a/helpers.h +++ b/helpers.h @@ -19,7 +19,7 @@ QString get_weight_unit(); QString get_cylinder_used_gas_string(cylinder_t *cyl, bool showunit = false); QString get_temperature_string(temperature_t temp, bool showunit = false); QString get_temp_unit(); -QString get_volume_string(volume_t volume, bool showunit = false, unsigned int mbar = 0); +QString get_volume_string(volume_t volume, bool showunit = false, int mbar = 0); QString get_volume_unit(); QString get_pressure_string(pressure_t pressure, bool showunit = false); QString get_pressure_unit(); diff --git a/profile.c b/profile.c index 26b267dd0..35af28f25 100644 --- a/profile.c +++ b/profile.c @@ -683,7 +683,7 @@ struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer /* Get the per-cylinder maximum pressure if they are manual */ for (cyl = 0; cyl < MAX_CYLINDERS; cyl++) { - unsigned int mbar = dive->cylinder[cyl].start.mbar; + int mbar = dive->cylinder[cyl].start.mbar; if (mbar > maxpressure) maxpressure = mbar; if (mbar < minpressure) @@ -964,7 +964,7 @@ static void populate_pressure_information(struct dive *dive, struct divecomputer current = NULL; for (i = 0; i < pi->nr; i++) { struct plot_data *entry = pi->entry + i; - unsigned pressure = SENSOR_PRESSURE(entry); + int pressure = SENSOR_PRESSURE(entry); /* discrete integration of pressure over time to get the SAC rate equivalent */ if (current) { diff --git a/qt-gui.cpp b/qt-gui.cpp index f342e20e1..3e898b979 100644 --- a/qt-gui.cpp +++ b/qt-gui.cpp @@ -286,7 +286,7 @@ QString get_temp_unit() return QString(UTF8_DEGREE "F"); } -QString get_volume_string(volume_t volume, bool showunit, unsigned int mbar) +QString get_volume_string(volume_t volume, bool showunit, int mbar) { if (prefs.units.volume == units::LITER) { double liter = volume.mliter / 1000.0;