summaryrefslogtreecommitdiffstats
path: root/smtk-import/smartrak.c
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2018-10-20 14:12:15 -0400
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2018-10-21 19:55:09 +0300
commit28e3413ff66552f392fecee25068d634cdfe59fc (patch)
tree5fe303d1e7dc1c371e13b534b85c232e29aea884 /smtk-import/smartrak.c
parentc9869406301ff72f76b399097f0845fc1102ced1 (diff)
downloadsubsurface-28e3413ff66552f392fecee25068d634cdfe59fc.tar.gz
Add 'location_t' data structure
Instead of having people treat latitude and longitude as separate things, just add a 'location_t' data structure that contains both. Almost all cases want to always act on them together. This is really just prep-work for adding a few more locations that we track: I want to add a entry/exit location to each dive (independent of the dive site) because of how the Garmin Descent gives us the information (and hopefully, some day, other dive computers too). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'smtk-import/smartrak.c')
-rw-r--r--smtk-import/smartrak.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/smtk-import/smartrak.c b/smtk-import/smartrak.c
index 20f0d617b..fce89dbae 100644
--- a/smtk-import/smartrak.c
+++ b/smtk-import/smartrak.c
@@ -323,7 +323,7 @@ static void smtk_build_location(MdbHandle *mdb, char *idx, timestamp_t when, uin
int i;
uint32_t d;
struct dive_site *ds;
- degrees_t lat, lon;
+ location_t loc;
char *str = NULL, *loc_idx = NULL, *site = NULL, *notes = NULL;
const char *site_fields[] = {QT_TRANSLATE_NOOP("gettextFromC", "Altitude"), QT_TRANSLATE_NOOP("gettextFromC", "Depth"),
QT_TRANSLATE_NOOP("gettextFromC", "Notes")};
@@ -337,8 +337,7 @@ static void smtk_build_location(MdbHandle *mdb, char *idx, timestamp_t when, uin
mdb_fetch_row(table);
loc_idx = copy_string(col[2]->bind_ptr);
site = copy_string(col[1]->bind_ptr);
- lat.udeg = lrint(strtod(col[6]->bind_ptr, NULL) * 1000000);
- lon.udeg = lrint(strtod(col[7]->bind_ptr, NULL) * 1000000);
+ loc = create_location(strtod(col[6]->bind_ptr, NULL), strtod(col[7]->bind_ptr, NULL));
for (i = 8; i < 11; i++) {
switch (i) {
@@ -376,10 +375,10 @@ static void smtk_build_location(MdbHandle *mdb, char *idx, timestamp_t when, uin
*location = get_dive_site_uuid_by_name(str, NULL);
if (*location == 0) {
- if (lat.udeg == 0 && lon.udeg == 0)
+ if (!has_location(&loc))
*location = create_dive_site(str, when);
else
- *location = create_dive_site_with_gps(str, lat, lon, when);
+ *location = create_dive_site_with_gps(str, &loc, when);
}
smtk_free(bound_values, table->num_cols);