diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2011-12-23 19:41:16 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2012-03-24 11:44:27 +0900 |
commit | 854bd0269c05adc56caf9667fd68f676520a2941 (patch) | |
tree | dce09bb7d37cd43f14d4924f28101bb1bde21e04 /save-xml.c | |
parent | b5139aeb22c8a28cac89b7f9a561bd9d4e2bb358 (diff) | |
download | subsurface-854bd0269c05adc56caf9667fd68f676520a2941.tar.gz |
Add weight system tracking
- supports multiple weight systems per dive
- supports multiple weight system types
- supports import of weight as tracked by DivingLog
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'save-xml.c')
-rw-r--r-- | save-xml.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/save-xml.c b/save-xml.c index c9085db51..ed55c022d 100644 --- a/save-xml.c +++ b/save-xml.c @@ -218,6 +218,26 @@ static void save_cylinder_info(FILE *f, struct dive *dive) } } +static void save_weightsystem_info(FILE *f, struct dive *dive) +{ + int i; + + for (i = 0; i < MAX_WEIGHTSYSTEMS; i++) { + weightsystem_t *ws = dive->weightsystem+i; + int grams = ws->weight.grams; + const char *description = ws->description; + + /* No weight information at all? */ + if (grams == 0) + return; + fprintf(f, " <weightsystem"); + show_milli(f, " weight='", grams, " kg", "'"); + if (description && *description) + fprintf(f, " description='%s'", description); + fprintf(f, " />\n"); + } +} + static void show_index(FILE *f, int value, const char *pre, const char *post) { if (value) @@ -272,6 +292,7 @@ static void save_dive(FILE *f, struct dive *dive) FRACTION(dive->duration.seconds, 60)); save_overview(f, dive); save_cylinder_info(f, dive); + save_weightsystem_info(f, dive); save_events(f, dive->events); for (i = 0; i < dive->samples; i++) save_sample(f, dive->sample+i); |