Minor changes
This commit is contained in:
@@ -16,11 +16,11 @@
|
||||
|
||||
namespace
|
||||
{
|
||||
const int EXIF_HEADER_SIZE = 6;
|
||||
std::array<char, EXIF_HEADER_SIZE> EXIF_HEADER_AND_PADDING = { 'E', 'x', 'i', 'f', 0, 0 };
|
||||
constexpr int EXIF_HEADER_SIZE = 6;
|
||||
constexpr std::array<char, EXIF_HEADER_SIZE> EXIF_HEADER_AND_PADDING = { 'E', 'x', 'i', 'f', 0, 0 };
|
||||
|
||||
const int TIFF_HEADER_SIZE = 4;
|
||||
std::array<char, TIFF_HEADER_SIZE> TIFF_HEADER = { 0x4d, 0x4d, 0, 0x2a };
|
||||
constexpr int TIFF_HEADER_SIZE = 4;
|
||||
constexpr std::array<char, TIFF_HEADER_SIZE> TIFF_HEADER = { 0x4d, 0x4d, 0, 0x2a };
|
||||
|
||||
constexpr bool LITTLE_ENDIAN = std::endian::native == std::endian::little;
|
||||
|
||||
@@ -70,59 +70,46 @@ namespace
|
||||
return result;
|
||||
}
|
||||
|
||||
int AppendU8(std::vector<uint8_t>& array, uint8_t value)
|
||||
template<typename T>
|
||||
int Append(std::vector<uint8_t>& array, T value)
|
||||
{
|
||||
int offset = array.size();
|
||||
array.push_back(value);
|
||||
const int bytes = sizeof(T);
|
||||
char *c = (char *) &value;
|
||||
for (int i = 0; i < bytes; i++)
|
||||
{
|
||||
array.push_back(c[i]);
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
int AppendU8(std::vector<uint8_t>& array, uint8_t value)
|
||||
{
|
||||
return Append<uint8_t>(array, value);
|
||||
}
|
||||
|
||||
int AppendU16(std::vector<uint8_t>& array, uint16_t value)
|
||||
{
|
||||
int offset = array.size();
|
||||
|
||||
if constexpr (LITTLE_ENDIAN)
|
||||
{
|
||||
value = ::EndianSwap(value);
|
||||
}
|
||||
|
||||
char *src = (char *) &value;
|
||||
array.push_back(src[0]);
|
||||
array.push_back(src[1]);
|
||||
|
||||
return offset;
|
||||
return Append<uint16_t>(array, value);
|
||||
}
|
||||
|
||||
// no endian swap
|
||||
int AppendU32NES(std::vector<uint8_t>& array, uint32_t value)
|
||||
{
|
||||
int offset = array.size();
|
||||
|
||||
char *src = (char *) &value;
|
||||
array.push_back(src[0]);
|
||||
array.push_back(src[1]);
|
||||
array.push_back(src[2]);
|
||||
array.push_back(src[3]);
|
||||
|
||||
return offset;
|
||||
return Append<uint32_t>(array, value);
|
||||
}
|
||||
|
||||
int AppendU32(std::vector<uint8_t>& array, uint32_t value)
|
||||
{
|
||||
int offset = array.size();
|
||||
|
||||
if constexpr (LITTLE_ENDIAN)
|
||||
{
|
||||
value = ::EndianSwap(value);
|
||||
}
|
||||
|
||||
char *src = (char *) &value;
|
||||
array.push_back(src[0]);
|
||||
array.push_back(src[1]);
|
||||
array.push_back(src[2]);
|
||||
array.push_back(src[3]);
|
||||
|
||||
return offset;
|
||||
return Append<uint32_t>(array, value);
|
||||
}
|
||||
|
||||
template<int COUNT>
|
||||
@@ -138,7 +125,7 @@ namespace
|
||||
return offset;
|
||||
}
|
||||
|
||||
int AppendVector(std::vector<uint8_t>& array, std::vector<uint8_t> values)
|
||||
int AppendVector(std::vector<uint8_t>& array, const std::vector<uint8_t>& values)
|
||||
{
|
||||
int offset = array.size();
|
||||
|
||||
@@ -233,7 +220,7 @@ namespace OpenVulkano::Image
|
||||
std::vector<uint8_t> result;
|
||||
std::vector<uint8_t> data; // the data that has ascii and rational values
|
||||
|
||||
if (dateTaken == "")
|
||||
if (dateTaken.empty())
|
||||
{
|
||||
dateTaken = GetCurrentTimestamp();
|
||||
}
|
||||
@@ -263,7 +250,7 @@ namespace OpenVulkano::Image
|
||||
int gpsInfoOffset = 0;
|
||||
|
||||
// Make
|
||||
if (make != "")
|
||||
if (!make.empty())
|
||||
{
|
||||
AppendTagAndValueType(result, (uint16_t) IFDTag::MAKE, (uint16_t) IFDValueType::ASCII);
|
||||
AppendU32(result, make.size() + 1);
|
||||
@@ -274,7 +261,7 @@ namespace OpenVulkano::Image
|
||||
}
|
||||
|
||||
// Model
|
||||
if (model != "")
|
||||
if (!model.empty())
|
||||
{
|
||||
AppendTagAndValueType(result, (uint16_t) IFDTag::MODEL, (uint16_t) IFDValueType::ASCII);
|
||||
AppendU32(result, model.size() + 1);
|
||||
@@ -339,7 +326,7 @@ namespace OpenVulkano::Image
|
||||
}
|
||||
|
||||
// Software Used
|
||||
if (softwareUsed != "")
|
||||
if (!softwareUsed.empty())
|
||||
{
|
||||
AppendTagAndValueType(result, (uint16_t) IFDTag::SOFTWARE_USED, (uint16_t) IFDValueType::ASCII);
|
||||
AppendU32(result, softwareUsed.size() + 1);
|
||||
@@ -375,12 +362,12 @@ namespace OpenVulkano::Image
|
||||
|
||||
{
|
||||
const int valueToAdd = resultSize - EXIF_HEADER_SIZE;
|
||||
if (model != "")
|
||||
if (!model.empty())
|
||||
{
|
||||
AddValueToU32AndEndianSwap(result.data() + modelOffset, valueToAdd);
|
||||
}
|
||||
|
||||
if (make != "")
|
||||
if (!make.empty())
|
||||
{
|
||||
AddValueToU32AndEndianSwap(result.data() + makeOffset, valueToAdd);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user