From 28e3413ff66552f392fecee25068d634cdfe59fc Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Sat, 20 Oct 2018 14:12:15 -0400 Subject: 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 --- smtk-import/smartrak.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'smtk-import') 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); -- cgit v1.2.3-70-g09d2