mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
c986940630
commit
28e3413ff6
40 changed files with 251 additions and 264 deletions
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue