diff options
-rw-r--r-- | dive.c | 67 | ||||
-rw-r--r-- | dive.h | 2 | ||||
-rw-r--r-- | qt-ui/simplewidgets.cpp | 6 | ||||
-rw-r--r-- | qthelper.cpp | 9 |
4 files changed, 39 insertions, 45 deletions
@@ -2887,8 +2887,7 @@ static bool new_picture_for_dive(struct dive *d, char *filename) #define D30MIN (30 * 60) bool dive_check_picture_time(struct dive *d, char *filename, int shift_time) { - timestamp_t timestamp = 0; - picture_get_timestamp(filename, ×tamp); + timestamp_t timestamp = picture_get_timestamp(filename); offset_t offset; if (timestamp) { offset.seconds = timestamp - d->when + shift_time; @@ -2912,27 +2911,25 @@ bool picture_check_valid(char *filename, int shift_time) return result; } -void dive_create_picture(struct dive *d, char *filename, int shift_time) +void dive_create_picture(struct dive *dive, char *filename, int shift_time) { - timestamp_t timestamp; - if (!new_picture_for_dive(d, filename)) + if (!new_picture_for_dive(dive, filename)) return; - if (!dive_check_picture_time(d, filename, shift_time)) + if (!dive_check_picture_time(dive, filename, shift_time)) return; - struct picture *p = alloc_picture(); - p->filename = filename; - picture_get_timestamp(filename, ×tamp); - p->offset.seconds = timestamp - d->when + shift_time; - picture_load_exif_data(p); + struct picture *picture = alloc_picture(); + picture->filename = filename; + picture->offset.seconds = picture_get_timestamp(filename) - dive->when + shift_time; + picture_load_exif_data(picture); - dive_add_picture(d, p); - dive_set_geodata_from_picture(d, p); + dive_add_picture(dive, picture); + dive_set_geodata_from_picture(dive, picture); } -void dive_add_picture(struct dive *d, struct picture *newpic) +void dive_add_picture(struct dive *dive, struct picture *newpic) { - struct picture **pic_ptr = &d->picture_list; + struct picture **pic_ptr = &dive->picture_list; /* let's keep the list sorted by time */ while (*pic_ptr && (*pic_ptr)->offset.seconds <= newpic->offset.seconds) pic_ptr = &(*pic_ptr)->next; @@ -2941,45 +2938,45 @@ void dive_add_picture(struct dive *d, struct picture *newpic) return; } -unsigned int dive_get_picture_count(struct dive *d) +unsigned int dive_get_picture_count(struct dive *dive) { unsigned int i = 0; - FOR_EACH_PICTURE (d) + FOR_EACH_PICTURE (dive) i++; return i; } -void dive_set_geodata_from_picture(struct dive *d, struct picture *pic) +void dive_set_geodata_from_picture(struct dive *dive, struct picture *picture) { - struct dive_site *ds = get_dive_site_by_uuid(d->dive_site_uuid); - if (!dive_site_has_gps_location(ds) && (pic->latitude.udeg || pic->longitude.udeg)) { + struct dive_site *ds = get_dive_site_by_uuid(dive->dive_site_uuid); + if (!dive_site_has_gps_location(ds) && (picture->latitude.udeg || picture->longitude.udeg)) { if (ds) { - ds->latitude = pic->latitude; - ds->longitude = pic->longitude; + ds->latitude = picture->latitude; + ds->longitude = picture->longitude; } else { - d->dive_site_uuid = create_dive_site_with_gps("", pic->latitude, pic->longitude); + dive->dive_site_uuid = create_dive_site_with_gps("", picture->latitude, picture->longitude); } } } -static void picture_free(struct picture *p) +static void picture_free(struct picture *picture) { - if (!p) + if (!picture) return; - free(p->filename); - free(p->hash); - free(p); + free(picture->filename); + free(picture->hash); + free(picture); } void dive_remove_picture(char *filename) { - struct picture **ep = ¤t_dive->picture_list; - while (ep && !same_string((*ep)->filename, filename)) - ep = &(*ep)->next; - if (ep) { - struct picture *temp = (*ep)->next; - picture_free(*ep); - *ep = temp; + struct picture **picture = ¤t_dive->picture_list; + while (picture && !same_string((*picture)->filename, filename)) + picture = &(*picture)->next; + if (picture) { + struct picture *temp = (*picture)->next; + picture_free(*picture); + *picture = temp; } } @@ -390,7 +390,7 @@ extern void dive_remove_picture(char *filename); extern unsigned int dive_get_picture_count(struct dive *d); extern bool picture_check_valid(char *filename, int shift_time); extern void picture_load_exif_data(struct picture *p); -extern void picture_get_timestamp(char *filename, timestamp_t *t); +extern timestamp_t picture_get_timestamp(char *filename); extern void dive_set_geodata_from_picture(struct dive *d, struct picture *pic); extern int explicit_first_cylinder(struct dive *dive, struct divecomputer *dc); diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp index fbb613f32..2b8605a69 100644 --- a/qt-ui/simplewidgets.cpp +++ b/qt-ui/simplewidgets.cpp @@ -272,7 +272,6 @@ void ShiftImageTimesDialog::buttonClicked(QAbstractButton *button) void ShiftImageTimesDialog::syncCameraClicked() { - timestamp_t timestamp; QPixmap picture; QDateTime dcDateTime = QDateTime(); QStringList fileNames = QFileDialog::getOpenFileNames(this, @@ -289,8 +288,7 @@ void ShiftImageTimesDialog::syncCameraClicked() scene->addPixmap(picture.scaled(ui.DCImage->size())); ui.DCImage->setScene(scene); - picture_get_timestamp(fileNames.at(0).toUtf8().data(), ×tamp); - dcImageEpoch = timestamp; + dcImageEpoch = picture_get_timestamp(fileNames.at(0).toUtf8().data()); dcDateTime.setTime_t(dcImageEpoch); ui.dcTime->setDateTime(dcDateTime); connect(ui.dcTime, SIGNAL(dateTimeChanged(const QDateTime &)), this, SLOT(dcDateTimeChanged(const QDateTime &))); @@ -342,7 +340,7 @@ void ShiftImageTimesDialog::updateInvalid() continue; // We've found invalid image - picture_get_timestamp(fileName.toUtf8().data(), ×tamp); + timestamp = picture_get_timestamp(fileName.toUtf8().data()); dcImageEpoch = timestamp; time.setTime_t(timestamp + m_amount); ui.invalidLabel->setText(ui.invalidLabel->text() + fileName + " " + time.toString() + "\n"); diff --git a/qthelper.cpp b/qthelper.cpp index eb0d5e41a..a5597e3fb 100644 --- a/qthelper.cpp +++ b/qthelper.cpp @@ -354,20 +354,19 @@ picture_load_exit: return; } -extern "C" void picture_get_timestamp(char *filename, timestamp_t *t) +extern "C" timestamp_t picture_get_timestamp(char *filename) { EXIFInfo exif; memblock mem; int retval; if (readfile(filename, &mem) <= 0) - return; + return 0; retval = exif.parseFrom((const unsigned char *)mem.buffer, (unsigned)mem.size); free(mem.buffer); if (retval != PARSE_EXIF_SUCCESS) - return; - *t = exif.epoch(); - return; + return 0; + return exif.epoch(); } extern "C" const char *system_default_directory(void) |