diff options
-rw-r--r-- | save-xml.c | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/save-xml.c b/save-xml.c index 29f22e6dd..406469b14 100644 --- a/save-xml.c +++ b/save-xml.c @@ -22,11 +22,34 @@ static void show_temperature(FILE *f, temperature_t temp, const char *pre, const } } +static void show_depth(FILE *f, depth_t depth, const char *pre, const char *post) +{ + if (depth.mm) + fprintf(f, "%s%u.%03u%s", pre, FRACTION(depth.mm, 1000), post); +} + +static void show_duration(FILE *f, duration_t duration, const char *pre, const char *post) +{ + if (duration.seconds) + fprintf(f, "%s%u:%03u%s", pre, FRACTION(duration.seconds, 60), post); +} + +static void show_pressure(FILE *f, pressure_t pressure, const char *pre, const char *post) +{ + if (pressure.mbar) + fprintf(f, "%s%u.%03u%s", pre, FRACTION(pressure.mbar, 1000), post); +} + static void save_overview(FILE *f, struct dive *dive) { - fprintf(f, " <maxdepth>%u.%03u m</maxdepth>\n", FRACTION(dive->maxdepth.mm, 1000)); + show_depth(f, dive->maxdepth, " <maxdepth>", " m</maxdepth>\n"); + show_depth(f, dive->meandepth, " <meandepth>", " m</meandepth>\n"); show_temperature(f, dive->airtemp, " <airtemp>", " C</airtemp>\n"); show_temperature(f, dive->watertemp, " <watertemp>", " C</airtemp>\n"); + show_duration(f, dive->duration, " <duration>", " min</duration>\n"); + show_duration(f, dive->surfacetime, " <surfacetime>", " min</surfacetime>\n"); + show_pressure(f, dive->beginning_pressure, " <cylinderstartpressure>", " bar</cylinderstartpressure>\n"); + show_pressure(f, dive->end_pressure, " <cylinderendpressure>", " bar</cylinderendpressure>\n"); } static void save_gasmix(FILE *f, struct dive *dive) @@ -53,10 +76,9 @@ static void save_sample(FILE *f, struct sample *sample) FRACTION(sample->time.seconds,60), FRACTION(sample->depth.mm, 1000)); show_temperature(f, sample->temperature, " temp='", " C'"); - if (sample->tankpressure.mbar) { - fprintf(f, " pressure='%u.%03u bar'", - FRACTION(sample->tankpressure.mbar, 1000)); - } + show_pressure(f, sample->tankpressure, " pressure='", " bar'"); + if (sample->tankindex) + fprintf(f, " tankindex='%d'", sample->tankindex); fprintf(f, "></sample>\n"); } |