From 1376712f0bc952e33a42121570c64add6a2a9446 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Thu, 1 Sep 2011 16:59:10 -0700 Subject: [PATCH] Save everything in our current dives and samples into the xml file Now, as we start parsing more, we just need to also add the code to save it. Signed-off-by: Linus Torvalds --- save-xml.c | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/save-xml.c b/save-xml.c index 29f22e6..406469b 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, " %u.%03u m\n", FRACTION(dive->maxdepth.mm, 1000)); + show_depth(f, dive->maxdepth, " ", " m\n"); + show_depth(f, dive->meandepth, " ", " m\n"); show_temperature(f, dive->airtemp, " ", " C\n"); show_temperature(f, dive->watertemp, " ", " C\n"); + show_duration(f, dive->duration, " ", " min\n"); + show_duration(f, dive->surfacetime, " ", " min\n"); + show_pressure(f, dive->beginning_pressure, " ", " bar\n"); + show_pressure(f, dive->end_pressure, " ", " bar\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, ">\n"); } -- 2.45.2