mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Picture handling: change data structure to store offset instead timestamp
It makes no sense to store a 64bit time stamp with every picture. Even the 32bit offset (in seconds) from the dive start is WAY overkill. But switching to that makes the code much more simple in a number of spots. And makes what is saved to the XML file easier to read, too. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
3a14076b1d
commit
1604299a5b
5 changed files with 13 additions and 12 deletions
9
dive.c
9
dive.c
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue