summaryrefslogtreecommitdiffstats
path: root/save-xml.c
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2011-12-23 19:41:16 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2012-03-24 11:44:27 +0900
commit854bd0269c05adc56caf9667fd68f676520a2941 (patch)
treedce09bb7d37cd43f14d4924f28101bb1bde21e04 /save-xml.c
parentb5139aeb22c8a28cac89b7f9a561bd9d4e2bb358 (diff)
downloadsubsurface-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.c21
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);