summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Gehad elrobey <gehadelrobey@gmail.com>2014-10-19 19:30:11 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-10-20 18:04:51 -0700
commit53f4f1f45af016870ea985064700d49bcd885764 (patch)
tree7b9a050ac1ca508788db606f5e9a17d30c00f6ac
parentfae86eb4ceb51381e1a91e22048ee44991bebcda (diff)
downloadsubsurface-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>
-rw-r--r--save-html.c44
-rw-r--r--save-html.h3
2 files changed, 42 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;
diff --git a/save-html.h b/save-html.h
index fddbf2681..3ed757f8e 100644
--- a/save-html.h
+++ b/save-html.h
@@ -14,6 +14,9 @@ void put_HTML_watertemp(struct membuffer *b, struct dive *dive, const char *pre,
void put_HTML_time(struct membuffer *b, struct dive *dive, const char *pre, const char *post);
void put_HTML_notes(struct membuffer *b, struct dive *dive, const char *pre, const char *post);
void put_HTML_quoted(struct membuffer *b, const char *text);
+void put_HTML_pressure_units(struct membuffer *b, pressure_t pressure, const char *pre, const char *post);
+void put_HTML_weight_units(struct membuffer *b, unsigned int grams, const char *pre, const char *post);
+void put_HTML_volume_units(struct membuffer *b, unsigned int ml, const char *pre, const char *post);
void export_HTML(const char *file_name, const char *photos_dir, const bool selected_only, const bool list_only);
void export_list(struct membuffer *b, const char *photos_dir, bool selected_only, const bool list_only);