summaryrefslogtreecommitdiffstats
path: root/gtk-gui.c
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2012-11-28 17:11:19 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2012-11-30 13:41:58 -0700
commit4c4dff76835a94c571f97dd0730168738501524e (patch)
tree9947139f905fb2b016b465f536483d24f5ec8b0e /gtk-gui.c
parenta79b74ed36f6a52db947ff24761a3fd331c75cdc (diff)
downloadsubsurface-4c4dff76835a94c571f97dd0730168738501524e.tar.gz
Convert Uemis downloader to directly create dives
The initial downloader reused the XML parsing of SDA files that was implemented early in order to support the information extracted from the SDA with the java applet. But creating this intermediary XML file and handing it off to the XML import function always seemed like an ugly way to do things. This became even more obvious when adding more features to the Uemis downloader. This commit completely changes the downloader to instead create dives and record them directly. This also adds support for divespots (which are stored in a seperate database that needs to be queried after the divelog and dive entries have been combined - the Uemis firmware clearly was written by monkeys on crack - oh wait: I'm trusting these same people to get the deco right?). This commit leaves the SDA import capability in the XML parser intact. I'll remove that later. Because of this it actually adds a few lines of code, but the overall change will be a substantial code deletion. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'gtk-gui.c')
-rw-r--r--gtk-gui.c18
1 files changed, 1 insertions, 17 deletions
diff --git a/gtk-gui.c b/gtk-gui.c
index 81f93ca1e..6f08255bd 100644
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -1644,22 +1644,6 @@ void import_files(GtkWidget *w, gpointer data)
restore_tree_state();
}
-static GError *setup_uemis_import(device_data_t *data)
-{
- GError *error = NULL;
- char *buf = NULL;
-
- error = uemis_download(data->devname, &buf, &data->progress, data->dialog, data->force_download);
- if (buf && strlen(buf) > 1) {
-#if UEMIS_DEBUG > 3
- fprintf(debugfile, "xml buffer \"%s\"\n\n", buf);
-#endif
- parse_xml_buffer("Uemis Download", buf, strlen(buf), TRUE, &error);
- mark_divelist_changed(TRUE);
- }
- return error;
-}
-
static GtkWidget *import_dive_computer(device_data_t *data, GtkDialog *dialog)
{
GError *error;
@@ -1667,7 +1651,7 @@ static GtkWidget *import_dive_computer(device_data_t *data, GtkDialog *dialog)
/* HACK to simply include the Uemis Zurich in the list */
if (! strcmp(data->vendor, "Uemis") && ! strcmp(data->product, "Zurich")) {
- error = setup_uemis_import(data);
+ error = uemis_download(data->devname, &data->progress, data->dialog, data->force_download);
} else {
error = do_import(data);
}