Add SonyMisc1 (Tag 0x9403) makernote tags
Source: Exiftool (https://exiftool.org/TagNames/Sony.html)
This commit is contained in:
parent
9284b58bfc
commit
2b8856dcea
@ -806,6 +806,31 @@ namespace Exiv2 {
|
||||
return tagInfoFp_;
|
||||
}
|
||||
|
||||
//! Sony Tag 9403 SonyMisc1
|
||||
constexpr TagInfo SonyMakerNote::tagInfoSonyMisc1_[] = {
|
||||
{0x05, "CameraTemperature", N_("Camera temperature"),
|
||||
N_("Internal camera temperature (in degrees Celsius)"),
|
||||
sonyMisc1Id, makerTags, signedByte, -1, printTemperatureInDegC},
|
||||
// End of list marker
|
||||
{0xffff, "(UnknownSonyMisc1Tag)", "(UnknownSonyMisc1Tag)",
|
||||
"(UnknownSonyMisc1Tag)",
|
||||
sonyMisc1Id, makerTags, unsignedByte, -1, printValue}
|
||||
};
|
||||
|
||||
const TagInfo* SonyMakerNote::tagListSonyMisc1()
|
||||
{
|
||||
return tagInfoSonyMisc1_;
|
||||
}
|
||||
|
||||
std::ostream& SonyMakerNote::printTemperatureInDegC(std::ostream& os, const Value& value, const ExifData*)
|
||||
{
|
||||
if (value.count() != 1) os << "(" << value << ")";
|
||||
else os << value << " °C";
|
||||
|
||||
return os;
|
||||
}
|
||||
|
||||
|
||||
//! Sony Tag 2010 Sony2010 (Miscellaneous)
|
||||
constexpr TagInfo SonyMakerNote::tagInfo2010e_[] = {
|
||||
{0, "SequenceImageNumber", N_("Sequence Image Number"), N_("Sequence Image Number"), sony2010eId, makerTags, unsignedLong, 1, printValue},
|
||||
|
||||
@ -49,11 +49,15 @@ namespace Exiv2 {
|
||||
static const TagInfo* tagListCs2();
|
||||
//! Return read-only list of built-in Sony FocusPosition tags
|
||||
static const TagInfo* tagListFp();
|
||||
//! Return read-only list of built-in Sony Misc1 tags (Tag 9403)
|
||||
static const TagInfo* tagListSonyMisc1();
|
||||
|
||||
static const TagInfo* tagList2010e();
|
||||
|
||||
//! @name Print functions for Sony %MakerNote tags
|
||||
//@{
|
||||
//! Print Sony temperature values (in Degrees Celsius)
|
||||
static std::ostream& printTemperatureInDegC(std::ostream&, const Value&, const ExifData*);
|
||||
//! Print Sony Camera Model
|
||||
static std::ostream& print0xb000(std::ostream&, const Value&, const ExifData*);
|
||||
//! Print Full and Preview Image size
|
||||
@ -65,6 +69,7 @@ namespace Exiv2 {
|
||||
static const TagInfo tagInfoCs_[];
|
||||
static const TagInfo tagInfoCs2_[];
|
||||
static const TagInfo tagInfoFp_[];
|
||||
static const TagInfo tagInfoSonyMisc1_[];
|
||||
static const TagInfo tagInfo2010e_[];
|
||||
}; // class SonyMakerNote
|
||||
|
||||
|
||||
@ -167,6 +167,7 @@ namespace Exiv2 {
|
||||
{ sony2CsId, "Makernote", "Sony2Cs", SonyMakerNote::tagListCs },
|
||||
{ sony2Cs2Id, "Makernote", "Sony2Cs2", SonyMakerNote::tagListCs2 },
|
||||
{ sony2FpId, "Makernote", "Sony2Fp", SonyMakerNote::tagListFp },
|
||||
{ sonyMisc1Id, "Makernote", "SonyMisc1", SonyMakerNote::tagListSonyMisc1},
|
||||
{ sony2010eId, "Makernote", "Sony2010e", SonyMakerNote::tagList2010e },
|
||||
{ lastId, "(Last IFD info)", "(Last IFD item)", nullptr }
|
||||
};
|
||||
|
||||
@ -174,6 +174,7 @@ namespace Exiv2 {
|
||||
sony2CsId,
|
||||
sony2Cs2Id,
|
||||
sony2FpId,
|
||||
sonyMisc1Id,
|
||||
sony2010eId,
|
||||
sony1MltCs7DId,
|
||||
sony1MltCsOldId,
|
||||
|
||||
@ -826,6 +826,21 @@ namespace Exiv2 {
|
||||
{ 0x2d, ttUnsignedByte, 1 } // Exif.Sony2Fp.FocusPosition2
|
||||
};
|
||||
|
||||
constexpr ArrayCfg sonyMisc1Cfg = {
|
||||
sonyMisc1Id, // Group for the elements
|
||||
bigEndian, // Big endian
|
||||
ttUnsignedByte, // Type for array entry and size element
|
||||
sonyTagDecipher, // (uint16_t, const byte*, uint32_t, TiffComponent* const);
|
||||
false, // No size element
|
||||
false, // No fillers
|
||||
false, // Don't concatenate gaps
|
||||
{ 0, ttUnsignedByte, 1 }
|
||||
};
|
||||
|
||||
constexpr ArrayDef sonyMisc1Def[] = {
|
||||
{ 0x05, ttSignedByte , 1 }, // Exif.SonyMisc1.CameraTemperature
|
||||
};
|
||||
|
||||
constexpr ArrayCfg sony2010eCfg = {
|
||||
sony2010eId, // Group for the elements
|
||||
invalidByteOrder, // inherit from file. Usually littleEndian
|
||||
@ -1096,6 +1111,7 @@ namespace Exiv2 {
|
||||
{ Tag::root, sony1Id, exifId, 0x927c },
|
||||
{ Tag::root, sony2010eId, sony1Id, 0x2010 },
|
||||
{ Tag::root, sony2FpId, sony1Id, 0x9402 },
|
||||
{ Tag::root, sonyMisc1Id, sony1Id, 0x9403 },
|
||||
{ Tag::root, sony1CsId, sony1Id, 0x0114 },
|
||||
{ Tag::root, sony1Cs2Id, sony1Id, 0x0114 },
|
||||
{ Tag::root, sonyMltId, sony1Id, 0xb028 },
|
||||
@ -1106,6 +1122,7 @@ namespace Exiv2 {
|
||||
{ Tag::root, sony2Id, exifId, 0x927c },
|
||||
{ Tag::root, sony2010eId, sony2Id, 0x2010 },
|
||||
{ Tag::root, sony2FpId, sony2Id, 0x9402 },
|
||||
{ Tag::root, sonyMisc1Id, sony2Id, 0x9403 },
|
||||
{ Tag::root, sony2CsId, sony2Id, 0x0114 },
|
||||
{ Tag::root, sony2Cs2Id, sony2Id, 0x0114 },
|
||||
{ Tag::root, minoltaId, exifId, 0x927c },
|
||||
@ -1544,6 +1561,10 @@ namespace Exiv2 {
|
||||
{ Tag::all, sony2FpId, newTiffBinaryElement },
|
||||
{ 0x9402, sony1Id, EXV_BINARY_ARRAY(sony2FpCfg, sony2FpDef) },
|
||||
|
||||
// Tag 0x9403 SonyMisc1
|
||||
{ Tag::all, sonyMisc1Id, newTiffBinaryElement },
|
||||
{ 0x9403, sony1Id, EXV_BINARY_ARRAY(sonyMisc1Cfg, sonyMisc1Def) },
|
||||
|
||||
// Sony1 makernote
|
||||
{ 0x0114, sony1Id, EXV_COMPLEX_BINARY_ARRAY(sony1CsSet, sonyCsSelector) },
|
||||
{ 0xb028, sony1Id, newTiffSubIfd<sonyMltId> },
|
||||
@ -1561,6 +1582,10 @@ namespace Exiv2 {
|
||||
{ Tag::all, sony2FpId, newTiffBinaryElement },
|
||||
{ 0x9402, sony2Id, EXV_BINARY_ARRAY(sony2FpCfg, sony2FpDef) },
|
||||
|
||||
// Tag 0x9403 SonyMisc1
|
||||
{ Tag::all, sonyMisc1Id, newTiffBinaryElement },
|
||||
{ 0x9403, sony2Id, EXV_BINARY_ARRAY(sonyMisc1Cfg, sonyMisc1Def) },
|
||||
|
||||
// Sony2 makernote
|
||||
{ 0x0114, sony2Id, EXV_COMPLEX_BINARY_ARRAY(sony2CsSet, sonyCsSelector) },
|
||||
{ Tag::next, sony2Id, ignoreTiffComponent },
|
||||
|
||||
Loading…
Reference in New Issue
Block a user