]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Add new helper function to get temperature and unit
authorDirk Hohndel <dirk@hohndel.org>
Tue, 1 Nov 2011 18:39:52 +0000 (11:39 -0700)
committerDirk Hohndel <dirk@hohndel.org>
Wed, 2 Nov 2011 02:52:12 +0000 (19:52 -0700)
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>
dive.c
dive.h
profile.c

diff --git a/dive.c b/dive.c
index ed3908928a97c3c7ddfabb7c12d003de4b6f2349..c913e9476798e518861d2cdf7c47185caba0dfb6 100644 (file)
--- 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 58b6611f84e1f566e434bb623d627a6c489d2dce..97654dc5279fbf1ee9d044c9dddba9dae845b789 100644 (file)
--- 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)
 {
index a7ea885a1200bcbaa42dcddae915565665bdd01f..f81ae7138dae8f92a91c9eb26739ef06456bd0d0 100644 (file)
--- 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)