From f3c4fb7461845bd406c037370ebbe3520a5ec059 Mon Sep 17 00:00:00 2001 From: norbertwg Date: Wed, 13 Sep 2023 17:16:44 +0200 Subject: [PATCH] some more Nikon print functions changed to translate value 0 to n/a --- src/nikonmn_int.cpp | 20 ++ test/data/NikonZ6.exv | Bin 0 -> 45879 bytes .../test_reference_files/CH0_0174.exv.out | 4 +- .../data/test_reference_files/NikonZ6.exv.out | 200 ++++++++++++++++++ 4 files changed, 222 insertions(+), 2 deletions(-) create mode 100644 test/data/NikonZ6.exv create mode 100644 test/data/test_reference_files/NikonZ6.exv.out diff --git a/src/nikonmn_int.cpp b/src/nikonmn_int.cpp index cf01a506..acb765fa 100644 --- a/src/nikonmn_int.cpp +++ b/src/nikonmn_int.cpp @@ -3263,6 +3263,10 @@ std::ostream& Nikon3MakerNote::printFocusDistance(std::ostream& os, const Value& os.flags(f); return os; } + auto temp = value.toInt64(); + if (temp == 0) + return os << _("n/a"); + double dist = 0.01 * pow(10.0, value.toInt64() / 40.0); std::ostringstream oss; oss.copyfmt(os); @@ -3279,6 +3283,10 @@ std::ostream& Nikon3MakerNote::printAperture(std::ostream& os, const Value& valu os.flags(f); return os; } + auto temp = value.toInt64(); + if (temp == 0) + return os << _("n/a"); + double aperture = pow(2.0, value.toInt64() / 24.0); std::ostringstream oss; oss.copyfmt(os); @@ -3292,6 +3300,10 @@ std::ostream& Nikon3MakerNote::printFocal(std::ostream& os, const Value& value, if (value.count() != 1 || value.typeId() != unsignedByte) { return os << "(" << value << ")"; } + auto temp = value.toInt64(); + if (temp == 0) + return os << _("n/a"); + double focal = 5.0 * pow(2.0, value.toInt64() / 24.0); std::ostringstream oss; oss.copyfmt(os); @@ -3959,6 +3971,10 @@ std::ostream& Nikon3MakerNote::printFocalLd4(std::ostream& os, const Value& valu if (value.count() != 1 || value.typeId() != unsignedShort) { return os << "(" << value << ")"; } + auto temp = value.toInt64(); + if (temp == 0) + return os << _("n/a"); + std::ostringstream oss; oss.copyfmt(os); os << std::fixed << std::setprecision(1) << value.toInt64() << " mm"; @@ -3970,6 +3986,10 @@ std::ostream& Nikon3MakerNote::printFocusDistanceLd4(std::ostream& os, const Val if (value.count() != 1 || value.typeId() != unsignedShort) { return os << "(" << value << ")"; } + auto temp = value.toInt64(); + if (temp == 0) + return os << _("n/a"); + double dist = 0.01 * pow(10.0, (value.toInt64() / 256.0) / 40.0); std::ostringstream oss; oss.copyfmt(os); diff --git a/test/data/NikonZ6.exv b/test/data/NikonZ6.exv new file mode 100644 index 0000000000000000000000000000000000000000..863c046c8257cf046f22bf3a9413b11de8364099 GIT binary patch literal 45879 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ξIQeS*b(M`8H`BlkZ4YUcj9%aTd?hI%8s0`a%~B&3N~ zt*uj?XMjU;@H)nCJYLUc{5&}P1Azd$n$MpfEt?VqxM6cswtIkELrPs*;-j|vl#=L~ zDHmsJP(}coS>IdY7k0%CPIU=d&MF)VJ*nQuvMpx1q@Q0>xr0IH#$C8 z(EPH3~8**uk=!VbhQGC0z!ETqH+_;wf%gJPp2*Al?uJEaA@sFz4_}o9(wB+vl0L`8t?@r9?+@t^S zfQ5{3{+UHiu+rl`Mp-_uzY8<)8KVgg?*Z!B`ABO(p#|KOf9+ zMwLF^u3t&Mh}EV?(XO56GE0B1(ABmtZq}`FO%33(MO6tj0f_y(6Qx@`{Wg#v5WLs7 zH_Ch3jYPsjfj}(#Psc7eXM{2whXInE@IbIK2nf*9A>*CkXaq^d8G%G$VY1B9N?93{ z3rzMp!~|r5*G0IYuJ{oU*ZfQ^;eKeiri-kOwu}}TO2*(Z2$GWw8RLN^Ldh`MZ{$#R z`D-&!R^}Uogoer9Ffo_W#SsuPYRYQLAf?M>l(&j3n}guu3bnYT_Xh*J29y26RUaQ8 zWgk^#903UgYieo&K`KBM6(u%8iRgi#C%Ka4O4xSJCe1^@dva3>6c;N*-V5x>d( z&H7K=KNy_6*wX#C6+)0vuHTSs#8)*jc&IJ`;Y7j_EO9swnC!Q_Wp=`{x{Nh~pbTO! zCg@ul`QM<3OHL#NOjZR1)=&b2l|W}LRaBs0RVY|R8LaU;&e+Kr!6vix#iQU(9>2F) zIFV3TBuo}0EA!W^p)