diff options
Diffstat (limited to 'dive.c')
-rw-r--r-- | dive.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -2283,13 +2283,14 @@ static bool new_picture_for_dive(struct dive *d, char *filename) void dive_create_picture(struct dive *d, char *filename, int shift_time) { + timestamp_t timestamp; if (!new_picture_for_dive(d, filename)) return; struct picture *p = alloc_picture(); p->filename = filename; - picture_load_exif_data(p); - if (p->timestamp) - p->timestamp += shift_time; + picture_load_exif_data(p, ×tamp); + if (timestamp) + p->offset = timestamp - d->when + shift_time; dive_add_picture(d, p); dive_set_geodata_from_picture(d, p); } @@ -2298,7 +2299,7 @@ void dive_add_picture(struct dive *d, struct picture *newpic) { struct picture **pic_ptr = &d->picture_list; /* let's keep the list sorted by time */ - while( *pic_ptr && (*pic_ptr)->timestamp < newpic->timestamp ) + while( *pic_ptr && (*pic_ptr)->offset < newpic->offset ) pic_ptr = &(*pic_ptr)->next; newpic->next = *pic_ptr; *pic_ptr = newpic; |