summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2011-11-01 11:39:52 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2011-11-01 19:52:12 -0700
commit18b8247cb357a9a716846854e451e306b752e542 (patch)
treef4df344653f038554747f90ad34587dc331e0d5a
parent43601f654675c8734c9ca5850cc41dac16d1989a (diff)
downloadsubsurface-18b8247cb357a9a716846854e451e306b752e542.tar.gz
Add new helper function to get temperature and unit
Designed along the lines of get_depth_units - except we don't define a specific number of digits to show. Use this in the one spot we need it right now in profile.c Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--dive.c17
-rw-r--r--dive.h1
-rw-r--r--profile.c14
3 files changed, 22 insertions, 10 deletions
diff --git a/dive.c b/dive.c
index ed3908928..c913e9476 100644
--- a/dive.c
+++ b/dive.c
@@ -29,6 +29,23 @@ void add_event(struct dive *dive, int time, int type, int flags, int value, cons
remember_event(name);
}
+double get_temp_units(unsigned int mk, const char **units)
+{
+ double deg;
+ const char *unit;
+
+ if (output_units.temperature == FAHRENHEIT) {
+ deg = mkelvin_to_F(mk);
+ unit = UTF8_DEGREE "F";
+ } else {
+ deg = mkelvin_to_C(mk);
+ unit = UTF8_DEGREE "C";
+ }
+ if (units)
+ *units = unit;
+ return deg;
+}
+
double get_depth_units(unsigned int mm, int *frac, const char **units)
{
int decimals;
diff --git a/dive.h b/dive.h
index 58b6611f8..97654dc52 100644
--- a/dive.h
+++ b/dive.h
@@ -87,6 +87,7 @@ typedef struct {
} cylinder_t;
extern double get_depth_units(unsigned int mm, int *frac, const char **units);
+extern double get_temp_units(unsigned int mm, const char **units);
static inline double mm_to_feet(int mm)
{
diff --git a/profile.c b/profile.c
index a7ea885a1..f81ae7138 100644
--- a/profile.c
+++ b/profile.c
@@ -485,19 +485,13 @@ static int setup_temperature_limits(struct graphics_context *gc, struct plot_inf
static void plot_single_temp_text(struct graphics_context *gc, int sec, int mkelvin)
{
- int deg;
+ double deg;
const char *unit;
static const text_render_options_t tro = {12, 0.2, 0.2, 1.0, LEFT, TOP};
- temperature_t temperature = { mkelvin };
- if (output_units.temperature == FAHRENHEIT) {
- deg = to_F(temperature);
- unit = UTF8_DEGREE "F";
- } else {
- deg = to_C(temperature);
- unit = UTF8_DEGREE "C";
- }
- plot_text(gc, &tro, sec, temperature.mkelvin, "%d%s", deg, unit);
+ deg = get_temp_units(mkelvin, &unit);
+
+ plot_text(gc, &tro, sec, mkelvin, "%d%s", (int)(deg + 0.5), unit);
}
static void plot_temperature_text(struct graphics_context *gc, struct plot_info *pi)