diff options
author | Gehad elrobey <gehadelrobey@gmail.com> | 2014-10-19 19:30:11 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-10-20 18:04:51 -0700 |
commit | 53f4f1f45af016870ea985064700d49bcd885764 (patch) | |
tree | 7b9a050ac1ca508788db606f5e9a17d30c00f6ac /save-html.c | |
parent | fae86eb4ceb51381e1a91e22048ee44991bebcda (diff) | |
download | subsurface-53f4f1f45af016870ea985064700d49bcd885764.tar.gz |
HTML: Save data with user selected units
Edit the HTML exporter to export data fields with user selected units.
Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'save-html.c')
-rw-r--r-- | save-html.c | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/save-html.c b/save-html.c index 2befb418e..f8ef17214 100644 --- a/save-html.c +++ b/save-html.c @@ -99,7 +99,7 @@ static void put_weightsystem_HTML(struct membuffer *b, struct dive *dive) put_string(b, separator); separator = ", "; put_string(b, "{"); - put_format(b, "\"weight\":\"%d\",", grams); + put_HTML_weight_units(b, grams, "\"weight\":\"", "\","); write_attribute(b, "description", description, " "); put_string(b, "}"); } @@ -121,20 +121,20 @@ static void put_cylinder_HTML(struct membuffer *b, struct dive *dive) separator = ", "; write_attribute(b, "Type", cylinder->type.description, ", "); if (cylinder->type.size.mliter) { - put_milli(b, "\"Size\":\"", cylinder->type.size.mliter, " l\", "); + put_HTML_volume_units(b, cylinder->type.size.mliter, "\"Size\":\"", " \", "); } else { write_attribute(b, "Size", "--", ", "); } - put_pressure(b, cylinder->type.workingpressure, "\"WPressure\":\"", " bar\", "); + put_HTML_pressure_units(b, cylinder->type.workingpressure, "\"WPressure\":\"", " \", "); if (cylinder->start.mbar) { - put_milli(b, "\"SPressure\":\"", cylinder->start.mbar, " bar\", "); + put_HTML_pressure_units(b, cylinder->start, "\"SPressure\":\"", " \", "); } else { write_attribute(b, "SPressure", "--", ", "); } if (cylinder->end.mbar) { - put_milli(b, "\"EPressure\":\"", cylinder->end.mbar, " bar\", "); + put_HTML_pressure_units(b, cylinder->end, "\"EPressure\":\"", " \", "); } else { write_attribute(b, "EPressure", "--", ", "); } @@ -209,6 +209,40 @@ void put_HTML_notes(struct membuffer *b, struct dive *dive, const char *pre, con put_string(b, post); } +void put_HTML_pressure_units(struct membuffer *b, pressure_t pressure, const char *pre, const char *post) +{ + const char *unit; + double value; + + if (!pressure.mbar) { + put_format(b, "%s%s", pre, post); + return; + } + + value = get_pressure_units(pressure.mbar, &unit); + put_format(b, "%s%.1f %s%s", pre, value, unit, post); +} + +void put_HTML_volume_units(struct membuffer *b, unsigned int ml, const char *pre, const char *post) +{ + const char *unit; + double value; + int frac; + + value = get_volume_units(ml, &frac, &unit); + put_format(b, "%s%.1f %s%s", pre, value, unit, post); +} + +void put_HTML_weight_units(struct membuffer *b, unsigned int grams, const char *pre, const char *post) +{ + const char *unit; + double value; + int frac; + + value = get_weight_units(grams, &frac, &unit); + put_format(b, "%s%.1f %s%s", pre, value, unit, post); +} + void put_HTML_time(struct membuffer *b, struct dive *dive, const char *pre, const char *post) { struct tm tm; |