From 0ea1c5c7db735069c1199902a3b17d962b349947 Mon Sep 17 00:00:00 2001 From: Vladyslav Baranovskyi Date: Thu, 26 Sep 2024 19:22:22 +0300 Subject: [PATCH] Introduced IFDGPSTag enum --- openVulkanoCpp/Image/ExifBuilder.cpp | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/openVulkanoCpp/Image/ExifBuilder.cpp b/openVulkanoCpp/Image/ExifBuilder.cpp index 24b1cff..a67d970 100644 --- a/openVulkanoCpp/Image/ExifBuilder.cpp +++ b/openVulkanoCpp/Image/ExifBuilder.cpp @@ -39,6 +39,18 @@ namespace GPS_INFO_OFFSET = 0x8825, }; + enum class IFDGPSTag : uint16_t + { + LATITUDE_REF = 1, + LATITUDE, + LONGITUDE_REF, + LONGITUDE, + ALTITUDE_REF, + ALTITUDE, + TRACK_REF = 14, + TRACK, + }; + enum class IFDValueType { BYTE = 1, @@ -437,7 +449,7 @@ namespace OpenVulkano::Image AppendU16(result, numberOfGPSInfoTags); // Latitude Ref - AppendTagAndValueType(result, 1, (uint16_t) IFDValueType::ASCII); + AppendTagAndValueType(result, (uint16_t) IFDGPSTag::LATITUDE_REF, (uint16_t) IFDValueType::ASCII); AppendU32(result, 2); // 2 for N/S + \0 AppendU8(result, latitude.latitudeRef == LatitudeRef::NORTH ? 'N' : 'S'); AppendU8(result, 0); @@ -445,12 +457,12 @@ namespace OpenVulkano::Image AppendU8(result, 0); // padding // Latitude - AppendTagAndValueType(result, 2, (uint16_t) IFDValueType::RATIONAL); + AppendTagAndValueType(result, (uint16_t) IFDGPSTag::LATITUDE, (uint16_t) IFDValueType::RATIONAL); AppendU32(result, 3); // number of components int latitudeOffset = AppendU32NES(result, 0); // 0 * sizeof(RationalValue) // Longitude Ref - AppendTagAndValueType(result, 3, (uint16_t) IFDValueType::ASCII); + AppendTagAndValueType(result, (uint16_t) IFDGPSTag::LONGITUDE_REF, (uint16_t) IFDValueType::ASCII); AppendU32(result, 2); // 2 for E/W + \0 AppendU8(result, longitude.longitudeRef == LongitudeRef::EAST ? 'E' : 'W'); AppendU8(result, 0); @@ -458,12 +470,12 @@ namespace OpenVulkano::Image AppendU8(result, 0); // padding // Longitude - AppendTagAndValueType(result, 4, (uint16_t) IFDValueType::RATIONAL); + AppendTagAndValueType(result, (uint16_t) IFDGPSTag::LONGITUDE, (uint16_t) IFDValueType::RATIONAL); AppendU32(result, 3); // number of components int longitudeOffset = AppendU32NES(result, 24); // 3 * sizeof(RationalValue) // Altitude Ref - AppendTagAndValueType(result, 5, (uint16_t) IFDValueType::BYTE); + AppendTagAndValueType(result, (uint16_t) IFDGPSTag::ALTITUDE_REF, (uint16_t) IFDValueType::BYTE); AppendU32(result, 1); // number of components AppendU8(result, altitudeIsAboveSeaLevel ? 0 : 1); AppendU8(result, 0); // padding @@ -471,12 +483,12 @@ namespace OpenVulkano::Image AppendU8(result, 0); // padding // Altitude - AppendTagAndValueType(result, 6, (uint16_t) IFDValueType::RATIONAL); + AppendTagAndValueType(result, (uint16_t) IFDGPSTag::ALTITUDE, (uint16_t) IFDValueType::RATIONAL); AppendU32(result, 1); // number of components int altitudeOffset = AppendU32NES(result, 48); // 6 * sizeof(RationalValue) // Track Ref - AppendTagAndValueType(result, 14, (uint16_t) IFDValueType::ASCII); + AppendTagAndValueType(result, (uint16_t) IFDGPSTag::TRACK_REF, (uint16_t) IFDValueType::ASCII); AppendU32(result, 2); // 2 for T/M + \0 AppendU8(result, trackRef == GPSTrackRef::TRUE_NORTH ? 'T' : 'M'); AppendU8(result, 0); @@ -484,7 +496,7 @@ namespace OpenVulkano::Image AppendU8(result, 0); // padding // Track - AppendTagAndValueType(result, 15, (uint16_t) IFDValueType::RATIONAL); + AppendTagAndValueType(result, (uint16_t) IFDGPSTag::TRACK, (uint16_t) IFDValueType::RATIONAL); AppendU32(result, 1); // number of components int trackOffset = AppendU32NES(result, 56); // 7 * sizeof(RationalValue)