summaryrefslogtreecommitdiffstats
path: root/profile.c
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2011-09-16 15:45:14 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2011-09-16 15:45:14 -0700
commit89fe2c723f10649d2d98a88b385bd4733e5acbc4 (patch)
tree5f005b1e30a8814d92ffc76986a34e341f210230 /profile.c
parentff0a601cc300f11a3e5a31236cb9a884ad82ceec (diff)
downloadsubsurface-89fe2c723f10649d2d98a88b385bd4733e5acbc4.tar.gz
Show tank / nitrox / air consumption information in the info_frame
Even though we go down to an 8pt font the info_frame changes size when the air info is added. I don't like this but want to see how Linus would like this resolved before going overboard. Minor tweaks to the formating (we don't need two decimals when printing the liters of air consumed). This patch does NOT remove the plot of the air information in the profile graph. I think we want to remove that once we like the text where it is, but I wanted to do one thing at a time. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'profile.c')
-rw-r--r--profile.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/profile.c b/profile.c
index 7cad699ce..b2679c5d5 100644
--- a/profile.c
+++ b/profile.c
@@ -456,33 +456,40 @@ static void plot_info(struct dive *dive, struct graphics_context *gc)
{
text_render_options_t tro = {10, 0.2, 1.0, 0.2, RIGHT, BOTTOM};
const double liters_per_cuft = 28.317;
- const char *unit, *desc;
+ const char *unit, *format, *desc;
double airuse;
+ char buffer1[80];
+ char buffer2[80];
+ int len;
airuse = calculate_airuse(dive);
- if (!airuse)
+ if (!airuse) {
+ update_air_info("");
return;
-
- /* I really need to start addign some unit setting thing */
+ }
switch (output_units.volume) {
case LITER:
unit = "l";
+ format = "vol: %4.0f %s";
break;
case CUFT:
unit = "cuft";
+ format = "vol: %4.2f %s";
airuse /= liters_per_cuft;
break;
}
tro.vpos = -1.0;
- plot_text(gc, &tro, 0.98, 0.98, "vol: %4.2f %s", airuse, unit);
-
+ plot_text(gc, &tro, 0.98, 0.98, format, airuse, unit);
+ len = snprintf(buffer1, sizeof(buffer1), format, airuse, unit);
tro.vpos = -2.2;
if (dive->duration.seconds) {
double pressure = 1 + (dive->meandepth.mm / 10000.0);
double sac = airuse / pressure * 60 / dive->duration.seconds;
plot_text(gc, &tro, 0.98, 0.98, "SAC: %4.2f %s/min", sac, unit);
+ snprintf(buffer1+len, sizeof(buffer1)-len,
+ "\nSAC: %4.2f %s/min", sac, unit);
}
-
+ len = 0;
tro.vpos = -3.4;
desc = dive->cylinder[0].type.description;
if (desc || dive->cylinder[0].gasmix.o2.permille) {
@@ -492,7 +499,10 @@ static void plot_info(struct dive *dive, struct graphics_context *gc)
if (!o2)
o2 = 21;
plot_text(gc, &tro, 0.98, 0.98, "%s (%d%%)", desc, o2);
+ len = snprintf(buffer2, sizeof(buffer2), "%s (%d%%): used ", desc, o2);
}
+ snprintf(buffer2+len, sizeof(buffer2)-len, buffer1);
+ update_air_info(buffer2);
}
static int mbar_to_PSI(int mbar)