summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--configure.ac2
-rw-r--r--src/Hill.cxx2
-rw-r--r--src/ImageMetaData.cxx47
-rw-r--r--src/OutputImage.cxx5
-rw-r--r--src/gipfel.cxx4
6 files changed, 40 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index 174294b..295cea5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
gipfel ChangeLog
=================
+gipfel-0.4.1
+* fix compilation with newer Exiv2 library
+* fix compilation on NetBSD - by Thomas Klausner
+
gipfel-0.4.0
* Fix compilation with fltk-1.3.x.
* Use proper distance for distortion correction.
diff --git a/configure.ac b/configure.ac
index de66ce1..1766ac2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
-AC_INIT(gipfel, 0.4.0, Johannes.Hofmann@gmx.de)
+AC_INIT(gipfel, 0.4.1, Johannes.Hofmann@gmx.de)
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src/Panorama.H])
AC_CONFIG_HEADER(config.h)
diff --git a/src/Hill.cxx b/src/Hill.cxx
index b059897..2aad3f3 100644
--- a/src/Hill.cxx
+++ b/src/Hill.cxx
@@ -142,7 +142,7 @@ void Hills::mark_duplicates(double dist) {
j = i + 1;
n = get(j);
while (n && fabs(n->phi - m->phi) <= dist) {
- if (! n->flags & Hill::DUPLIC) {
+ if (! (n->flags & Hill::DUPLIC)) {
if (fabs(n->lam - m->lam) <= dist &&
fabs(n->height - m->height) <= 50.0 ) {
n->flags |= Hill::DUPLIC;
diff --git a/src/ImageMetaData.cxx b/src/ImageMetaData.cxx
index b54da74..fa334aa 100644
--- a/src/ImageMetaData.cxx
+++ b/src/ImageMetaData.cxx
@@ -17,8 +17,7 @@
#include <sys/types.h>
#include <sys/stat.h>
-#include <exiv2/image.hpp>
-#include <exiv2/exif.hpp>
+#include <exiv2/exiv2.hpp>
#include "../config.h"
#include "ImageMetaData.H"
@@ -102,12 +101,16 @@ exifSetCoordinate(double *destVal, Exiv2::ExifData *exifData, const char *name)
int
ImageMetaData::load_image_exif(char *name) {
- Exiv2::Image::AutoPtr image;
+#if EXIV2_TEST_VERSION(0,28,0)
+ Exiv2::Image::UniquePtr image;
+#else
+ Exiv2::Image::AutoPtr image;
+#endif
try {
image = Exiv2::ImageFactory::open(name);
image->readMetadata();
- } catch (Exiv2::Error error) {
+ } catch (const Exiv2::Error &error) {
fprintf(stderr, "Error reading metadata\n");
return 1;
}
@@ -134,19 +137,19 @@ ImageMetaData::load_image_exif(char *name) {
_model = strdup(pos->toString().c_str());
}
- if (isnan(_focal_length))
+ if (std::isnan(_focal_length))
exifSetValue(&_focal_length, &exifData, "Exif.Photo.FocalLength");
- if (isnan(_focal_length_35mm))
+ if (std::isnan(_focal_length_35mm))
exifSetValue(&_focal_length_35mm, &exifData, "Exif.Photo.FocalLengthIn35mmFilm");
- if (isnan(_longitude))
+ if (std::isnan(_longitude))
exifSetCoordinate(&_longitude, &exifData, "Exif.GPSInfo.GPSLongitude");
- if (isnan(_latitude))
+ if (std::isnan(_latitude))
exifSetCoordinate(&_latitude, &exifData, "Exif.GPSInfo.GPSLatitude");
- if (isnan(_height))
+ if (std::isnan(_height))
exifSetValue(&_height, &exifData, "Exif.GPSInfo.GPSAltitude");
return 0;
@@ -170,15 +173,19 @@ ImageMetaData::load_image_jpgcom(char *name) {
double lo, la, he, dir, ni, ti, fr, k0, k1, x0 = 0.0;
int pt = 0;
int n, ret = 1;
- Exiv2::Image::AutoPtr image;
+#if EXIV2_TEST_VERSION(0,28,0)
+ Exiv2::Image::UniquePtr image;
+#else
+ Exiv2::Image::AutoPtr image;
+#endif
- try {
- image = Exiv2::ImageFactory::open(name);
- image->readMetadata();
- } catch (Exiv2::Error error) {
- fprintf(stderr, "Error reading metadata\n");
- return 1;
- }
+ try {
+ image = Exiv2::ImageFactory::open(name);
+ image->readMetadata();
+ } catch (const Exiv2::Error &error) {
+ fprintf(stderr, "Error reading metadata\n");
+ return 1;
+ }
const char *com = image->comment().c_str();
@@ -245,7 +252,11 @@ ImageMetaData::save_image_jpgcom(char *in_img, char *out_img) {
close(in_fd);
+#if EXIV2_TEST_VERSION(0,28,0)
+ Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(tmpname);
+#else
Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(tmpname);
+#endif
if (!image.get())
err++;
@@ -267,7 +278,7 @@ ImageMetaData::save_image_jpgcom(char *in_img, char *out_img) {
try {
image->writeMetadata();
- } catch (Exiv2::Error error) {
+ } catch (const Exiv2::Error &error) {
fprintf(stderr, "Error writing metadata\n");
err++;
}
diff --git a/src/OutputImage.cxx b/src/OutputImage.cxx
index c5848b4..b4c4739 100644
--- a/src/OutputImage.cxx
+++ b/src/OutputImage.cxx
@@ -49,9 +49,10 @@ OutputImage::next_line() {
int
OutputImage::done() {
- if (!initialized)
+ if (!initialized) {
return 1;
- else
+ } else {
next_line();
return done_internal();
+ }
}
diff --git a/src/gipfel.cxx b/src/gipfel.cxx
index 0b8a693..bed5035 100644
--- a/src/gipfel.cxx
+++ b/src/gipfel.cxx
@@ -1,5 +1,5 @@
//
-// Copyright 2007-2014 Johannes Hofmann <Johannes.Hofmann@gmx.de>
+// Copyright 2007-2023 Johannes Hofmann <Johannes.Hofmann@gmx.de>
//
// This software may be used and distributed according to the terms
// of the GNU General Public License, incorporated herein by reference.
@@ -279,7 +279,7 @@ void distortion_cb(Fl_Value_Input*, void*) {
void about_cb() {
fl_message("gipfel -- Photogrammetry for Mountain Images.\n"
"Version %s\n\n"
- "(c) Johannes Hofmann 2006-2014\n\n"
+ "(c) Johannes Hofmann 2006-2023\n\n"
"Homepage: http://flpsed.org/gipfel.html\n\n"
"Default datafile from http://www.viewfinderpanoramas.org/ and\n"
"http://www.alpin-koordinaten.de\n",