Oops, I forgot some debug prints in. New version attached. miika
From 803236a9fd3dae8e127bddf725804c1347ca84b0 Mon Sep 17 00:00:00 2001 From: Miika Turkia <miika.tur...@gmail.com> Date: Sat, 21 Feb 2015 13:15:03 +0200 Subject: [PATCH] Support for gas changes in DM5 import
Signed-off-by: Miika Turkia <miika.tur...@gmail.com> --- parse-xml.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/parse-xml.c b/parse-xml.c index 285c681..d656ed3 100644 --- a/parse-xml.c +++ b/parse-xml.c @@ -2090,6 +2090,19 @@ extern int dm5_cylinders(void *handle, int columns, char **data, char **column) return 0; } +extern int dm5_gaschange(void *handle, int columns, char **data, char **column) +{ + event_start(); + if (data[0]) + cur_event.time.seconds = atoi(data[0]); + if (data[1]) { + strcpy(cur_event.name, "gaschange"); + cur_event.value = atof(data[1]); + } + event_end(); + + return 0; +} extern int dm4_tags(void *handle, int columns, char **data, char **column) { @@ -2234,7 +2247,8 @@ extern int dm5_dive(void *param, int columns, char **data, char **column) char get_events_template[] = "select * from Mark where DiveId = %d"; char get_tags_template[] = "select Text from DiveTag where DiveId = %d"; char get_cylinders_template[] = "select * from DiveMixture where DiveId = %d"; - char get_events[64]; + char get_gaschange_template[] = "select GasChangeTime,Oxygen,Helium from DiveGasChange join DiveMixture on DiveGasChange.DiveMixtureId=DiveMixture.DiveMixtureId where DiveId = %d"; + char get_events[512]; dive_start(); cur_dive->number = atoi(data[0]); @@ -2333,6 +2347,13 @@ extern int dm5_dive(void *param, int columns, char **data, char **column) } } + snprintf(get_events, sizeof(get_events) - 1, get_gaschange_template, cur_dive->number); + retval = sqlite3_exec(handle, get_events, &dm5_gaschange, 0, &err); + if (retval != SQLITE_OK) { + fprintf(stderr, "%s", translate("gettextFromC", "Database query dm5_gaschange failed.\n")); + return 1; + } + snprintf(get_events, sizeof(get_events) - 1, get_events_template, cur_dive->number); retval = sqlite3_exec(handle, get_events, &dm4_events, 0, &err); if (retval != SQLITE_OK) { -- 2.1.0
_______________________________________________ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface