diff options
Diffstat (limited to 'save-html.c')
-rw-r--r-- | save-html.c | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/save-html.c b/save-html.c index 6ce0f3ab7..d459b0e6e 100644 --- a/save-html.c +++ b/save-html.c @@ -11,6 +11,18 @@ void write_attribute(struct membuffer *b, const char *att_name, const char *valu put_string(b, "\","); } +void put_HTML_bookmarks(struct membuffer *b, struct dive *dive) +{ + struct event *ev = dive->dc.events; + put_string(b, "\"events\":["); + while (ev) { + put_format(b, "{\"name\":\"%s\",", ev->name); + put_format(b, "\"time\":\"%d:%02d min\",},", FRACTION(ev->time.seconds, 60)); + ev = ev->next; + } + put_string(b, "],"); +} + static void put_cylinder_HTML(struct membuffer *b, struct dive *dive) { int i, nr; @@ -29,13 +41,23 @@ static void put_cylinder_HTML(struct membuffer *b, struct dive *dive) write_attribute(b, "Size", "--"); } put_pressure(b, cylinder->type.workingpressure, "\"WPressure\":\"", " bar\","); - put_pressure(b, cylinder->start, "\"SPressure\":\"", " bar\","); - put_pressure(b, cylinder->end, "\"EPressure\":\"", " bar\","); + + if (cylinder->start.mbar) { + put_milli(b, "\"EPressure\":\"", cylinder->start.mbar, " bar\","); + } else { + write_attribute(b, "EPressure", "--"); + } + + if (cylinder->end.mbar) { + put_milli(b, "\"SPressure\":\"", cylinder->end.mbar, " bar\","); + } else { + write_attribute(b, "SPressure", "--"); + } if (cylinder->gasmix.o2.permille) { - put_format(b, "\"O₂\":\"%u.%u%%\",", FRACTION(cylinder->gasmix.o2.permille, 10)); + put_format(b, "\"O2\":\"%u.%u%%\",", FRACTION(cylinder->gasmix.o2.permille, 10)); } else { - write_attribute(b, "O₂", "--"); + write_attribute(b, "O2", "--"); } put_string(b, "},"); } @@ -52,7 +74,7 @@ void put_HTML_samples(struct membuffer *b, struct dive *dive) put_string(b, "\"samples\":\["); struct sample *s = dive->dc.sample; for (i = 0; i < dive->dc.samples; i++) { - put_format(b, "[%d,%d],", s->time.seconds, s->depth.mm); + put_format(b, "[%d,%d,%d,%d],", s->time.seconds, s->depth.mm, s->cylinderpressure.mbar, s->temperature.mkelvin); s++; } put_string(b, "],"); @@ -155,6 +177,7 @@ void write_one_dive(struct membuffer *b, struct dive *dive, int *dive_no, const if (!list_only) { put_cylinder_HTML(b, dive); put_HTML_samples(b, dive); + put_HTML_bookmarks(b, dive); } put_string(b, "},\n"); (*dive_no)++; |