From 66b71c60a0980a1490be3bdacb1fdfa9dcca0c48 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Mon, 19 Mar 2018 20:20:42 +0100 Subject: Dive pictures: use get_metadata() in dive_create_picture() Thus, metadata has to be only read once and the picture_load_exif_data() function can be removed. Signed-off-by: Berthold Stoeger --- core/dive.c | 10 ++++++---- core/metadata.cpp | 9 --------- core/metadata.h | 1 - 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/core/dive.c b/core/dive.c index ab033858e..1a26ac5d7 100644 --- a/core/dive.c +++ b/core/dive.c @@ -3780,16 +3780,18 @@ bool picture_check_valid(const char *filename, int shift_time) void dive_create_picture(struct dive *dive, const char *filename, int shift_time, bool match_all) { - timestamp_t timestamp = picture_get_timestamp(filename); + struct metadata metadata; + get_metadata(filename, &metadata); if (!new_picture_for_dive(dive, filename)) return; - if (!match_all && !dive_check_picture_time(dive, shift_time, timestamp)) + if (!match_all && !dive_check_picture_time(dive, shift_time, metadata.timestamp)) return; struct picture *picture = alloc_picture(); picture->filename = strdup(filename); - picture->offset.seconds = timestamp - dive->when + shift_time; - picture_load_exif_data(picture); + picture->offset.seconds = metadata.timestamp - dive->when + shift_time; + picture->longitude = metadata.longitude; + picture->latitude = metadata.latitude; dive_add_picture(dive, picture); dive_set_geodata_from_picture(dive, picture); diff --git a/core/metadata.cpp b/core/metadata.cpp index bf4bfcb90..ca72cecb4 100644 --- a/core/metadata.cpp +++ b/core/metadata.cpp @@ -98,12 +98,3 @@ extern "C" timestamp_t picture_get_timestamp(const char *filename) get_metadata(filename, &data); return data.timestamp; } - -extern "C" void picture_load_exif_data(struct picture *p) -{ - struct metadata data; - if (get_metadata(p->filename, &data) == MEDIATYPE_IO_ERROR) - return; - p->longitude = data.longitude; - p->latitude = data.latitude; -} diff --git a/core/metadata.h b/core/metadata.h index b5af39b30..5cbb865f4 100644 --- a/core/metadata.h +++ b/core/metadata.h @@ -22,7 +22,6 @@ extern "C" { enum mediatype_t get_metadata(const char *filename, struct metadata *data); timestamp_t picture_get_timestamp(const char *filename); -void picture_load_exif_data(struct picture *p); #ifdef __cplusplus } -- cgit v1.2.3-70-g09d2