#include "misc.h"
+#if EXIV2_TEST_VERSION(0,28,0)
+#define AnyError Error
+#define AutoPtr UniquePtr
+#endif
+
typedef struct _AltKey AltKey;
struct _AltKey
{
cp_data_ = NULL;
cp_length_ = 0;
- image_ = image;
+ image_ = std::move(image);
valid_ = TRUE;
}
Exiv2::Image *image = imageData_->image();
#ifdef HAVE_EXIV2_ERROR_CODE
+#if EXIV2_TEST_VERSION(0,28,0)
+ if (!image) throw Exiv2::Error(Exiv2::ErrorCode::kerInputDataReadFailed);
+#else
if (!image) throw Exiv2::Error(Exiv2::kerInputDataReadFailed);
+#endif
#else
if (!image) throw Exiv2::Error(21);
#endif
{
try {
if (!item || exif_item_get_elements(item) == 0) return 0;
+
+#if EXIV2_TEST_VERSION(0,28,0)
+ *value = ((Exiv2::Metadatum *)item)->toInt64();
+#else
*value = ((Exiv2::Metadatum *)item)->toLong();
+#endif
return 1;
}
catch (Exiv2::AnyError& e) {
Exiv2::PreviewImage image = pm.getPreviewImage(*pos);
Exiv2::DataBuf buf = image.copy();
+
+#if EXIV2_TEST_VERSION(0,28,0)
+ *data_len = buf.size();
+ auto b = buf.data();
+ buf.reset();
+ return b;
+#else
std::pair<Exiv2::byte*, long> p = buf.release();
*data_len = p.second;
return p.first;
+#endif
}
return NULL;
}
if (type == Exiv2::ImageType::cr2)
{
val = find(0x111, Group::ifd0);
- if (val) return val->toLong();
-
+#if EXIV2_TEST_VERSION(0,28,0)
+ if (val) return val->toInt64();
+#else
+ if (val) return val->tolong();
+#endif
return 0;
}
val = find(0x201, Group::sub0_0);
- if (val) return val->toLong();
+#if EXIV2_TEST_VERSION(0,28,0)
+ if (val) return val->toInt64();
+#else
+ if (val) return val->tolong();
+#endif
val = find(0x201, Group::ifd0);
- if (val) return val->toLong();
+#if EXIV2_TEST_VERSION(0,28,0)
+ if (val) return val->toInt64();
+#else
+ if (val) return val->tolong();
+#endif
val = find(0x201, Group::ignr); // for PEF files, originally it was probably ifd2
- if (val) return val->toLong();
+#if EXIV2_TEST_VERSION(0,28,0)
+ if (val) return val->toInt64();
+#else
+ if (val) return val->tolong();
+#endif
val = find(0x111, Group::sub0_1); // dng
- if (val) return val->toLong();
+#if EXIV2_TEST_VERSION(0,28,0)
+ if (val) return val->toInt64();
+#else
+ if (val) return val->tolong();
+#endif
return 0;
}