From c8276481278e33ba40abdb7140f31e1fafe7db6c Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Wed, 12 Jul 2023 09:17:19 -0700 Subject: [PATCH] add missing commas Formats the structs properly. Signed-off-by: Rosen Penev --- src/asfvideo.cpp | 3 +- src/canonmn_int.cpp | 2453 +++++++++++++++++++++------------------ src/casiomn_int.cpp | 222 ++-- src/fujimn_int.cpp | 425 ++++--- src/futils.cpp | 7 +- src/makernote_int.cpp | 3 +- src/minoltamn_int.cpp | 643 ++++++---- src/nikonmn_int.cpp | 282 +++-- src/olympusmn_int.cpp | 472 +++++--- src/panasonicmn_int.cpp | 344 +++--- src/pentaxmn_int.cpp | 7 +- src/preview.cpp | 3 +- src/properties.cpp | 12 +- src/riffvideo.cpp | 173 +-- src/samsungmn_int.cpp | 57 +- src/sonymn_int.cpp | 1273 +++++++++++--------- src/tags_int.cpp | 394 ++++--- src/tiffimage_int.cpp | 39 +- 18 files changed, 3994 insertions(+), 2818 deletions(-) diff --git a/src/asfvideo.cpp b/src/asfvideo.cpp index a3075b86a0..c042e93bc4 100644 --- a/src/asfvideo.cpp +++ b/src/asfvideo.cpp @@ -190,7 +190,8 @@ const std::map GUIDReferenceTags = { {{0x6698B84E, 0x0AFA, 0x4330, {0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D}}, "Payload_Extension_System_Encryption_Sample_ID"}, {{0x00E1AF06, 0x7BEC, 0x11D1, {0xA5, 0x82, 0x00, 0xC0, 0x4F, 0xC2, 0x9C, 0xFB}}, - "Payload_Extension_System_Degradable_JPEG"}}; + "Payload_Extension_System_Degradable_JPEG"}, +}; /*! @brief Function used to check if data stored in buf is equivalent to diff --git a/src/canonmn_int.cpp b/src/canonmn_int.cpp index 5472dd8586..8292b0ad7a 100644 --- a/src/canonmn_int.cpp +++ b/src/canonmn_int.cpp @@ -28,7 +28,10 @@ // class member definitions namespace Exiv2::Internal { //! OffOn, multiple tags -constexpr TagDetails canonOffOn[] = {{0, N_("Off")}, {1, N_("On")}}; +constexpr TagDetails canonOffOn[] = { + {0, N_("Off")}, + {1, N_("On")}, +}; std::ostream& printCsLensTypeByMetadata(std::ostream& os, const Value& value, const ExifData* metadata); @@ -36,355 +39,357 @@ std::ostream& printCsLensTypeByMetadata(std::ostream& os, const Value& value, co std::ostream& printCsLensFFFF(std::ostream& os, const Value& value, const ExifData* metadata); //! ModelId, tag 0x0010 -constexpr TagDetails canonModelId[] = {{0x00000412, "EOS M50 / Kiss M"}, - {0x00000801, "PowerShot SX740 HS"}, - {0x00000804, "Powershot G5 X Mark II"}, - {0x00000805, "PowerShot SX70 HS"}, - {0x00000808, "PowerShot G7 X Mark III"}, - {0x00000811, "EOS M6 Mark II"}, - {0x00000812, "EOS M200"}, - {0x01010000, "PowerShot A30"}, - {0x01040000, "PowerShot S300 / Digital IXUS 300 / IXY Digital 300"}, - {0x01060000, "PowerShot A20"}, - {0x01080000, "PowerShot A10"}, - {0x01090000, "PowerShot S110 / Digital IXUS v / IXY Digital 200"}, - {0x01100000, "PowerShot G2"}, - {0x01110000, "PowerShot S40"}, - {0x01120000, "PowerShot S30"}, - {0x01130000, "PowerShot A40"}, - {0x01140000, "EOS D30"}, - {0x01150000, "PowerShot A100"}, - {0x01160000, "PowerShot S200 / Digital IXUS v2 / IXY Digital 200a"}, - {0x01170000, "PowerShot A200"}, - {0x01180000, "PowerShot S330 / Digital IXUS 330 / IXY Digital 300a"}, - {0x01190000, "PowerShot G3"}, - {0x01210000, "PowerShot S45"}, - {0x01230000, "PowerShot SD100 / Digital IXUS II / IXY Digital 30"}, - {0x01240000, "PowerShot S230 / Digital IXUS v3 / IXY Digital 320"}, - {0x01250000, "PowerShot A70"}, - {0x01260000, "PowerShot A60"}, - {0x01270000, "PowerShot S400 / Digital IXUS 400 / IXY Digital 400"}, - {0x01290000, "PowerShot G5"}, - {0x01300000, "PowerShot A300"}, - {0x01310000, "PowerShot S50"}, - {0x01340000, "PowerShot A80"}, - {0x01350000, "PowerShot SD10 / Digital IXUS i / IXY Digital L"}, - {0x01360000, "PowerShot S1 IS"}, - {0x01370000, "PowerShot Pro1"}, - {0x01380000, "PowerShot S70"}, - {0x01390000, "PowerShot S60"}, - {0x01400000, "PowerShot G6"}, - {0x01410000, "PowerShot S500 / Digital IXUS 500 / IXY Digital 500"}, - {0x01420000, "PowerShot A75"}, - {0x01440000, "PowerShot SD110 / Digital IXUS IIs / IXY Digital 30a"}, - {0x01450000, "PowerShot A400"}, - {0x01470000, "PowerShot A310"}, - {0x01490000, "PowerShot A85"}, - {0x01520000, "PowerShot S410 / Digital IXUS 430 / IXY Digital 450"}, - {0x01530000, "PowerShot A95"}, - {0x01540000, "PowerShot SD300 / Digital IXUS 40 / IXY Digital 50"}, - {0x01550000, "PowerShot SD200 / Digital IXUS 30 / IXY Digital 40"}, - {0x01560000, "PowerShot A520"}, - {0x01570000, "PowerShot A510"}, - {0x01590000, "PowerShot SD20 / Digital IXUS i5 / IXY Digital L2"}, - {0x01640000, "PowerShot S2 IS"}, - {0x01650000, "PowerShot SD430 / Digital IXUS Wireless / IXY Digital Wireless"}, - {0x01660000, "PowerShot SD500 / Digital IXUS 700 / IXY Digital 600"}, - {0x01668000, "EOS D60"}, - {0x01700000, "PowerShot SD30 / Digital IXUS i Zoom / IXY Digital L3"}, - {0x01740000, "PowerShot A430"}, - {0x01750000, "PowerShot A410"}, - {0x01760000, "PowerShot S80"}, - {0x01780000, "PowerShot A620"}, - {0x01790000, "PowerShot A610"}, - {0x01800000, "PowerShot SD630 / Digital IXUS 65 / IXY Digital 80"}, - {0x01810000, "PowerShot SD450 / Digital IXUS 55 / IXY Digital 60"}, - {0x01820000, "PowerShot TX1"}, - {0x01870000, "PowerShot SD400 / Digital IXUS 50 / IXY Digital 55"}, - {0x01880000, "PowerShot A420"}, - {0x01890000, "PowerShot SD900 / Digital IXUS 900 Ti / IXY Digital 1000"}, - {0x01900000, "PowerShot SD550 / Digital IXUS 750 / IXY Digital 700"}, - {0x01920000, "PowerShot A700"}, - {0x01940000, "PowerShot SD700 IS / Digital IXUS 800 IS / IXY Digital 800 IS"}, - {0x01950000, "PowerShot S3 IS"}, - {0x01960000, "PowerShot A540"}, - {0x01970000, "PowerShot SD600 / Digital IXUS 60 / IXY Digital 70"}, - {0x01980000, "PowerShot G7"}, - {0x01990000, "PowerShot A530"}, - {0x02000000, "PowerShot SD800 IS / Digital IXUS 850 IS / IXY Digital 900 IS"}, - {0x02010000, "PowerShot SD40 / Digital IXUS i7 / IXY Digital L4"}, - {0x02020000, "PowerShot A710 IS"}, - {0x02030000, "PowerShot A640"}, - {0x02040000, "PowerShot A630"}, - {0x02090000, "PowerShot S5 IS"}, - {0x02100000, "PowerShot A460"}, - {0x02120000, "PowerShot SD850 IS / Digital IXUS 950 IS / IXY Digital 810 IS"}, - {0x02130000, "PowerShot A570 IS"}, - {0x02140000, "PowerShot A560"}, - {0x02150000, "PowerShot SD750 / Digital IXUS 75 / IXY Digital 90"}, - {0x02160000, "PowerShot SD1000 / Digital IXUS 70 / IXY Digital 10"}, - {0x02180000, "PowerShot A550"}, - {0x02190000, "PowerShot A450"}, - {0x02230000, "PowerShot G9"}, - {0x02240000, "PowerShot A650 IS"}, - {0x02260000, "PowerShot A720 IS"}, - {0x02290000, "PowerShot SX100 IS"}, - {0x02300000, "PowerShot SD950 IS / Digital IXUS 960 IS / IXY Digital 2000 IS"}, - {0x02310000, "PowerShot SD870 IS / Digital IXUS 860 IS / IXY Digital 910 IS"}, - {0x02320000, "PowerShot SD890 IS / Digital IXUS 970 IS / IXY Digital 820 IS"}, - {0x02360000, "PowerShot SD790 IS / Digital IXUS 90 IS / IXY Digital 95 IS"}, - {0x02370000, "PowerShot SD770 IS / Digital IXUS 85 IS / IXY Digital 25 IS"}, - {0x02380000, "PowerShot A590 IS"}, - {0x02390000, "PowerShot A580"}, - {0x02420000, "PowerShot A470"}, - {0x02430000, "PowerShot SD1100 IS / Digital IXUS 80 IS / IXY Digital 20 IS"}, - {0x02460000, "PowerShot SX1 IS"}, - {0x02470000, "PowerShot SX10 IS"}, - {0x02480000, "PowerShot A1000 IS"}, - {0x02490000, "PowerShot G10"}, - {0x02510000, "PowerShot A2000 IS"}, - {0x02520000, "PowerShot SX110 IS"}, - {0x02530000, "PowerShot SD990 IS / Digital IXUS 980 IS / IXY Digital 3000 IS"}, - {0x02540000, "PowerShot SD880 IS / Digital IXUS 870 IS / IXY Digital 920 IS"}, - {0x02550000, "PowerShot E1"}, - {0x02560000, "PowerShot D10"}, - {0x02570000, "PowerShot SD960 IS / Digital IXUS 110 IS / IXY Digital 510 IS"}, - {0x02580000, "PowerShot A2100 IS"}, - {0x02590000, "PowerShot A480"}, - {0x02600000, "PowerShot SX200 IS"}, - {0x02610000, "PowerShot SD970 IS / Digital IXUS 990 IS / IXY Digital 830 IS"}, - {0x02620000, "PowerShot SD780 IS / Digital IXUS 100 IS / IXY Digital 210 IS"}, - {0x02630000, "PowerShot A1100 IS"}, - {0x02640000, "PowerShot SD1200 IS / Digital IXUS 95 IS / IXY Digital 110 IS"}, - {0x02700000, "PowerShot G11"}, - {0x02710000, "PowerShot SX120 IS"}, - {0x02720000, "PowerShot S90"}, - {0x02750000, "PowerShot SX20 IS"}, - {0x02760000, "PowerShot SD980 IS / Digital IXUS 200 IS / IXY Digital 930 IS"}, - {0x02770000, "PowerShot SD940 IS / Digital IXUS 120 IS / IXY Digital 220 IS"}, - {0x02800000, "PowerShot A495"}, - {0x02810000, "PowerShot A490"}, - {0x02820000, "PowerShot A3100/A3150 IS"}, - {0x02830000, "PowerShot A3000 IS"}, - {0x02840000, "PowerShot SD1400 IS / IXUS 130 / IXY 400F"}, - {0x02850000, "PowerShot SD1300 IS / IXUS 105 / IXY 200F"}, - {0x02860000, "PowerShot SD3500 IS / IXUS 210 / IXY 10S"}, - {0x02870000, "PowerShot SX210 IS"}, - {0x02880000, "PowerShot SD4000 IS / IXUS 300 HS / IXY 30S"}, - {0x02890000, "PowerShot SD4500 IS / IXUS 1000 HS / IXY 50S"}, - {0x02920000, "PowerShot G12"}, - {0x02930000, "PowerShot SX30 IS"}, - {0x02940000, "PowerShot SX130 IS"}, - {0x02950000, "PowerShot S95"}, - {0x02980000, "PowerShot A3300 IS"}, - {0x02990000, "PowerShot A3200 IS"}, - {0x03000000, "PowerShot ELPH 500 HS / IXUS 310 HS / IXY 31S"}, - {0x03010000, "PowerShot Pro90 IS"}, - {0x03010001, "PowerShot A800"}, - {0x03020000, "PowerShot ELPH 100 HS / IXUS 115 HS / IXY 210F"}, - {0x03030000, "PowerShot SX230 HS"}, - {0x03040000, "PowerShot ELPH 300 HS / IXUS 220 HS / IXY 410F"}, - {0x03050000, "PowerShot A2200"}, - {0x03060000, "PowerShot A1200"}, - {0x03070000, "PowerShot SX220 HS"}, - {0x03080000, "PowerShot G1 X"}, - {0x03090000, "PowerShot SX150 IS"}, - {0x03100000, "PowerShot ELPH 510 HS / IXUS 1100 HS / IXY 51S"}, - {0x03110000, "PowerShot S100 (new)"}, - {0x03120000, "PowerShot ELPH 310 HS / IXUS 230 HS / IXY 600F"}, - {0x03130000, "PowerShot SX40 HS"}, - {0x03140000, "IXY 32S"}, - {0x03160000, "PowerShot A1300"}, - {0x03170000, "PowerShot A810"}, - {0x03180000, "PowerShot ELPH 320 HS / IXUS 240 HS / IXY 420F"}, - {0x03190000, "PowerShot ELPH 110 HS / IXUS 125 HS / IXY 220F"}, - {0x03200000, "PowerShot D20"}, - {0x03210000, "PowerShot A4000 IS"}, - {0x03220000, "PowerShot SX260 HS"}, - {0x03230000, "PowerShot SX240 HS"}, - {0x03240000, "PowerShot ELPH 530 HS / IXUS 510 HS / IXY 1"}, - {0x03250000, "PowerShot ELPH 520 HS / IXUS 500 HS / IXY 3"}, - {0x03260000, "PowerShot A3400 IS"}, - {0x03270000, "PowerShot A2400 IS"}, - {0x03280000, "PowerShot A2300"}, - {0x03320000, "PowerShot S100V"}, - {0x03330000, "PowerShot G15"}, - {0x03340000, "PowerShot SX50 HS"}, - {0x03350000, "PowerShot SX160 IS"}, - {0x03360000, "PowerShot S110 (new)"}, - {0x03370000, "PowerShot SX500 IS"}, - {0x03380000, "PowerShot N"}, - {0x03390000, "IXUS 245 HS / IXY 430F"}, - {0x03400000, "PowerShot SX280 HS"}, - {0x03410000, "PowerShot SX270 HS"}, - {0x03420000, "PowerShot A3500 IS"}, - {0x03430000, "PowerShot A2600"}, - {0x03440000, "PowerShot SX275 HS"}, - {0x03450000, "PowerShot A1400"}, - {0x03460000, "PowerShot ELPH 130 IS / IXUS 140 / IXY 110F"}, - {0x03470000, "PowerShot ELPH 115/120 IS / IXUS 132/135 / IXY 90F/100F"}, - {0x03490000, "PowerShot ELPH 330 HS / IXUS 255 HS / IXY 610F"}, - {0x03510000, "PowerShot A2500"}, - {0x03540000, "PowerShot G16"}, - {0x03550000, "PowerShot S120"}, - {0x03560000, "PowerShot SX170 IS"}, - {0x03580000, "PowerShot SX510 HS"}, - {0x03590000, "PowerShot S200 (new)"}, - {0x03600000, "IXY 620F"}, - {0x03610000, "PowerShot N100"}, - {0x03640000, "PowerShot G1 X Mark II"}, - {0x03650000, "PowerShot D30"}, - {0x03660000, "PowerShot SX700 HS"}, - {0x03670000, "PowerShot SX600 HS"}, - {0x03680000, "PowerShot ELPH 140 IS / IXUS 150 / IXY 130"}, - {0x03690000, "PowerShot ELPH 135 / IXUS 145 / IXY 120"}, - {0x03700000, "PowerShot ELPH 340 HS / IXUS 265 HS / IXY 630"}, - {0x03710000, "PowerShot ELPH 150 IS / IXUS 155 / IXY 140"}, - {0x03740000, "EOS M3"}, - {0x03750000, "PowerShot SX60 HS"}, - {0x03760000, "PowerShot SX520 HS"}, - {0x03770000, "PowerShot SX400 IS"}, - {0x03780000, "PowerShot G7 X"}, - {0x03790000, "PowerShot N2"}, - {0x03800000, "PowerShot SX530 HS"}, - {0x03820000, "PowerShot SX710 HS"}, - {0x03830000, "PowerShot SX610 HS"}, - {0x03840000, "EOS M10"}, - {0x03850000, "PowerShot G3 X"}, - {0x03860000, "PowerShot ELPH 165 HS / IXUS 165 / IXY 160"}, - {0x03870000, "PowerShot ELPH 160 / IXUS 160"}, - {0x03880000, "PowerShot ELPH 350 HS / IXUS 275 HS / IXY 640"}, - {0x03890000, "PowerShot ELPH 170 IS / IXUS 170"}, - {0x03910000, "PowerShot SX410 IS"}, - {0x03930000, "PowerShot G9 X"}, - {0x03940000, "EOS M5"}, - {0x03950000, "PowerShot G5 X"}, - {0x03970000, "PowerShot G7 X Mark II"}, - {0x03980000, "EOS M100"}, - {0x03990000, "PowerShot ELPH 360 HS / IXUS 285 HS / IXY 650"}, - {0x04010000, "PowerShot SX540 HS"}, - {0x04020000, "PowerShot SX420 IS"}, - {0x04030000, "PowerShot ELPH 190 IS / IXUS 180 / IXY 190"}, - {0x04040000, "PowerShot G1"}, - {0x04040001, "PowerShot ELPH 180 IS / IXUS 175 / IXY 180"}, - {0x04050000, "PowerShot SX720 HS"}, - {0x04060000, "PowerShot SX620 HS"}, - {0x04070000, "EOS M6"}, - {0x04100000, "PowerShot G9 X Mark II"}, - {0x04150000, "PowerShot ELPH 185 / IXUS 185 / IXY 200"}, - {0x04160000, "PowerShot SX430 IS"}, - {0x04170000, "PowerShot SX730 HS"}, - {0x04180000, "PowerShot G1 X Mark III"}, - {0x06040000, "PowerShot S100 / Digital IXUS / IXY Digital"}, - {0x4007d673, "DC19/DC21/DC22"}, - {0x4007d674, "XH A1"}, - {0x4007d675, "HV10"}, - {0x4007d676, "MD130/MD140/MD150/MD160/ZR850"}, - {0x4007d777, "DC50"}, - {0x4007d778, "HV20"}, - {0x4007d779, "DC211"}, - {0x4007d77a, "HG10"}, - {0x4007d77b, "HR10"}, - {0x4007d77d, "MD255/ZR950"}, - {0x4007d81c, "HF11"}, - {0x4007d878, "HV30"}, - {0x4007d87c, "XH A1S"}, - {0x4007d87e, "DC301/DC310/DC311/DC320/DC330"}, - {0x4007d87f, "FS100"}, - {0x4007d880, "HF10"}, - {0x4007d882, "HG20/HG21"}, - {0x4007d925, "HF21"}, - {0x4007d926, "HF S11"}, - {0x4007d978, "HV40"}, - {0x4007d987, "DC410/DC411/DC420"}, - {0x4007d988, "FS19/FS20/FS21/FS22/FS200"}, - {0x4007d989, "HF20/HF200"}, - {0x4007d98a, "HF S10/S100"}, - {0x4007da8e, "HF R10/R16/R17/R18/R100/R106"}, - {0x4007da8f, "HF M30/M31/M36/M300/M306"}, - {0x4007da90, "HF S20/S21/S200"}, - {0x4007da92, "FS31/FS36/FS37/FS300/FS305/FS306/FS307"}, - {0x4007dca0, "EOS C300"}, - {0x4007dda9, "HF G25"}, - {0x4007dfb4, "XC10"}, - {0x4007e1c3, "EOS C200"}, - {0x80000001, "EOS-1D"}, - {0x80000167, "EOS-1DS"}, - {0x80000168, "EOS 10D"}, - {0x80000169, "EOS-1D Mark III"}, - {0x80000170, "EOS Digital Rebel / 300D / Kiss Digital"}, - {0x80000174, "EOS-1D Mark II"}, - {0x80000175, "EOS 20D"}, - {0x80000176, "EOS Digital Rebel XSi / 450D / Kiss X2"}, - {0x80000188, "EOS-1Ds Mark II"}, - {0x80000189, "EOS Digital Rebel XT / 350D / Kiss Digital N"}, - {0x80000190, "EOS 40D"}, - {0x80000213, "EOS 5D"}, - {0x80000215, "EOS-1Ds Mark III"}, - {0x80000218, "EOS 5D Mark II"}, - {0x80000219, "WFT-E1"}, - {0x80000232, "EOS-1D Mark II N"}, - {0x80000234, "EOS 30D"}, - {0x80000236, "EOS Digital Rebel XTi / 400D / Kiss Digital X"}, - {0x80000241, "WFT-E2"}, - {0x80000246, "WFT-E3"}, - {0x80000250, "EOS 7D"}, - {0x80000252, "EOS Rebel T1i / 500D / Kiss X3"}, - {0x80000254, "EOS Rebel XS / 1000D / Kiss F"}, - {0x80000261, "EOS 50D"}, - {0x80000269, "EOS-1D X"}, - {0x80000270, "EOS Rebel T2i / 550D / Kiss X4"}, - {0x80000271, "WFT-E4"}, - {0x80000273, "WFT-E5"}, - {0x80000281, "EOS-1D Mark IV"}, - {0x80000285, "EOS 5D Mark III"}, - {0x80000286, "EOS Rebel T3i / 600D / Kiss X5"}, - {0x80000287, "EOS 60D"}, - {0x80000288, "EOS Rebel T3 / 1100D / Kiss X50"}, - {0x80000289, "EOS 7D Mark II"}, - {0x80000297, "WFT-E2 II"}, - {0x80000298, "WFT-E4 II"}, - {0x80000301, "EOS Rebel T4i / 650D / Kiss X6i"}, - {0x80000302, "EOS 6D"}, - {0x80000324, "EOS-1D C"}, - {0x80000325, "EOS 70D"}, - {0x80000326, "EOS Rebel T5i / 700D / Kiss X7i"}, - {0x80000327, "EOS Rebel T5 / 1200D / Kiss X70 / Hi"}, - {0x80000328, "EOS-1D X Mark II"}, - {0x80000331, "EOS M"}, - {0x80000346, "EOS Rebel SL1 / 100D / Kiss X7"}, - {0x80000347, "EOS Rebel T6s / 760D / 8000D"}, - {0x80000349, "EOS 5D Mark IV"}, - {0x80000350, "EOS 80D"}, - {0x80000355, "EOS M2"}, - {0x80000382, "EOS 5DS"}, - {0x80000393, "EOS Rebel T6i / 750D / Kiss X8i"}, - {0x80000401, "EOS 5DS R"}, - {0x80000404, "EOS Rebel T6 / 1300D / Kiss X80"}, - {0x80000405, "EOS Rebel T7i / 800D / Kiss X9i"}, - {0x80000406, "EOS 6D Mark II"}, - {0x80000408, "EOS 77D / 9000D"}, - {0x80000417, "EOS Rebel SL2 / 200D / Kiss X9"}, - {0x80000421, "EOS R5"}, - {0x80000422, "EOS Rebel T100 / 4000D / 3000D"}, - {0x80000424, "EOS R / Ra"}, - {0x80000428, "EOS-1D X Mark III"}, - {0x80000432, "EOS Rebel T7 / 2000D / 1500D / Kiss X90"}, - {0x80000433, "EOS RP"}, - {0x80000435, "EOS Rebel T8i / 850D / Kiss X10i"}, - {0x80000436, "EOS Rebel SL3 / 250D / 200D Mark II / Kiss X10"}, - {0x80000437, "EOS 90D"}, - {0x80000450, "EOS R3"}, - {0x80000453, "EOS R6"}, - {0x80000464, "EOS R7"}, - {0x80000465, "EOS R10"}, - {0x80000467, "PowerShot ZOOM"}, - {0x80000468, "EOS M50 Mark II / Kiss M2"}, - {0x80000480, "EOS R50"}, - {0x80000481, "EOS R6 Mark II"}, - {0x80000487, "EOS R8"}, - {0x80000520, "EOS D2000C"}, - {0x80000560, "EOS D6000C"}}; +constexpr TagDetails canonModelId[] = { + {0x00000412, "EOS M50 / Kiss M"}, + {0x00000801, "PowerShot SX740 HS"}, + {0x00000804, "Powershot G5 X Mark II"}, + {0x00000805, "PowerShot SX70 HS"}, + {0x00000808, "PowerShot G7 X Mark III"}, + {0x00000811, "EOS M6 Mark II"}, + {0x00000812, "EOS M200"}, + {0x01010000, "PowerShot A30"}, + {0x01040000, "PowerShot S300 / Digital IXUS 300 / IXY Digital 300"}, + {0x01060000, "PowerShot A20"}, + {0x01080000, "PowerShot A10"}, + {0x01090000, "PowerShot S110 / Digital IXUS v / IXY Digital 200"}, + {0x01100000, "PowerShot G2"}, + {0x01110000, "PowerShot S40"}, + {0x01120000, "PowerShot S30"}, + {0x01130000, "PowerShot A40"}, + {0x01140000, "EOS D30"}, + {0x01150000, "PowerShot A100"}, + {0x01160000, "PowerShot S200 / Digital IXUS v2 / IXY Digital 200a"}, + {0x01170000, "PowerShot A200"}, + {0x01180000, "PowerShot S330 / Digital IXUS 330 / IXY Digital 300a"}, + {0x01190000, "PowerShot G3"}, + {0x01210000, "PowerShot S45"}, + {0x01230000, "PowerShot SD100 / Digital IXUS II / IXY Digital 30"}, + {0x01240000, "PowerShot S230 / Digital IXUS v3 / IXY Digital 320"}, + {0x01250000, "PowerShot A70"}, + {0x01260000, "PowerShot A60"}, + {0x01270000, "PowerShot S400 / Digital IXUS 400 / IXY Digital 400"}, + {0x01290000, "PowerShot G5"}, + {0x01300000, "PowerShot A300"}, + {0x01310000, "PowerShot S50"}, + {0x01340000, "PowerShot A80"}, + {0x01350000, "PowerShot SD10 / Digital IXUS i / IXY Digital L"}, + {0x01360000, "PowerShot S1 IS"}, + {0x01370000, "PowerShot Pro1"}, + {0x01380000, "PowerShot S70"}, + {0x01390000, "PowerShot S60"}, + {0x01400000, "PowerShot G6"}, + {0x01410000, "PowerShot S500 / Digital IXUS 500 / IXY Digital 500"}, + {0x01420000, "PowerShot A75"}, + {0x01440000, "PowerShot SD110 / Digital IXUS IIs / IXY Digital 30a"}, + {0x01450000, "PowerShot A400"}, + {0x01470000, "PowerShot A310"}, + {0x01490000, "PowerShot A85"}, + {0x01520000, "PowerShot S410 / Digital IXUS 430 / IXY Digital 450"}, + {0x01530000, "PowerShot A95"}, + {0x01540000, "PowerShot SD300 / Digital IXUS 40 / IXY Digital 50"}, + {0x01550000, "PowerShot SD200 / Digital IXUS 30 / IXY Digital 40"}, + {0x01560000, "PowerShot A520"}, + {0x01570000, "PowerShot A510"}, + {0x01590000, "PowerShot SD20 / Digital IXUS i5 / IXY Digital L2"}, + {0x01640000, "PowerShot S2 IS"}, + {0x01650000, "PowerShot SD430 / Digital IXUS Wireless / IXY Digital Wireless"}, + {0x01660000, "PowerShot SD500 / Digital IXUS 700 / IXY Digital 600"}, + {0x01668000, "EOS D60"}, + {0x01700000, "PowerShot SD30 / Digital IXUS i Zoom / IXY Digital L3"}, + {0x01740000, "PowerShot A430"}, + {0x01750000, "PowerShot A410"}, + {0x01760000, "PowerShot S80"}, + {0x01780000, "PowerShot A620"}, + {0x01790000, "PowerShot A610"}, + {0x01800000, "PowerShot SD630 / Digital IXUS 65 / IXY Digital 80"}, + {0x01810000, "PowerShot SD450 / Digital IXUS 55 / IXY Digital 60"}, + {0x01820000, "PowerShot TX1"}, + {0x01870000, "PowerShot SD400 / Digital IXUS 50 / IXY Digital 55"}, + {0x01880000, "PowerShot A420"}, + {0x01890000, "PowerShot SD900 / Digital IXUS 900 Ti / IXY Digital 1000"}, + {0x01900000, "PowerShot SD550 / Digital IXUS 750 / IXY Digital 700"}, + {0x01920000, "PowerShot A700"}, + {0x01940000, "PowerShot SD700 IS / Digital IXUS 800 IS / IXY Digital 800 IS"}, + {0x01950000, "PowerShot S3 IS"}, + {0x01960000, "PowerShot A540"}, + {0x01970000, "PowerShot SD600 / Digital IXUS 60 / IXY Digital 70"}, + {0x01980000, "PowerShot G7"}, + {0x01990000, "PowerShot A530"}, + {0x02000000, "PowerShot SD800 IS / Digital IXUS 850 IS / IXY Digital 900 IS"}, + {0x02010000, "PowerShot SD40 / Digital IXUS i7 / IXY Digital L4"}, + {0x02020000, "PowerShot A710 IS"}, + {0x02030000, "PowerShot A640"}, + {0x02040000, "PowerShot A630"}, + {0x02090000, "PowerShot S5 IS"}, + {0x02100000, "PowerShot A460"}, + {0x02120000, "PowerShot SD850 IS / Digital IXUS 950 IS / IXY Digital 810 IS"}, + {0x02130000, "PowerShot A570 IS"}, + {0x02140000, "PowerShot A560"}, + {0x02150000, "PowerShot SD750 / Digital IXUS 75 / IXY Digital 90"}, + {0x02160000, "PowerShot SD1000 / Digital IXUS 70 / IXY Digital 10"}, + {0x02180000, "PowerShot A550"}, + {0x02190000, "PowerShot A450"}, + {0x02230000, "PowerShot G9"}, + {0x02240000, "PowerShot A650 IS"}, + {0x02260000, "PowerShot A720 IS"}, + {0x02290000, "PowerShot SX100 IS"}, + {0x02300000, "PowerShot SD950 IS / Digital IXUS 960 IS / IXY Digital 2000 IS"}, + {0x02310000, "PowerShot SD870 IS / Digital IXUS 860 IS / IXY Digital 910 IS"}, + {0x02320000, "PowerShot SD890 IS / Digital IXUS 970 IS / IXY Digital 820 IS"}, + {0x02360000, "PowerShot SD790 IS / Digital IXUS 90 IS / IXY Digital 95 IS"}, + {0x02370000, "PowerShot SD770 IS / Digital IXUS 85 IS / IXY Digital 25 IS"}, + {0x02380000, "PowerShot A590 IS"}, + {0x02390000, "PowerShot A580"}, + {0x02420000, "PowerShot A470"}, + {0x02430000, "PowerShot SD1100 IS / Digital IXUS 80 IS / IXY Digital 20 IS"}, + {0x02460000, "PowerShot SX1 IS"}, + {0x02470000, "PowerShot SX10 IS"}, + {0x02480000, "PowerShot A1000 IS"}, + {0x02490000, "PowerShot G10"}, + {0x02510000, "PowerShot A2000 IS"}, + {0x02520000, "PowerShot SX110 IS"}, + {0x02530000, "PowerShot SD990 IS / Digital IXUS 980 IS / IXY Digital 3000 IS"}, + {0x02540000, "PowerShot SD880 IS / Digital IXUS 870 IS / IXY Digital 920 IS"}, + {0x02550000, "PowerShot E1"}, + {0x02560000, "PowerShot D10"}, + {0x02570000, "PowerShot SD960 IS / Digital IXUS 110 IS / IXY Digital 510 IS"}, + {0x02580000, "PowerShot A2100 IS"}, + {0x02590000, "PowerShot A480"}, + {0x02600000, "PowerShot SX200 IS"}, + {0x02610000, "PowerShot SD970 IS / Digital IXUS 990 IS / IXY Digital 830 IS"}, + {0x02620000, "PowerShot SD780 IS / Digital IXUS 100 IS / IXY Digital 210 IS"}, + {0x02630000, "PowerShot A1100 IS"}, + {0x02640000, "PowerShot SD1200 IS / Digital IXUS 95 IS / IXY Digital 110 IS"}, + {0x02700000, "PowerShot G11"}, + {0x02710000, "PowerShot SX120 IS"}, + {0x02720000, "PowerShot S90"}, + {0x02750000, "PowerShot SX20 IS"}, + {0x02760000, "PowerShot SD980 IS / Digital IXUS 200 IS / IXY Digital 930 IS"}, + {0x02770000, "PowerShot SD940 IS / Digital IXUS 120 IS / IXY Digital 220 IS"}, + {0x02800000, "PowerShot A495"}, + {0x02810000, "PowerShot A490"}, + {0x02820000, "PowerShot A3100/A3150 IS"}, + {0x02830000, "PowerShot A3000 IS"}, + {0x02840000, "PowerShot SD1400 IS / IXUS 130 / IXY 400F"}, + {0x02850000, "PowerShot SD1300 IS / IXUS 105 / IXY 200F"}, + {0x02860000, "PowerShot SD3500 IS / IXUS 210 / IXY 10S"}, + {0x02870000, "PowerShot SX210 IS"}, + {0x02880000, "PowerShot SD4000 IS / IXUS 300 HS / IXY 30S"}, + {0x02890000, "PowerShot SD4500 IS / IXUS 1000 HS / IXY 50S"}, + {0x02920000, "PowerShot G12"}, + {0x02930000, "PowerShot SX30 IS"}, + {0x02940000, "PowerShot SX130 IS"}, + {0x02950000, "PowerShot S95"}, + {0x02980000, "PowerShot A3300 IS"}, + {0x02990000, "PowerShot A3200 IS"}, + {0x03000000, "PowerShot ELPH 500 HS / IXUS 310 HS / IXY 31S"}, + {0x03010000, "PowerShot Pro90 IS"}, + {0x03010001, "PowerShot A800"}, + {0x03020000, "PowerShot ELPH 100 HS / IXUS 115 HS / IXY 210F"}, + {0x03030000, "PowerShot SX230 HS"}, + {0x03040000, "PowerShot ELPH 300 HS / IXUS 220 HS / IXY 410F"}, + {0x03050000, "PowerShot A2200"}, + {0x03060000, "PowerShot A1200"}, + {0x03070000, "PowerShot SX220 HS"}, + {0x03080000, "PowerShot G1 X"}, + {0x03090000, "PowerShot SX150 IS"}, + {0x03100000, "PowerShot ELPH 510 HS / IXUS 1100 HS / IXY 51S"}, + {0x03110000, "PowerShot S100 (new)"}, + {0x03120000, "PowerShot ELPH 310 HS / IXUS 230 HS / IXY 600F"}, + {0x03130000, "PowerShot SX40 HS"}, + {0x03140000, "IXY 32S"}, + {0x03160000, "PowerShot A1300"}, + {0x03170000, "PowerShot A810"}, + {0x03180000, "PowerShot ELPH 320 HS / IXUS 240 HS / IXY 420F"}, + {0x03190000, "PowerShot ELPH 110 HS / IXUS 125 HS / IXY 220F"}, + {0x03200000, "PowerShot D20"}, + {0x03210000, "PowerShot A4000 IS"}, + {0x03220000, "PowerShot SX260 HS"}, + {0x03230000, "PowerShot SX240 HS"}, + {0x03240000, "PowerShot ELPH 530 HS / IXUS 510 HS / IXY 1"}, + {0x03250000, "PowerShot ELPH 520 HS / IXUS 500 HS / IXY 3"}, + {0x03260000, "PowerShot A3400 IS"}, + {0x03270000, "PowerShot A2400 IS"}, + {0x03280000, "PowerShot A2300"}, + {0x03320000, "PowerShot S100V"}, + {0x03330000, "PowerShot G15"}, + {0x03340000, "PowerShot SX50 HS"}, + {0x03350000, "PowerShot SX160 IS"}, + {0x03360000, "PowerShot S110 (new)"}, + {0x03370000, "PowerShot SX500 IS"}, + {0x03380000, "PowerShot N"}, + {0x03390000, "IXUS 245 HS / IXY 430F"}, + {0x03400000, "PowerShot SX280 HS"}, + {0x03410000, "PowerShot SX270 HS"}, + {0x03420000, "PowerShot A3500 IS"}, + {0x03430000, "PowerShot A2600"}, + {0x03440000, "PowerShot SX275 HS"}, + {0x03450000, "PowerShot A1400"}, + {0x03460000, "PowerShot ELPH 130 IS / IXUS 140 / IXY 110F"}, + {0x03470000, "PowerShot ELPH 115/120 IS / IXUS 132/135 / IXY 90F/100F"}, + {0x03490000, "PowerShot ELPH 330 HS / IXUS 255 HS / IXY 610F"}, + {0x03510000, "PowerShot A2500"}, + {0x03540000, "PowerShot G16"}, + {0x03550000, "PowerShot S120"}, + {0x03560000, "PowerShot SX170 IS"}, + {0x03580000, "PowerShot SX510 HS"}, + {0x03590000, "PowerShot S200 (new)"}, + {0x03600000, "IXY 620F"}, + {0x03610000, "PowerShot N100"}, + {0x03640000, "PowerShot G1 X Mark II"}, + {0x03650000, "PowerShot D30"}, + {0x03660000, "PowerShot SX700 HS"}, + {0x03670000, "PowerShot SX600 HS"}, + {0x03680000, "PowerShot ELPH 140 IS / IXUS 150 / IXY 130"}, + {0x03690000, "PowerShot ELPH 135 / IXUS 145 / IXY 120"}, + {0x03700000, "PowerShot ELPH 340 HS / IXUS 265 HS / IXY 630"}, + {0x03710000, "PowerShot ELPH 150 IS / IXUS 155 / IXY 140"}, + {0x03740000, "EOS M3"}, + {0x03750000, "PowerShot SX60 HS"}, + {0x03760000, "PowerShot SX520 HS"}, + {0x03770000, "PowerShot SX400 IS"}, + {0x03780000, "PowerShot G7 X"}, + {0x03790000, "PowerShot N2"}, + {0x03800000, "PowerShot SX530 HS"}, + {0x03820000, "PowerShot SX710 HS"}, + {0x03830000, "PowerShot SX610 HS"}, + {0x03840000, "EOS M10"}, + {0x03850000, "PowerShot G3 X"}, + {0x03860000, "PowerShot ELPH 165 HS / IXUS 165 / IXY 160"}, + {0x03870000, "PowerShot ELPH 160 / IXUS 160"}, + {0x03880000, "PowerShot ELPH 350 HS / IXUS 275 HS / IXY 640"}, + {0x03890000, "PowerShot ELPH 170 IS / IXUS 170"}, + {0x03910000, "PowerShot SX410 IS"}, + {0x03930000, "PowerShot G9 X"}, + {0x03940000, "EOS M5"}, + {0x03950000, "PowerShot G5 X"}, + {0x03970000, "PowerShot G7 X Mark II"}, + {0x03980000, "EOS M100"}, + {0x03990000, "PowerShot ELPH 360 HS / IXUS 285 HS / IXY 650"}, + {0x04010000, "PowerShot SX540 HS"}, + {0x04020000, "PowerShot SX420 IS"}, + {0x04030000, "PowerShot ELPH 190 IS / IXUS 180 / IXY 190"}, + {0x04040000, "PowerShot G1"}, + {0x04040001, "PowerShot ELPH 180 IS / IXUS 175 / IXY 180"}, + {0x04050000, "PowerShot SX720 HS"}, + {0x04060000, "PowerShot SX620 HS"}, + {0x04070000, "EOS M6"}, + {0x04100000, "PowerShot G9 X Mark II"}, + {0x04150000, "PowerShot ELPH 185 / IXUS 185 / IXY 200"}, + {0x04160000, "PowerShot SX430 IS"}, + {0x04170000, "PowerShot SX730 HS"}, + {0x04180000, "PowerShot G1 X Mark III"}, + {0x06040000, "PowerShot S100 / Digital IXUS / IXY Digital"}, + {0x4007d673, "DC19/DC21/DC22"}, + {0x4007d674, "XH A1"}, + {0x4007d675, "HV10"}, + {0x4007d676, "MD130/MD140/MD150/MD160/ZR850"}, + {0x4007d777, "DC50"}, + {0x4007d778, "HV20"}, + {0x4007d779, "DC211"}, + {0x4007d77a, "HG10"}, + {0x4007d77b, "HR10"}, + {0x4007d77d, "MD255/ZR950"}, + {0x4007d81c, "HF11"}, + {0x4007d878, "HV30"}, + {0x4007d87c, "XH A1S"}, + {0x4007d87e, "DC301/DC310/DC311/DC320/DC330"}, + {0x4007d87f, "FS100"}, + {0x4007d880, "HF10"}, + {0x4007d882, "HG20/HG21"}, + {0x4007d925, "HF21"}, + {0x4007d926, "HF S11"}, + {0x4007d978, "HV40"}, + {0x4007d987, "DC410/DC411/DC420"}, + {0x4007d988, "FS19/FS20/FS21/FS22/FS200"}, + {0x4007d989, "HF20/HF200"}, + {0x4007d98a, "HF S10/S100"}, + {0x4007da8e, "HF R10/R16/R17/R18/R100/R106"}, + {0x4007da8f, "HF M30/M31/M36/M300/M306"}, + {0x4007da90, "HF S20/S21/S200"}, + {0x4007da92, "FS31/FS36/FS37/FS300/FS305/FS306/FS307"}, + {0x4007dca0, "EOS C300"}, + {0x4007dda9, "HF G25"}, + {0x4007dfb4, "XC10"}, + {0x4007e1c3, "EOS C200"}, + {0x80000001, "EOS-1D"}, + {0x80000167, "EOS-1DS"}, + {0x80000168, "EOS 10D"}, + {0x80000169, "EOS-1D Mark III"}, + {0x80000170, "EOS Digital Rebel / 300D / Kiss Digital"}, + {0x80000174, "EOS-1D Mark II"}, + {0x80000175, "EOS 20D"}, + {0x80000176, "EOS Digital Rebel XSi / 450D / Kiss X2"}, + {0x80000188, "EOS-1Ds Mark II"}, + {0x80000189, "EOS Digital Rebel XT / 350D / Kiss Digital N"}, + {0x80000190, "EOS 40D"}, + {0x80000213, "EOS 5D"}, + {0x80000215, "EOS-1Ds Mark III"}, + {0x80000218, "EOS 5D Mark II"}, + {0x80000219, "WFT-E1"}, + {0x80000232, "EOS-1D Mark II N"}, + {0x80000234, "EOS 30D"}, + {0x80000236, "EOS Digital Rebel XTi / 400D / Kiss Digital X"}, + {0x80000241, "WFT-E2"}, + {0x80000246, "WFT-E3"}, + {0x80000250, "EOS 7D"}, + {0x80000252, "EOS Rebel T1i / 500D / Kiss X3"}, + {0x80000254, "EOS Rebel XS / 1000D / Kiss F"}, + {0x80000261, "EOS 50D"}, + {0x80000269, "EOS-1D X"}, + {0x80000270, "EOS Rebel T2i / 550D / Kiss X4"}, + {0x80000271, "WFT-E4"}, + {0x80000273, "WFT-E5"}, + {0x80000281, "EOS-1D Mark IV"}, + {0x80000285, "EOS 5D Mark III"}, + {0x80000286, "EOS Rebel T3i / 600D / Kiss X5"}, + {0x80000287, "EOS 60D"}, + {0x80000288, "EOS Rebel T3 / 1100D / Kiss X50"}, + {0x80000289, "EOS 7D Mark II"}, + {0x80000297, "WFT-E2 II"}, + {0x80000298, "WFT-E4 II"}, + {0x80000301, "EOS Rebel T4i / 650D / Kiss X6i"}, + {0x80000302, "EOS 6D"}, + {0x80000324, "EOS-1D C"}, + {0x80000325, "EOS 70D"}, + {0x80000326, "EOS Rebel T5i / 700D / Kiss X7i"}, + {0x80000327, "EOS Rebel T5 / 1200D / Kiss X70 / Hi"}, + {0x80000328, "EOS-1D X Mark II"}, + {0x80000331, "EOS M"}, + {0x80000346, "EOS Rebel SL1 / 100D / Kiss X7"}, + {0x80000347, "EOS Rebel T6s / 760D / 8000D"}, + {0x80000349, "EOS 5D Mark IV"}, + {0x80000350, "EOS 80D"}, + {0x80000355, "EOS M2"}, + {0x80000382, "EOS 5DS"}, + {0x80000393, "EOS Rebel T6i / 750D / Kiss X8i"}, + {0x80000401, "EOS 5DS R"}, + {0x80000404, "EOS Rebel T6 / 1300D / Kiss X80"}, + {0x80000405, "EOS Rebel T7i / 800D / Kiss X9i"}, + {0x80000406, "EOS 6D Mark II"}, + {0x80000408, "EOS 77D / 9000D"}, + {0x80000417, "EOS Rebel SL2 / 200D / Kiss X9"}, + {0x80000421, "EOS R5"}, + {0x80000422, "EOS Rebel T100 / 4000D / 3000D"}, + {0x80000424, "EOS R / Ra"}, + {0x80000428, "EOS-1D X Mark III"}, + {0x80000432, "EOS Rebel T7 / 2000D / 1500D / Kiss X90"}, + {0x80000433, "EOS RP"}, + {0x80000435, "EOS Rebel T8i / 850D / Kiss X10i"}, + {0x80000436, "EOS Rebel SL3 / 250D / 200D Mark II / Kiss X10"}, + {0x80000437, "EOS 90D"}, + {0x80000450, "EOS R3"}, + {0x80000453, "EOS R6"}, + {0x80000464, "EOS R7"}, + {0x80000465, "EOS R10"}, + {0x80000467, "PowerShot ZOOM"}, + {0x80000468, "EOS M50 Mark II / Kiss M2"}, + {0x80000480, "EOS R50"}, + {0x80000481, "EOS R6 Mark II"}, + {0x80000487, "EOS R8"}, + {0x80000520, "EOS D2000C"}, + {0x80000560, "EOS D6000C"}, +}; //! SerialNumberFormat, tag 0x0015 constexpr TagDetails canonSerialNumberFormat[] = { @@ -393,15 +398,24 @@ constexpr TagDetails canonSerialNumberFormat[] = { }; //! SuperMacro, tag 0x001a -constexpr TagDetails canonSuperMacro[] = {{0, N_("Off")}, {1, N_("On (1)")}, {2, N_("On (2)")}}; +constexpr TagDetails canonSuperMacro[] = { + {0, N_("Off")}, + {1, N_("On (1)")}, + {2, N_("On (2)")}, +}; // DateStampMode, tag 0x001c -constexpr TagDetails canonDateStampMode[] = {{0, N_("Off")}, {1, N_("Date")}, {2, N_("Date & Time")}}; +constexpr TagDetails canonDateStampMode[] = { + {0, N_("Off")}, + {1, N_("Date")}, + {2, N_("Date & Time")}, +}; // Categories, tag 0x0023 [[maybe_unused]] constexpr TagDetails canonCategories[] = { {0x0001, N_("People")}, {0x0002, N_("Scenery")}, {0x0004, N_("Events")}, {0x0008, N_("User 1")}, - {0x0016, N_("User 2")}, {0x0032, N_("User 3")}, {0x0064, N_("To Do")}}; + {0x0016, N_("User 2")}, {0x0032, N_("User 3")}, {0x0064, N_("To Do")}, +}; //! PictureStyle Values constexpr TagDetails canonPictureStyle[] = { @@ -410,23 +424,30 @@ constexpr TagDetails canonPictureStyle[] = { {0x21, N_("User Def. 1")}, {0x22, N_("User Def. 2")}, {0x23, N_("User Def. 3")}, {0x41, N_("PC 1")}, {0x42, N_("PC 2")}, {0x43, N_("PC 3")}, {0x81, N_("Standard")}, {0x82, N_("Portrait")}, {0x83, N_("Landscape")}, {0x84, N_("Neutral")}, {0x85, N_("Faithful")}, {0x86, N_("Monochrome")}, - {0x87, N_("Auto")}, {0x88, N_("Fine Detail")}}; + {0x87, N_("Auto")}, {0x88, N_("Fine Detail")}, +}; //! WhiteBalance, multiple tags -constexpr TagDetails canonSiWhiteBalance[] = {{0, N_("Auto")}, {1, N_("Daylight")}, - {2, N_("Cloudy")}, {3, N_("Tungsten")}, - {4, N_("Fluorescent")}, {5, N_("Flash")}, - {6, N_("Custom")}, {7, N_("Black & White")}, - {8, N_("Shade")}, {9, N_("Manual Temperature (Kelvin)")}, - {10, N_("PC Set 1")}, {11, N_("PC Set 2")}, - {12, N_("PC Set 3")}, {14, N_("Daylight Fluorescent")}, - {15, N_("Custom 1")}, {16, N_("Custom 2")}, - {17, N_("Underwater")}, {18, N_("Custom 3")}, - {19, N_("Custom 3")}, {20, N_("PC Set 4")}, - {21, N_("PC Set 5")}, {23, N_("Auto (ambience priority)")}}; +constexpr TagDetails canonSiWhiteBalance[] = { + {0, N_("Auto")}, {1, N_("Daylight")}, + {2, N_("Cloudy")}, {3, N_("Tungsten")}, + {4, N_("Fluorescent")}, {5, N_("Flash")}, + {6, N_("Custom")}, {7, N_("Black & White")}, + {8, N_("Shade")}, {9, N_("Manual Temperature (Kelvin)")}, + {10, N_("PC Set 1")}, {11, N_("PC Set 2")}, + {12, N_("PC Set 3")}, {14, N_("Daylight Fluorescent")}, + {15, N_("Custom 1")}, {16, N_("Custom 2")}, + {17, N_("Underwater")}, {18, N_("Custom 3")}, + {19, N_("Custom 3")}, {20, N_("PC Set 4")}, + {21, N_("PC Set 5")}, {23, N_("Auto (ambience priority)")}, +}; //! ColorSpace, tag 0x00b4 -constexpr TagDetails canonColorSpace[] = {{1, N_("sRGB")}, {2, N_("Adobe RGB")}, {65535, N_("n/a")}}; +constexpr TagDetails canonColorSpace[] = { + {1, N_("sRGB")}, + {2, N_("Adobe RGB")}, + {65535, N_("n/a")}, +}; //! Canon AF Area Mode, tag 0x2601 constexpr TagDetails canonAFAreaMode[] = { @@ -687,7 +708,8 @@ constexpr TagDetails canonMyColors[] = { {0, N_("Off")}, {1, N_("Positive Film")}, {2, N_("Light Skin Tone")}, {3, N_("Dark Skin Tone")}, {4, N_("Vivid Blue")}, {5, N_("Vivid Green")}, {6, N_("Vivid Red")}, {7, N_("Color Accent")}, {8, N_("Color Swap")}, {9, N_("Custom")}, {12, N_("Vivid")}, {13, N_("Neutral")}, - {14, N_("Sepia")}, {15, N_("B&W")}}; + {14, N_("Sepia")}, {15, N_("B&W")}, +}; // Canon My Colors Info Tag constexpr TagInfo CanonMakerNote::tagInfoMc_[] = { @@ -742,7 +764,11 @@ const TagInfo* CanonMakerNote::tagListFcd2() { } // Canon ContrastInfo, tag 0x001d -constexpr TagDetails canonContrastInfo[] = {{0x0, N_("Off")}, {0x8, N_("On")}, {0xfff, N_("n/a")}}; +constexpr TagDetails canonContrastInfo[] = { + {0x0, N_("Off")}, + {0x8, N_("On")}, + {0xfff, N_("n/a")}, +}; // Canon Contrast Info Tag constexpr TagInfo CanonMakerNote::tagInfoCo_[] = { @@ -862,11 +888,16 @@ const TagInfo* CanonMakerNote::tagListFl() { } // Canon Modified ToneCurve Info, tag 0x0001 -constexpr TagDetails canonModifiedToneCurve[] = {{0, N_("Standard")}, {1, N_("Manual")}, {2, N_("Custom")}}; +constexpr TagDetails canonModifiedToneCurve[] = { + {0, N_("Standard")}, + {1, N_("Manual")}, + {2, N_("Custom")}, +}; // Canon Modified Sharpness Freq Info, tag 0x0002 -constexpr TagDetails canonModifiedSharpnessFreq[] = {{0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")}, - {3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")}}; +constexpr TagDetails canonModifiedSharpnessFreq[] = { + {0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")}, {3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")}, +}; // Canon ModifiedInfo Tag constexpr TagInfo CanonMakerNote::tagInfoMo_[] = { @@ -900,8 +931,9 @@ const TagInfo* CanonMakerNote::tagListMo() { // Canon Preview Quality Info, tag 0x0001 constexpr TagDetails canonPreviewQuality[] = { - {-1, N_("n/a")}, {1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")}, {4, N_("RAW")}, - {5, N_("Superfine")}, {7, N_("CRAW")}, {130, N_("Normal Movie")}, {131, N_("Movie (2)")}}; + {-1, N_("n/a")}, {1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")}, {4, N_("RAW")}, + {5, N_("Superfine")}, {7, N_("CRAW")}, {130, N_("Normal Movie")}, {131, N_("Movie (2)")}, +}; // Canon Preview Image Info Tag constexpr TagInfo CanonMakerNote::tagInfoPreI_[] = { @@ -937,7 +969,10 @@ const TagInfo* CanonMakerNote::tagListCi() { // Canon AFMicroAdjMode Quality Info, tag 0x0001 constexpr TagDetails canonAFMicroAdjMode[] = { - {0, N_("Disable")}, {1, N_("Adjust all by the same amount")}, {2, N_("Adjust by lens")}}; + {0, N_("Disable")}, + {1, N_("Adjust all by the same amount")}, + {2, N_("Adjust by lens")}, +}; // Canon AFMicroAdj Info Tag constexpr TagInfo CanonMakerNote::tagInfoAfMiAdj_[] = { @@ -946,7 +981,8 @@ constexpr TagInfo CanonMakerNote::tagInfoAfMiAdj_[] = { {0x0002, "AFMicroAdjValue", N_("AF Micro Adj Value"), N_("AF Micro Adj Value"), IfdId::canonAfMiAdjId, SectionId::makerTags, signedRational, -1, printValue}, {0xffff, "(UnknownCanonAFMicroAdjTag)", "(UnknownCanonAFMicroAdjTag)", N_("Unknown Canon AFMicroAdj tag"), - IfdId::canonAfMiAdjId, SectionId::makerTags, signedShort, 1, printValue}}; + IfdId::canonAfMiAdjId, SectionId::makerTags, signedShort, 1, printValue}, +}; const TagInfo* CanonMakerNote::tagListAfMiAdj() { return tagInfoAfMiAdj_; @@ -996,14 +1032,26 @@ const TagInfo* CanonMakerNote::tagListVigCor2() { // Canon AutoLightingOptimizer, tag 0x0002 constexpr TagDetails canonAutoLightingOptimizer[] = { - {0, N_("Standard")}, {1, N_("Low")}, {2, N_("Strong")}, {3, N_("Off")}}; + {0, N_("Standard")}, + {1, N_("Low")}, + {2, N_("Strong")}, + {3, N_("Off")}, +}; // Canon HighISONoiseReduction, tag 0x0004 -constexpr TagDetails canonLongExposureNoiseReduction[] = {{0, N_("Off")}, {1, N_("Auto")}, {2, N_("On")}}; +constexpr TagDetails canonLongExposureNoiseReduction[] = { + {0, N_("Off")}, + {1, N_("Auto")}, + {2, N_("On")}, +}; // Canon HighISONoiseReduction, tag 0x0005 constexpr TagDetails canonHighISONoiseReduction[] = { - {0, N_("Standard")}, {1, N_("Low")}, {2, N_("Strong")}, {3, N_("off")}}; + {0, N_("Standard")}, + {1, N_("Low")}, + {2, N_("Strong")}, + {3, N_("off")}, +}; // Canon LightingOpt Tag constexpr TagInfo CanonMakerNote::tagInfoLiOp_[] = { @@ -1039,9 +1087,10 @@ const TagInfo* CanonMakerNote::tagListLe() { } // Canon AmbienceSelection, tag 0x0001 -constexpr TagDetails canonAmbienceSelection[] = {{0, N_("Standard")}, {1, N_("Vivid")}, {2, N_("Warm")}, - {3, N_("Soft")}, {4, N_("Cool")}, {5, N_("Intense")}, - {6, N_("Brighter")}, {7, N_("Darker")}, {8, N_("Monochrome")}}; +constexpr TagDetails canonAmbienceSelection[] = { + {0, N_("Standard")}, {1, N_("Vivid")}, {2, N_("Warm")}, {3, N_("Soft")}, {4, N_("Cool")}, + {5, N_("Intense")}, {6, N_("Brighter")}, {7, N_("Darker")}, {8, N_("Monochrome")}, +}; // Canon Ambience Tag constexpr TagInfo CanonMakerNote::tagInfoAm_[] = { @@ -1056,11 +1105,19 @@ const TagInfo* CanonMakerNote::tagListAm() { } // Canon MultiExposure, tag 0x0001 -constexpr TagDetails canonMultiExposure[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("On (RAW)")}}; +constexpr TagDetails canonMultiExposure[] = { + {0, N_("Off")}, + {1, N_("On")}, + {2, N_("On (RAW)")}, +}; // Canon MultiExposureControl, tag 0x0001 constexpr TagDetails canonMultiExposureControl[] = { - {0, N_("Additive")}, {1, N_("Average")}, {2, N_("Bright (comparative)")}, {3, N_("Dark (comparative)")}}; + {0, N_("Additive")}, + {1, N_("Average")}, + {2, N_("Bright (comparative)")}, + {3, N_("Dark (comparative)")}, +}; // Canon MultiExp Tag constexpr TagInfo CanonMakerNote::tagInfoMe_[] = { @@ -1079,10 +1136,15 @@ const TagInfo* CanonMakerNote::tagListMe() { } // Canon FilterInfo, tag 0x0001 -constexpr TagDetails canonFilterInfo[] = {{-1, N_("Off")}}; +constexpr TagDetails canonFilterInfo[] = { + {-1, N_("Off")}, +}; // Canon MiniatureFilterOrientation, tag 0x0001 -constexpr TagDetails canonMiniatureFilterOrientation[] = {{0, N_("Horizontal")}, {1, N_("Vertical")}}; +constexpr TagDetails canonMiniatureFilterOrientation[] = { + {0, N_("Horizontal")}, + {1, N_("Vertical")}, +}; // Canon Filter Info Tag constexpr TagInfo CanonMakerNote::tagInfoFil_[] = { @@ -1115,14 +1177,17 @@ const TagInfo* CanonMakerNote::tagListFil() { } // Canon HDR, tag 0x0001 -constexpr TagDetails canonHdr[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("On (RAW")}}; +constexpr TagDetails canonHdr[] = { + {0, N_("Off")}, + {1, N_("On")}, + {2, N_("On (RAW")}, +}; // Canon HDREffect, tag 0x0001 -constexpr TagDetails canonHdrEffect[] = {{0, N_("Natural")}, - {1, N_("Art (standard)")}, - {2, N_("Art (vivid)")}, - {3, N_("Art (bold)")}, - {4, N_("Art (embossed)")}}; +constexpr TagDetails canonHdrEffect[] = { + {0, N_("Natural")}, {1, N_("Art (standard)")}, {2, N_("Art (vivid)")}, + {3, N_("Art (bold)")}, {4, N_("Art (embossed)")}, +}; // Canon HDR Info Tag constexpr TagInfo CanonMakerNote::tagInfoHdr_[] = { @@ -1131,7 +1196,8 @@ constexpr TagInfo CanonMakerNote::tagInfoHdr_[] = { {0x0002, "HDREffect", N_("HDR Effect"), N_("HDR Effect"), IfdId::canonHdrId, SectionId::makerTags, signedLong, -1, EXV_PRINT_TAG(canonHdrEffect)}, {0xffff, "(UnknownHDRTag)", "(UnknownHDRTag)", N_("Unknown Canon HDR Tag"), IfdId::canonHdrId, SectionId::makerTags, - signedLong, 1, printValue}}; + signedLong, 1, printValue}, +}; const TagInfo* CanonMakerNote::tagListHdr() { return tagInfoHdr_; @@ -1139,7 +1205,10 @@ const TagInfo* CanonMakerNote::tagListHdr() { // Canon AIServoFirstImage, tag 0x0001 constexpr TagDetails canonAIServoFirstImage[] = { - {0, N_("Equal Priority")}, {1, N_("Release Priority")}, {2, N_("Focus Priority")}}; + {0, N_("Equal Priority")}, + {1, N_("Release Priority")}, + {2, N_("Focus Priority")}, +}; // Canon AIServoSecondImage, tag 0x0001 constexpr TagDetails canonAIServoSecondImage[] = { @@ -1149,43 +1218,67 @@ constexpr TagDetails canonAIServoSecondImage[] = { // Canon USMLensElectronicMF, tag 0x0001 constexpr TagDetails canonUSMLensElectronicMF[] = { - {0, N_("Enable After AF")}, {1, N_("Disable After AF")}, {2, N_("Disable in AF Mode")}}; + {0, N_("Enable After AF")}, + {1, N_("Disable After AF")}, + {2, N_("Disable in AF Mode")}, +}; // Canon AFAssistBeam, tag 0x0001 -constexpr TagDetails canonAFAssistBeam[] = {{0, N_("Enable")}, {1, N_("Disable")}, {2, N_("IR AF Assist Beam Mode")}}; +constexpr TagDetails canonAFAssistBeam[] = { + {0, N_("Enable")}, + {1, N_("Disable")}, + {2, N_("IR AF Assist Beam Mode")}, +}; // Canon OneShotAFRelease, tag 0x0001 -constexpr TagDetails canonOneShotAFRelease[] = {{0, N_("Focus Priority")}, {1, N_("Release Priority")}}; +constexpr TagDetails canonOneShotAFRelease[] = { + {0, N_("Focus Priority")}, + {1, N_("Release Priority")}, +}; // Canon AutoAFPointSelEOSiTRAF, tag 0x0001 -constexpr TagDetails canonAutoAFPointSelEOSiTRAF[] = {{0, N_("Enable")}, {1, N_("Disable")}}; +constexpr TagDetails canonAutoAFPointSelEOSiTRAF[] = { + {0, N_("Enable")}, + {1, N_("Disable")}, +}; // Canon LensDriveWhenAFImpossible, tag 0x0001 -constexpr TagDetails canonLensDriveWhenAFImpossible[] = {{0, N_("Continue Focus Search")}, - {1, N_("Stop Focus Search")}}; +constexpr TagDetails canonLensDriveWhenAFImpossible[] = { + {0, N_("Continue Focus Search")}, + {1, N_("Stop Focus Search")}, +}; // Canon SelectAFAreaSelectionMode, tag 0x0001 constexpr TagDetails canonSelectAFAreaSelectionMode[] = { {0, N_("Single-Point-AF")}, {1, N_("Auto")}, {2, N_("Zone AF")}, {3, N_("AF Point Expansion (4 point)")}, - {4, N_("Spot AF")}, {5, N_("AF Point Expansion (8 point)")}}; + {4, N_("Spot AF")}, {5, N_("AF Point Expansion (8 point)")}, +}; // Canon AFAreaSelectionMethod, tag 0x0001 -constexpr TagDetails canonAFAreaSelectionMethod[] = {{0, N_("M-Fn Button")}, {1, N_("Main Dial")}}; +constexpr TagDetails canonAFAreaSelectionMethod[] = { + {0, N_("M-Fn Button")}, + {1, N_("Main Dial")}, +}; // Canon OrientationLinkedAF, tag 0x0001 constexpr TagDetails canonOrientationLinkedAF[] = { - {0, N_("Same for Vert/Horiz Points")}, {1, N_("Separate for Vert/Horiz Points")}, {2, N_("Separate Area+Points")}}; + {0, N_("Same for Vert/Horiz Points")}, + {1, N_("Separate for Vert/Horiz Points")}, + {2, N_("Separate Area+Points")}, +}; // Canon ManualAFPointSelPattern, tag 0x0001 -constexpr TagDetails canonManualAFPointSelPattern[] = {{0, N_("Stops at AF Area Edges")}, {1, N_("Continuous")}}; +constexpr TagDetails canonManualAFPointSelPattern[] = { + {0, N_("Stops at AF Area Edges")}, + {1, N_("Continuous")}, +}; // Canon AFPointDisplayDuringFocus, tag 0x0001 -constexpr TagDetails canonAFPointDisplayDuringFocus[] = {{0, N_("Selected (constant)")}, - {1, N_("All (constant)")}, - {1, N_("Selected (pre-AF, focused)")}, - {1, N_("Selected (focused)")}, - {1, N_("Disabled")}}; +constexpr TagDetails canonAFPointDisplayDuringFocus[] = { + {0, N_("Selected (constant)")}, {1, N_("All (constant)")}, {1, N_("Selected (pre-AF, focused)")}, + {1, N_("Selected (focused)")}, {1, N_("Disabled")}, +}; // Canon VFDisplayIllumination, tag 0x0001 constexpr TagDetails canonAVFDisplayIllumination[] = { @@ -1271,12 +1364,16 @@ const TagInfo* CanonMakerNote::tagListRawB() { } //! Macro, tag 0x0001 -constexpr TagDetails canonCsMacro[] = {{1, N_("On")}, {2, N_("Off")}}; +constexpr TagDetails canonCsMacro[] = { + {1, N_("On")}, + {2, N_("Off")}, +}; //! Quality, tag 0x0003 constexpr TagDetails canonCsQuality[] = { {-1, N_("n/a")}, {0, N_("unkown")}, {1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")}, - {4, N_("RAW")}, {5, N_("Superfine")}, {7, N_("CRAW")}, {130, N_("Normal Movie")}, {131, N_("Movie (2)")}}; + {4, N_("RAW")}, {5, N_("Superfine")}, {7, N_("CRAW")}, {130, N_("Normal Movie")}, {131, N_("Movie (2)")}, +}; //! FlashMode, tag 0x0004 constexpr TagDetails canonCsFlashMode[] = { @@ -1286,16 +1383,18 @@ constexpr TagDetails canonCsFlashMode[] = { }; //! DriveMode, tag 0x0005 -constexpr TagDetails canonCsDriveMode[] = {{0, N_("Single / timer")}, - {1, N_("Continuous")}, - {2, N_("Movie")}, - {3, N_("Continuous, speed priority")}, - {3, N_("Continuous, tracking priority")}, - {4, N_("Continuous, low")}, - {5, N_("Continuous, high")}, - {6, N_("Silent Single")}, - {9, N_("Single, Silent")}, - {10, N_("Continuous, Silent")}}; +constexpr TagDetails canonCsDriveMode[] = { + {0, N_("Single / timer")}, + {1, N_("Continuous")}, + {2, N_("Movie")}, + {3, N_("Continuous, speed priority")}, + {3, N_("Continuous, tracking priority")}, + {4, N_("Continuous, low")}, + {5, N_("Continuous, high")}, + {6, N_("Silent Single")}, + {9, N_("Single, Silent")}, + {10, N_("Continuous, Silent")}, +}; //! FocusMode, tag 0x0007 constexpr TagDetails canonCsFocusMode[] = { @@ -1309,102 +1408,107 @@ constexpr TagDetails canonCsFocusMode[] = { //! RecordMode, tag 0x0009 constexpr TagDetails canonCsRecordMode[] = { - {1, N_("JPEG")}, {2, N_("CRW+THM")}, {3, N_("AVI+THM")}, {4, N_("TIF")}, {5, N_("TIF+JPEG")}, - {6, N_("CR2")}, {7, N_("CR2+JPEG")}, {9, N_("MOV")}, {10, N_("MP4")}, {11, N_("CRM")}, - {12, N_("CR3")}, {13, N_("CR3+JPEG")}, {14, N_("HIF")}, {15, N_("CR3+HIF")}}; + {1, N_("JPEG")}, {2, N_("CRW+THM")}, {3, N_("AVI+THM")}, {4, N_("TIF")}, {5, N_("TIF+JPEG")}, + {6, N_("CR2")}, {7, N_("CR2+JPEG")}, {9, N_("MOV")}, {10, N_("MP4")}, {11, N_("CRM")}, + {12, N_("CR3")}, {13, N_("CR3+JPEG")}, {14, N_("HIF")}, {15, N_("CR3+HIF")}, +}; //! ImageSize, tag 0x000a -constexpr TagDetails canonCsImageSize[] = {{0, N_("Large")}, - {1, N_("Medium")}, - {2, N_("Small")}, - {5, N_("Medium 1")}, - {6, N_("Medium 2")}, - {7, N_("Medium 3")}, - {8, N_("Postcard")}, - {9, N_("Widescreen")}, - {10, N_("Medium Widescreen")}, - {14, N_("Small 1")}, - {15, N_("Small 2")}, - {16, N_("Small 3")}, - {128, N_("640x480 Movie")}, - {129, N_("Medium Movie")}, - {130, N_("Small Movie")}, - {137, N_("1280x720 Movie")}, - {142, N_("1920x1080 Movie")}, - {143, N_("4096x2160 Movie")}}; +constexpr TagDetails canonCsImageSize[] = { + {0, N_("Large")}, + {1, N_("Medium")}, + {2, N_("Small")}, + {5, N_("Medium 1")}, + {6, N_("Medium 2")}, + {7, N_("Medium 3")}, + {8, N_("Postcard")}, + {9, N_("Widescreen")}, + {10, N_("Medium Widescreen")}, + {14, N_("Small 1")}, + {15, N_("Small 2")}, + {16, N_("Small 3")}, + {128, N_("640x480 Movie")}, + {129, N_("Medium Movie")}, + {130, N_("Small Movie")}, + {137, N_("1280x720 Movie")}, + {142, N_("1920x1080 Movie")}, + {143, N_("4096x2160 Movie")}, +}; //! EasyMode, tag 0x000b -constexpr TagDetails canonCsEasyMode[] = {{0, N_("Full auto")}, - {1, N_("Manual")}, - {2, N_("Landscape")}, - {3, N_("Fast shutter")}, - {4, N_("Slow shutter")}, - {5, N_("Night")}, - {6, N_("Gray Scale")}, - {7, N_("Sepia")}, - {8, N_("Portrait")}, - {9, N_("Sports")}, - {10, N_("Macro")}, - {11, N_("Black & White")}, - {12, N_("Pan focus")}, - {13, N_("Vivid")}, - {14, N_("Neutral")}, - {15, N_("Flash Off")}, - {16, N_("Long Shutter")}, - {17, N_("Super Macro")}, - {18, N_("Foliage")}, - {19, N_("Indoor")}, - {20, N_("Fireworks")}, - {21, N_("Beach")}, - {22, N_("Underwater")}, - {23, N_("Snow")}, - {24, N_("Kids & Pets")}, - {25, N_("Night Snapshot")}, - {26, N_("Digital Macro")}, - {27, N_("My Colors")}, - {28, N_("Movie Snap")}, - {29, N_("Super Macro 2")}, - {30, N_("Color Accent")}, - {31, N_("Color Swap")}, - {32, N_("Aquarium")}, - {33, N_("ISO 3200")}, - {34, N_("ISO 6400")}, - {35, N_("Creative Light Effect")}, - {36, N_("Easy")}, - {37, N_("Quick Shot")}, - {38, N_("Creative Auto")}, - {39, N_("Zoom Blur")}, - {40, N_("Low Light")}, - {41, N_("Nostalgic")}, - {42, N_("Super Vivid")}, - {43, N_("Poster Effect")}, - {44, N_("Face Self-timer")}, - {45, N_("Smile")}, - {46, N_("Wink Self-timer")}, - {47, N_("Fisheye Effect")}, - {48, N_("Miniature Effect")}, - {49, N_("High-speed Burst")}, - {50, N_("Best Image Selection")}, - {51, N_("High Dynamic Range")}, - {52, N_("Handheld Night Scene")}, - {53, N_("Movie Digest")}, - {54, N_("Live View Control")}, - {55, N_("Discreet")}, - {56, N_("Blur Reduction")}, - {57, N_("Monochrome")}, - {58, N_("Toy Camera Effect")}, - {59, N_("Scene Intelligent Auto")}, - {60, N_("High-speed Burst HQ")}, - {61, N_("Smooth Skin")}, - {62, N_("Soft Focus")}, - {257, N_("Spotlight")}, - {258, N_("Night 2")}, - {259, N_("Night+")}, - {260, N_("Super Night")}, - {261, N_("Sunset")}, - {263, N_("Night Scene")}, - {264, N_("Surface")}, - {265, N_("Low Light 2")}}; +constexpr TagDetails canonCsEasyMode[] = { + {0, N_("Full auto")}, + {1, N_("Manual")}, + {2, N_("Landscape")}, + {3, N_("Fast shutter")}, + {4, N_("Slow shutter")}, + {5, N_("Night")}, + {6, N_("Gray Scale")}, + {7, N_("Sepia")}, + {8, N_("Portrait")}, + {9, N_("Sports")}, + {10, N_("Macro")}, + {11, N_("Black & White")}, + {12, N_("Pan focus")}, + {13, N_("Vivid")}, + {14, N_("Neutral")}, + {15, N_("Flash Off")}, + {16, N_("Long Shutter")}, + {17, N_("Super Macro")}, + {18, N_("Foliage")}, + {19, N_("Indoor")}, + {20, N_("Fireworks")}, + {21, N_("Beach")}, + {22, N_("Underwater")}, + {23, N_("Snow")}, + {24, N_("Kids & Pets")}, + {25, N_("Night Snapshot")}, + {26, N_("Digital Macro")}, + {27, N_("My Colors")}, + {28, N_("Movie Snap")}, + {29, N_("Super Macro 2")}, + {30, N_("Color Accent")}, + {31, N_("Color Swap")}, + {32, N_("Aquarium")}, + {33, N_("ISO 3200")}, + {34, N_("ISO 6400")}, + {35, N_("Creative Light Effect")}, + {36, N_("Easy")}, + {37, N_("Quick Shot")}, + {38, N_("Creative Auto")}, + {39, N_("Zoom Blur")}, + {40, N_("Low Light")}, + {41, N_("Nostalgic")}, + {42, N_("Super Vivid")}, + {43, N_("Poster Effect")}, + {44, N_("Face Self-timer")}, + {45, N_("Smile")}, + {46, N_("Wink Self-timer")}, + {47, N_("Fisheye Effect")}, + {48, N_("Miniature Effect")}, + {49, N_("High-speed Burst")}, + {50, N_("Best Image Selection")}, + {51, N_("High Dynamic Range")}, + {52, N_("Handheld Night Scene")}, + {53, N_("Movie Digest")}, + {54, N_("Live View Control")}, + {55, N_("Discreet")}, + {56, N_("Blur Reduction")}, + {57, N_("Monochrome")}, + {58, N_("Toy Camera Effect")}, + {59, N_("Scene Intelligent Auto")}, + {60, N_("High-speed Burst HQ")}, + {61, N_("Smooth Skin")}, + {62, N_("Soft Focus")}, + {257, N_("Spotlight")}, + {258, N_("Night 2")}, + {259, N_("Night+")}, + {260, N_("Super Night")}, + {261, N_("Sunset")}, + {263, N_("Night Scene")}, + {264, N_("Surface")}, + {265, N_("Low Light 2")}, +}; //! DigitalZoom, tag 0x000c constexpr TagDetails canonCsDigitalZoom[] = { @@ -1412,7 +1516,11 @@ constexpr TagDetails canonCsDigitalZoom[] = { }; //! Contrast, Saturation Sharpness, tags 0x000d, 0x000e, 0x000f -constexpr TagDetails canonCsLnh[] = {{0xffff, N_("Low")}, {0x0000, N_("Normal")}, {0x0001, N_("High")}}; +constexpr TagDetails canonCsLnh[] = { + {0xffff, N_("Low")}, + {0x0000, N_("Normal")}, + {0x0001, N_("High")}, +}; //! ISOSpeeds, tag 0x0010 constexpr TagDetails canonCsISOSpeed[] = { @@ -1422,544 +1530,556 @@ constexpr TagDetails canonCsISOSpeed[] = { {17184, "800"}, {17384, "1000"}, {17634, "1250"}, {17984, "1600"}, {18384, "2000"}, {18884, "2500"}, {19584, "3200"}, {20384, "4000"}, {21384, "5000"}, {22784, "6400"}, {24384, "8000"}, {26384, "10000"}, {29184, "12800"}, {29184, "16000"}, {29184, "20000"}, {29184, "25600"}, {29184, "32000"}, {29184, "40000"}, - {29184, "H1(51200)"}, {29184, "H2(102400)"}}; + {29184, "H1(51200)"}, {29184, "H2(102400)"}, +}; //! MeteringMode, tag 0x0011 -constexpr TagDetails canonCsMeteringMode[] = {{0, N_("Default")}, {1, N_("Spot")}, - {2, N_("Average")}, {3, N_("Evaluative")}, - {4, N_("Partial")}, {5, N_("Center-weighted average")}}; +constexpr TagDetails canonCsMeteringMode[] = { + {0, N_("Default")}, {1, N_("Spot")}, {2, N_("Average")}, + {3, N_("Evaluative")}, {4, N_("Partial")}, {5, N_("Center-weighted average")}, +}; //! FocusType, tag 0x0012 -constexpr TagDetails canonCsFocusType[] = {{0, N_("Manual")}, {1, N_("Auto")}, {2, N_("Not known")}, - {3, N_("Macro")}, {4, N_("Very close")}, {5, N_("Close")}, - {6, N_("Middle range")}, {7, N_("Far range")}, {8, N_("Pan focus")}, - {9, N_("Super macro")}, {10, N_("Infinity")}}; +constexpr TagDetails canonCsFocusType[] = { + {0, N_("Manual")}, {1, N_("Auto")}, {2, N_("Not known")}, {3, N_("Macro")}, + {4, N_("Very close")}, {5, N_("Close")}, {6, N_("Middle range")}, {7, N_("Far range")}, + {8, N_("Pan focus")}, {9, N_("Super macro")}, {10, N_("Infinity")}, +}; //! AFPoint, tag 0x0013 -constexpr TagDetails canonCsAfPoint[] = {{0x2005, N_("Manual AF point selection")}, - {0x3000, N_("None (MF)")}, - {0x3001, N_("Auto-selected")}, - {0x3002, N_("Right")}, - {0x3003, N_("Center")}, - {0x3004, N_("Left")}, - {0x4001, N_("Auto AF point selection")}, - {0x4006, N_("Face Detect")}}; +constexpr TagDetails canonCsAfPoint[] = { + {0x2005, N_("Manual AF point selection")}, + {0x3000, N_("None (MF)")}, + {0x3001, N_("Auto-selected")}, + {0x3002, N_("Right")}, + {0x3003, N_("Center")}, + {0x3004, N_("Left")}, + {0x4001, N_("Auto AF point selection")}, + {0x4006, N_("Face Detect")}, +}; //! ExposureProgram, tag 0x0014 -constexpr TagDetails canonCsExposureProgram[] = {{0, N_("Easy shooting (Auto)")}, - {1, N_("Program (P)")}, - {2, N_("Shutter priority (Tv)")}, - {3, N_("Aperture priority (Av)")}, - {4, N_("Manual (M)")}, - {5, N_("A-DEP")}, - {6, N_("M-DEP")}, - {7, N_("Bulb")}}; +constexpr TagDetails canonCsExposureProgram[] = { + {0, N_("Easy shooting (Auto)")}, + {1, N_("Program (P)")}, + {2, N_("Shutter priority (Tv)")}, + {3, N_("Aperture priority (Av)")}, + {4, N_("Manual (M)")}, + {5, N_("A-DEP")}, + {6, N_("M-DEP")}, + {7, N_("Bulb")}, +}; //! LensType, tag 0x0016 -constexpr TagDetails canonCsLensType[] = {{1, "Canon EF 50mm f/1.8"}, - {2, "Canon EF 28mm f/2.8"}, - {2, "Sigma 24mm f/2.8 Super Wide II"}, // 1 - {3, "Canon EF 135mm f/2.8 Soft"}, - {4, "Canon EF 35-105mm f/3.5-4.5"}, - {4, "Sigma UC Zoom 35-135mm f/4-5.6"}, // 1 - {5, "Canon EF 35-70mm f/3.5-4.5"}, - {6, "Canon EF 28-70mm f/3.5-4.5"}, - {6, "Sigma 18-50mm f/3.5-5.6 DC"}, // 1 - {6, "Sigma 18-125mm f/3.5-5.6 DC IF ASP"}, // 2 - {6, "Tokina AF 193-2 19-35mm f/3.5-4.5"}, // 3 - {6, "Sigma 28-80mm f/3.5-5.6 II Macro"}, // 4 - {6, "Sigma 28-300mm f/3.5-6.3 DG Macro"}, // 5 - {7, "Canon EF 100-300mm f/5.6L"}, - {8, "Canon EF 100-300mm f/5.6"}, - {8, "Sigma 70-300mm f/4-5.6 [APO] DG Macro"}, // 1 - {8, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6"}, // 2 - {9, "Canon EF 70-210mm f/4"}, - {9, "Sigma 55-200mm f/4-5.6 DC"}, // 1 - {10, "Canon EF 50mm f/2.5 Macro"}, - {10, "Sigma 50mm f/2.8 EX"}, // 1 - {10, "Sigma 28mm f/1.8"}, // 2 - {10, "Sigma 105mm f/2.8 Macro EX"}, // 3 - {10, "Sigma 70mm f/2.8 EX DG Macro EF"}, // 4 - {11, "Canon EF 35mm f/2"}, - {13, "Canon EF 15mm f/2.8 Fisheye"}, - {14, "Canon EF 50-200mm f/3.5-4.5L"}, - {15, "Canon EF 50-200mm f/3.5-4.5"}, - {16, "Canon EF 35-135mm f/3.5-4.5"}, - {17, "Canon EF 35-70mm f/3.5-4.5A"}, - {18, "Canon EF 28-70mm f/3.5-4.5"}, - {20, "Canon EF 100-200mm f/4.5A"}, - {21, "Canon EF 80-200mm f/2.8L"}, - {22, "Canon EF 20-35mm f/2.8L"}, - {22, "Tokina AT-X 280 AF Pro 28-80mm f/2.8 Aspherical"}, // 1 - {23, "Canon EF 35-105mm f/3.5-4.5"}, - {24, "Canon EF 35-80mm f/4-5.6 Power Zoom"}, - {25, "Canon EF 35-80mm f/4-5.6 Power Zoom"}, - {26, "Canon EF 100mm f/2.8 Macro"}, - {26, "Cosina 100mm f/3.5 Macro AF"}, // 1 - {26, "Tamron SP AF 90mm f/2.8 Di Macro"}, // 2 - {26, "Tamron SP AF 180mm f/3.5 Di Macro"}, // 3 - {26, "Carl Zeiss Planar T* 50mm f/1.4"}, // 4 - {26, "Voigtlander APO Lanthar 125mm f/2.5 SL Macro"}, // 5 - {26, "Carl Zeiss Planar T 85mm f/1.4 ZE"}, // 6 - {27, "Canon EF 35-80mm f/4-5.6"}, - {28, "Canon EF 80-200mm f/4.5-5.6"}, - {28, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"}, // 1 - {28, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"}, // 2 - {28, "Tamron AF 70-300mm f/4-5.6 Di LD 1:2 Macro"}, // 3 - {28, "Tamron AF Aspherical 28-200mm f/3.8-5.6"}, // 4 - {29, "Canon EF 50mm f/1.8 II"}, - {30, "Canon EF 35-105mm f/4.5-5.6"}, - {31, "Canon EF 75-300mm f/4-5.6"}, - {31, "Tamron SP AF 300mm f/2.8 LD IF"}, // 1 - {32, "Canon EF 24mm f/2.8"}, - {32, "Sigma 15mm f/2.8 EX Fisheye"}, // 1 - {33, "Voigtlander Ultron 40mm f/2 SLII Aspherical"}, - {33, "Voigtlander Color Skopar 20mm f/3.5 SLII Aspherical"}, // 1 - {33, "Voigtlander APO-Lanthar 90mm f/3.5 SLII Close Focus"}, // 2 - {33, "Carl Zeiss Distagon T* 15mm f/2.8 ZE"}, // 3 - {33, "Carl Zeiss Distagon T* 18mm f/3.5 ZE"}, // 4 - {33, "Carl Zeiss Distagon T* 21mm f/2.8 ZE"}, // 5 - {33, "Carl Zeiss Distagon T* 25mm f/2 ZE"}, // 6 - {33, "Carl Zeiss Distagon T* 28mm f/2 ZE"}, // 7 - {33, "Carl Zeiss Distagon T* 35mm f/2 ZE"}, // 8 - {33, "Carl Zeiss Distagon T* 35mm f/1.4 ZE"}, // 9 - {33, "Carl Zeiss Planar T* 50mm f/1.4 ZE"}, // 10 - {33, "Carl Zeiss Makro-Planar T* 50mm f/2 ZE"}, // 11 - {33, "Carl Zeiss Makro-Planar T* 100mm f/2 ZE"}, // 12 - {33, "Carl Zeiss Apo-Sonnar T* 135mm f/2 ZE"}, // 13 - {35, "Canon EF 35-80mm f/4-5.6 II"}, - {36, "Canon EF 38-76mm f/4.5-5.6"}, - {37, "Canon EF 35-80mm f/4-5.6 III"}, - {37, "Tamron 70-200mm f/2.8 Di LD IF Macro"}, // 1 - {37, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro"}, // 2 - {37, "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical [IF]"}, // 3 - {37, "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical [IF] Macro"}, // 4 - {38, "Canon EF 80-200mm f/4.5-5.6 II"}, - {39, "Canon EF 75-300mm f/4-5.6"}, - {40, "Canon EF 28-80mm f/3.5-5.6"}, - {41, "Canon EF 28-90mm f/4-5.6"}, - {42, "Canon EF 28-200mm f/3.5-5.6"}, - {42, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro"}, // 1 - {43, "Canon EF 28-105mm f/4-5.6"}, - {44, "Canon EF 90-300mm f/4.5-5.6"}, - {45, "Canon EF-S 18-55mm f/3.5-5.6 [II]"}, - {46, "Canon EF 28-90mm f/4-5.6"}, - {47, "Zeiss Milvus 35mm f/2"}, - {47, "Zeiss Milvus 50mm f/2 Makro"}, // 1 - {47, "Zeiss Milvus 135mm f/2 ZE"}, // 2 - {48, "Canon EF-S 18-55mm f/3.5-5.6 IS"}, - {49, "Canon EF-S 55-250mm f/4-5.6 IS"}, - {50, "Canon EF-S 18-200mm f/3.5-5.6 IS"}, - {51, "Canon EF-S 18-135mm f/3.5-5.6 IS"}, - {52, "Canon EF-S 18-55mm f/3.5-5.6 IS II"}, - {53, "Canon EF-S 18-55mm f/3.5-5.6 III"}, - {54, "Canon EF-S 55-250mm f/4-5.6 IS II"}, - {60, "Irix 11mm f/4"}, - {80, "Canon TS-E 50mm f/2.8L Macro"}, - {81, "Canon TS-E 90mm f/2.8L Macro"}, - {82, "Canon TS-E 135mm f/4L Macro"}, - {94, "Canon TS-E 17mm f/4L"}, - {95, "Canon TS-E 24mm f/3.5L II"}, - {103, "Samyang AF 14mm f/2.8 EF"}, - {103, "Rokinon SP 14mm f/2.4"}, // 1 - {103, "Rokinon AF 14mm f/2.8 EF"}, // 2 - {106, "Rokinon SP / Samyang XP 35mm f/1.2"}, - {112, "Sigma 28mm f/1.5 FF High-speed Prime"}, - {112, "Sigma 40mm f/1.5 FF High-speed Prime"}, // 1 - {112, "Sigma 105mm f/1.5 FF High-speed Prime"}, // 2 - {117, "Tamron 35-150mm f/2.8-4.0 Di VC OSD"}, - {117, "Tamron SP 35mm f/1.4 Di USD"}, // 1 - {124, "Canon MP-E 65mm f/2.8 1-5x Macro Photo"}, - {125, "Canon TS-E 24mm f/3.5L"}, - {126, "Canon TS-E 45mm f/2.8"}, - {127, "Canon TS-E 90mm f/2.8"}, - {127, "Tamron 18-200mm f/3.5-6.3 Di II VC"}, // 1 - {129, "Canon EF 300mm f/2.8L USM"}, - {130, "Canon EF 50mm f/1.0L USM"}, - {131, "Canon EF 28-80mm f/2.8-4L USM"}, - {131, "Sigma 8mm f/3.5 EX DG Circular Fisheye"}, // 1 - {131, "Sigma 17-35mm f/2.8-4 EX DG Aspherical HSM"}, // 2 - {131, "Sigma 17-70mm f/2.8-4.5 DC Macro"}, // 3 - {131, "Sigma APO 50-150mm f/2.8 [II] EX DC HSM"}, // 4 - {131, "Sigma APO 120-300mm f/2.8 EX DG HSM"}, // 5 - {131, "Sigma 70-200mm f/2.8 APO EX HSM"}, // 6 - {131, "Sigma 28-70mm f/2.8-4 DG"}, // 7 - {132, "Canon EF 1200mm f/5.6L USM"}, - {134, "Canon EF 600mm f/4L IS USM"}, - {135, "Canon EF 200mm f/1.8L USM"}, - {136, "Canon EF 300mm f/2.8L USM"}, - {136, "Tamron SP 15-30mm f/2.8 Di VC USD"}, // 1 - {137, "Canon EF 85mm f/1.2L USM"}, - {137, "Sigma 18-50mm f/2.8-4.5 DC OS HSM"}, // 1 - {137, "Sigma 50-200mm f/4-5.6 DC OS HSM"}, // 2 - {137, "Sigma 18-250mm f/3.5-6.3 DC OS HSM"}, // 3 - {137, "Sigma 24-70mm f/2.8 IF EX DG HSM"}, // 4 - {137, "Sigma 18-125mm f/3.8-5.6 DC OS HSM"}, // 5 - {137, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C"}, // 6 - {137, "Sigma 17-50mm f/2.8 OS HSM"}, // 7 - {137, "Sigma 18-200mm f/3.5-6.3 DC OS HSM [II]"}, // 8 - {137, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"}, // 9 - {137, "Sigma 8-16mm f/4.5-5.6 DC HSM"}, // 10 - {137, "Tamron SP 17-50mm f/2.8 XR Di II VC"}, // 11 - {137, "Tamron SP 60mm f/2 Macro Di II"}, // 12 - {137, "Sigma 10-20mm f/3.5 EX DC HSM"}, // 13 - {137, "Tamron SP 24-70mm f/2.8 Di VC USD"}, // 14 - {137, "Sigma 18-35mm f/1.8 DC HSM | A"}, // 15 - {137, "Sigma 12-24mm f/4.5-5.6 DG HSM II"}, // 16 - {137, "Sigma 70-300mm f/4-5.6 DG OS"}, // 17 - {138, "Canon EF 28-80mm f/2.8-4L"}, - {139, "Canon EF 400mm f/2.8L USM"}, - {140, "Canon EF 500mm f/4.5L USM"}, - {141, "Canon EF 500mm f/4.5L USM"}, - {142, "Canon EF 300mm f/2.8L IS USM"}, - {143, "Canon EF 500mm f/4L IS USM"}, - {143, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM"}, // 1 - {143, "Sigma 24-105mm f/4 DG OS HSM | A"}, // 2 - {144, "Canon EF 35-135mm f/4-5.6 USM"}, - {145, "Canon EF 100-300mm f/4.5-5.6 USM"}, - {146, "Canon EF 70-210mm f/3.5-4.5 USM"}, - {147, "Canon EF 35-135mm f/4-5.6 USM"}, - {148, "Canon EF 28-80mm f/3.5-5.6 USM"}, - {149, "Canon EF 100mm f/2 USM"}, - {150, "Canon EF 14mm f/2.8L USM"}, - {150, "Sigma 20mm EX f/1.8"}, // 1 - {150, "Sigma 30mm f/1.4 DC HSM"}, // 2 - {150, "Sigma 24mm f/1.8 DG Macro EX"}, // 3 - {150, "Sigma 28mm f/1.8 DG Macro EX"}, // 4 - {150, "Sigma 18-35mm f/1.8 DC HSM | A"}, // 5 - {151, "Canon EF 200mm f/2.8L USM"}, - {152, "Canon EF 300mm f/4L IS USM"}, - {152, "Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM"}, // 1 - {152, "Sigma 14mm f/2.8 EX Aspherical HSM"}, // 2 - {152, "Sigma 10-20mm f/4-5.6"}, // 3 - {152, "Sigma 100-300mm f/4"}, // 4 - {152, "Sigma 300-800mm f/5.6 APO EX DG HSM"}, // 5 - {153, "Canon EF 35-350mm f/3.5-5.6L USM"}, - {153, "Sigma 50-500mm f/4-6.3 APO HSM EX"}, // 1 - {153, "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical [IF] Macro"}, // 2 - {153, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro"}, // 3 - {153, "Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro"}, // 4 - {154, "Canon EF 20mm f/2.8 USM"}, - {154, "Zeiss Milvus 21mm f/2.8"}, // 1 - {154, "Zeiss Milvus 15mm f/2.8 ZE"}, // 2 - {154, "Zeiss Milvus 18mm f/2.8 ZE"}, // 3 - {155, "Canon EF 85mm f/1.8 USM"}, - {155, "Sigma 14mm f/1.8 DG HSM | A"}, // 1 - {156, "Canon EF 28-105mm f/3.5-4.5 USM"}, - {156, "Tamron SP 70-300mm f/4-5.6 Di VC USD"}, // 1 - {156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"}, // 2 - {160, "Canon EF 20-35mm f/3.5-4.5 USM"}, - {160, "Tamron AF 19-35mm f/3.5-4.5"}, // 1 - {160, "Tokina AT-X 124 AF Pro DX 12-24mm f/4"}, // 2 - {160, "Tokina AT-X 107 AF DX 10-17mm f/3.5-4.5 Fisheye"}, // 3 - {160, "Tokina AT-X 116 AF Pro DX 11-16mm f/2.8"}, // 4 - {160, "Tokina AT-X 11-20 f/2.8 PRO DX Aspherical 11-20mm f/2.8"}, // 5 - {161, "Canon EF 28-70mm f/2.8L USM"}, - {161, "Sigma 24-70mm f/2.8 EX"}, // 1 - {161, "Sigma 28-70mm f/2.8 EX"}, // 2 - {161, "Sigma 24-60mm f/2.8 EX DG"}, // 3 - {161, "Tamron AF 17-50mm f/2.8 Di-II LD Aspherical"}, // 4 - {161, "Tamron 90mm f/2.8"}, // 5 - {161, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"}, // 6 - {161, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"}, // 7 - {161, "Tokina AT-X 24-70mm f/2.8 PRO FX (IF)"}, // 8 - {162, "Canon EF 200mm f/2.8L USM"}, - {163, "Canon EF 300mm f/4L"}, - {164, "Canon EF 400mm f/5.6L"}, - {165, "Canon EF 70-200mm f/2.8L USM"}, - {166, "Canon EF 70-200mm f/2.8L USM + 1.4x"}, - {167, "Canon EF 70-200mm f/2.8L USM + 2x"}, - {168, "Canon EF 28mm f/1.8 USM"}, - {168, "Sigma 50-100mm f/1.8 DC HSM | A"}, // 1 - {169, "Canon EF 17-35mm f/2.8L USM"}, - {169, "Sigma 18-200mm f/3.5-6.3 DC OS"}, // 1 - {169, "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"}, // 2 - {169, "Sigma 18-50mm f/2.8 Macro"}, // 3 - {169, "Sigma 50mm f/1.4 EX DG HSM"}, // 4 - {169, "Sigma 85mm f/1.4 EX DG HSM"}, // 5 - {169, "Sigma 30mm f/1.4 EX DC HSM"}, // 6 - {169, "Sigma 35mm f/1.4 DG HSM"}, // 7 - {169, "Sigma 35mm f/1.5 FF High-Speed Prime | 017"}, // 8 - {169, "Sigma 70mm f/2.8 Macro EX DG"}, // 9 - {170, "Canon EF 200mm f/2.8L II USM"}, - {170, "Sigma 300mm f/2.8 APO EX DG HSM"}, // 1 - {170, "Sigma 800mm f/5.6 APO EX DG HSM"}, // 2 - {171, "Canon EF 300mm f/4L USM"}, - {172, "Canon EF 400mm f/5.6L USM"}, - {172, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, // 1 - {172, "Sigma 500mm f/4.5 APO EX DG HSM"}, // 2 - {173, "Canon EF 180mm Macro f/3.5L USM"}, - {173, "Sigma 180mm EX HSM Macro f/3.5"}, // 1 - {173, "Sigma APO Macro 150mm f/2.8 EX DG HSM"}, // 2 - {173, "Sigma 10mm f/2.8 EX DC Fisheye"}, // 3 - {173, "Sigma 15mm f/2.8 EX DG Diagonal Fisheye"}, // 4 - {173, "Venus Laowa 100mm f/2.8 2X Ultra Macro APO"}, // 5 - {173, "Sigma 150-500mm f/5-6.3 APO DG OS HSM + 2x"}, // 6 - {174, "Canon EF 135mm f/2L USM"}, - {174, "Sigma 70-200mm f/2.8 EX DG APO OS HSM"}, // 1 - {174, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM"}, // 2 - {174, "Sigma 150-500mm f/5-6.3 APO DG OS HSM"}, // 3 - {174, "Zeiss Milvus 100mm f/2 Makro"}, // 4 - {174, "Sigma APO 50-150mm f/2.8 EX DC OS HSM"}, // 5 - {174, "Sigma APO 120-300mm f/2.8 EX DG OS HSM"}, // 6 - {174, "Sigma 120-300mm f/2.8 DG OS HSM S013"}, // 7 - {174, "Sigma 120-400mm f/4.5-5.6 APO DG OS HSM"}, // 8 - {174, "Sigma 200-500mm f/2.8 APO EX DG"}, // 9 - {175, "Canon EF 400mm f/2.8L USM"}, - {176, "Canon EF 24-85mm f/3.5-4.5 USM"}, - {177, "Canon EF 300mm f/4L IS USM"}, - {178, "Canon EF 28-135mm f/3.5-5.6 IS"}, - {179, "Canon EF 24mm f/1.4L USM"}, - {180, "Canon EF 35mm f/1.4L USM"}, - {180, "Sigma 50mm f/1.4 DG HSM | A"}, // 1 - {180, "Sigma 24mm f/1.4 DG HSM | A"}, // 2 - {180, "Zeiss Milvus 50mm f/1.4"}, // 3 - {180, "Zeiss Milvus 85mm f/1.4"}, // 4 - {180, "Zeiss Otus 28mm f/1.4 ZE"}, // 5 - {180, "Sigma 24mm f/1.5 FF High-Speed Prime | 017"}, // 6 - {180, "Sigma 50mm f/1.5 FF High-Speed Prime | 017"}, // 7 - {180, "Sigma 85mm f/1.5 FF High-Speed Prime | 017"}, // 8 - {180, "Tokina Opera 50mm f/1.4 FF"}, // 9 - {180, "Sigma 20mm f/1.4 DG HSM | A"}, // 10 - {181, "Canon EF 100-400mm f/4.5-5.6L IS USM + 1.4x"}, - {181, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x"}, // 1 - {182, "Canon EF 100-400mm f/4.5-5.6L IS USM + 2x"}, - {182, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 2x"}, // 1 - {183, "Canon EF 100-400mm f/4.5-5.6L IS USM"}, - {183, "Sigma 150mm f/2.8 EX DG OS HSM APO Macro"}, // 1 - {183, "Sigma 105mm f/2.8 EX DG OS HSM Macro"}, // 2 - {183, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro"}, // 3 - {183, "Sigma 150-600mm f/5-6.3 DG OS HSM | C"}, // 4 - {183, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, // 5 - {183, "Sigma 100-400mm f/5-6.3 DG OS HSM"}, // 6 - {183, "Sigma 180mm f/3.5 APO Macro EX DG IF HSM"}, // 7 - {184, "Canon EF 400mm f/2.8L USM + 2x"}, - {185, "Canon EF 600mm f/4L IS USM"}, - {186, "Canon EF 70-200mm f/4L USM"}, - {187, "Canon EF 70-200mm f/4L USM + 1.4x"}, - {188, "Canon EF 70-200mm f/4L USM + 2x"}, - {189, "Canon EF 70-200mm f/4L USM + 2.8x"}, - {190, "Canon EF 100mm f/2.8 Macro USM"}, - {191, "Canon EF 400mm f/4 DO IS"}, - {191, "Sigma 500mm f/4 DG OS HSM"}, // 1 - {193, "Canon EF 35-80mm f/4-5.6 USM"}, - {194, "Canon EF 80-200mm f/4.5-5.6 USM"}, - {195, "Canon EF 35-105mm f/4.5-5.6 USM"}, - {196, "Canon EF 75-300mm f/4-5.6 USM"}, - {197, "Canon EF 75-300mm f/4-5.6 IS USM"}, - {197, "Sigma 18-300mm f/3.5-6.3 DC Macro OS HSM"}, // 1 - {198, "Canon EF 50mm f/1.4 USM"}, - {198, "Zeiss Otus 55mm f/1.4 ZE"}, // 1 - {198, "Zeiss Otus 85mm f/1.4 ZE"}, // 2 - {198, "Zeiss Milvus 25mm f/1.4"}, // 3 - {198, "Zeiss Otus 100mm f/1.4"}, // 4 - {198, "Zeiss Milvus 35mm f/1.4 ZE"}, // 5 - {198, "Yongnuo YN 35mm f/2"}, // 6 - {199, "Canon EF 28-80mm f/3.5-5.6 USM"}, - {200, "Canon EF 75-300mm f/4-5.6 USM"}, - {201, "Canon EF 28-80mm f/3.5-5.6 USM"}, - {202, "Canon EF 28-80mm f/3.5-5.6 USM IV"}, - {208, "Canon EF 22-55mm f/4-5.6 USM"}, - {209, "Canon EF 55-200mm f/4.5-5.6"}, - {210, "Canon EF 28-90mm f/4-5.6 USM"}, - {211, "Canon EF 28-200mm f/3.5-5.6 USM"}, - {212, "Canon EF 28-105mm f/4-5.6 USM"}, - {213, "Canon EF 90-300mm f/4.5-5.6 USM"}, - {213, "Tamron SP 150-600mm f/5-6.3 Di VC USD"}, // 1 - {213, "Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro"}, // 2 - {213, "Tamron SP 35mm f/1.8 Di VC USD"}, // 3 - {213, "Tamron SP 45mm f/1.8 Di VC USD"}, // 4 - {214, "Canon EF-S 18-55mm f/3.5-5.6 USM"}, - {215, "Canon EF 55-200mm f/4.5-5.6 II USM"}, - {217, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"}, - {220, "Yongnuo YN 50mm f/1.8"}, - {224, "Canon EF 70-200mm f/2.8L IS USM"}, - {225, "Canon EF 70-200mm f/2.8L IS USM + 1.4x"}, - {226, "Canon EF 70-200mm f/2.8L IS USM + 2x"}, - {227, "Canon EF 70-200mm f/2.8L IS USM + 2.8x"}, - {228, "Canon EF 28-105mm f/3.5-4.5 USM"}, - {229, "Canon EF 16-35mm f/2.8L USM"}, - {230, "Canon EF 24-70mm f/2.8L USM"}, - {231, "Canon EF 17-40mm f/4L USM"}, - {231, "Sigma 12-24mm f/4 DG HSM A016"}, // 1 - {232, "Canon EF 70-300mm f/4.5-5.6 DO IS USM"}, - {233, "Canon EF 28-300mm f/3.5-5.6L IS USM"}, - {234, "Canon EF-S 17-85mm f/4-5.6 IS USM"}, - {234, "Tokina AT-X 12-28 PRO DX 12-28mm f/4"}, // 1 - {235, "Canon EF-S 10-22mm f/3.5-4.5 USM"}, - {236, "Canon EF-S 60mm f/2.8 Macro USM"}, - {237, "Canon EF 24-105mm f/4L IS USM"}, - {238, "Canon EF 70-300mm f/4-5.6 IS USM"}, - {239, "Canon EF 85mm f/1.2L II USM"}, - {239, "Rokinon SP 85mm f/1.2"}, // 1 - {240, "Canon EF-S 17-55mm f/2.8 IS USM"}, - {240, "Sigma 17-50mm f/2.8 EX DC OS HSM"}, // 1 - {241, "Canon EF 50mm f/1.2L USM"}, - {242, "Canon EF 70-200mm f/4L IS USM"}, - {243, "Canon EF 70-200mm f/4L IS USM + 1.4x"}, - {244, "Canon EF 70-200mm f/4L IS USM + 2x"}, - {245, "Canon EF 70-200mm f/4L IS USM + 2.8x"}, - {246, "Canon EF 16-35mm f/2.8L II USM"}, - {247, "Canon EF 14mm f/2.8L II USM"}, - {248, "Canon EF 200mm f/2L IS USM"}, - {248, "Sigma 24-35mm f/2 DG HSM | A"}, // 1 - {248, "Sigma 135mm f/2 FF High-Speed Prime | 017"}, // 2 - {248, "Sigma 24-35mm f/2.2 FF Zoom | 017"}, // 3 - {248, "Sigma 135mm f/1.8 DG HSM A017"}, // 4 - {249, "Canon EF 800mm f/5.6L IS USM"}, - {250, "Canon EF 24mm f/1.4L II USM"}, - {250, "Sigma 20mm f/1.4 DG HSM | A"}, // 1 - {250, "Sigma 20mm f/1.5 FF High-Speed Prime | 017"}, // 2 - {250, "Tokina Opera 16-28mm f/2.8 FF"}, // 3 - {250, "Sigma 85mm f/1.4 DG HSM A016"}, // 4 - {251, "Canon EF 70-200mm f/2.8L IS II USM"}, - {251, "Canon EF 70-200mm f/2.8L IS III USM"}, // 1 - {252, "Canon EF 70-200mm f/2.8L IS II USM + 1.4x"}, - {252, "Canon EF 70-200mm f/2.8L IS III USM + 1.4x"}, // 1 - {253, "Canon EF 70-200mm f/2.8L IS II USM + 2x"}, - {253, "Canon EF 70-200mm f/2.8L IS III USM + 2x"}, // 1 - {254, "Canon EF 100mm f/2.8L Macro IS USM"}, // 1 - {254, "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1"}, // 2 - {255, "Sigma 24-105mm f/4 DG OS HSM | A"}, - {255, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro"}, // 1 - {368, "Sigma 14-24mm f/2.8 DG HSM | A"}, - {368, "Sigma 20mm f/1.4 DG HSM | A"}, // 1 - {368, "Sigma 50mm f/1.4 DG HSM | A"}, // 2 - {368, "Sigma 40mm f/1.4 DG HSM | A"}, // 3 - {368, "Sigma 60-600mm f/4.5-6.3 DG OS HSM | S"}, // 4 - {368, "Sigma 28mm f/1.4 DG HSM | A"}, // 5 - {368, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, // 6 - {368, "Sigma 85mm f/1.4 DG HSM | A"}, // 7 - {368, "Sigma 105mm f/1.4 DG HSM"}, // 8 - {368, "Sigma 70mm f/2.8 DG Macro"}, // 9 - {368, "Sigma 18-35mm f/1.8 DC HSM | A"}, // 10 - {368, "Sigma 35mm f/1.4 DG HSM | A"}, // 11 - {488, "Canon EF-S 15-85mm f/3.5-5.6 IS USM"}, - {489, "Canon EF 70-300mm f/4-5.6L IS USM"}, - {490, "Canon EF 8-15mm f/4L Fisheye USM"}, - {491, "Canon EF 300mm f/2.8L IS II USM"}, - {491, "Tamron SP 70-200mm f/2.8 Di VC USD G2"}, // 1 - {491, "Tamron 18-400mm f/3.5-6.3 Di II VC HLD"}, // 2 - {491, "Tamron 100-400mm f/4.5-6.3 Di VC USD"}, // 3 - {491, "Tamron 70-210mm f/4 Di VC USD"}, // 4 - {491, "Tamron 70-210mm f/4 Di VC USD + 1.4x"}, // 5 - {491, "Tamron SP 24-70mm f/2.8 Di VC USD G2"}, // 6 - {492, "Canon EF 400mm f/2.8L IS II USM"}, - {493, "Canon EF 500mm f/4L IS II USM"}, - {493, "Canon EF 24-105mm f/4L IS USM"}, // 1 - {494, "Canon EF 600mm f/4L IS II USM"}, - {495, "Canon EF 24-70mm f/2.8L II USM"}, - {495, "Sigma 24-70mm f/2.8 DG OS HSM | A"}, // 1 - {496, "Canon EF 200-400mm f/4L IS USM"}, - {499, "Canon EF 200-400mm f/4L IS USM + 1.4x"}, - {502, "Canon EF 28mm f/2.8 IS USM"}, - {502, "Tamron 35mm f/1.8 Di VC USD"}, // 1 - {503, "Canon EF 24mm f/2.8 IS USM"}, - {504, "Canon EF 24-70mm f/4L IS USM"}, - {505, "Canon EF 35mm f/2 IS USM"}, - {506, "Canon EF 400mm f/4 DO IS II USM"}, - {507, "Canon EF 16-35mm f/4L IS USM"}, - {508, "Canon EF 11-24mm f/4L USM"}, - {508, "Tamron 10-24mm f/3.5-4.5 Di II VC HLD"}, // 1 - {624, "Sigma 70-200mm f/2.8 DG OS HSM | S"}, - {747, "Canon EF 100-400mm f/4.5-5.6L IS II USM"}, - {747, "Tamron SP 150-600mm f/5-6.3 Di VC USD G2"}, // 1 - {748, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x"}, - {748, "Tamron 100-400mm f/4.5-6.3 Di VC USD + 1.4x"}, // 1 - {748, "Tamron 70-210mm f/4 Di VC USD + 2x"}, // 2 - {749, "Tamron 100-400mm f/4.5-6.3 Di VC USD + 2x"}, - {749, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 2x"}, // 1 - {750, "Canon EF 35mm f/1.4L II USM"}, - {750, "Tamron SP 85mm f/1.8 Di VC USD"}, // 1 - {750, "Tamron SP 45mm f/1.8 Di VC USD"}, // 2 - {751, "Canon EF 16-35mm f/2.8L III USM"}, - {752, "Canon EF 24-105mm f/4L IS II USM"}, - {753, "Canon EF 85mm f/1.4L IS USM"}, - {754, "Canon EF 70-200mm f/4L IS II USM"}, - {757, "Canon EF 400mm f/2.8L IS III USM"}, - {758, "Canon EF 600mm f/4L IS III USM"}, - {1136, "Sigma 24-70mm f/2.8 DG OS HSM | Art 017"}, - {4142, "Canon EF-S 18-135mm f/3.5-5.6 IS STM"}, - {4143, "Canon EF-M 18-55mm f/3.5-5.6 IS STM"}, - {4143, "Tamron 18-200mm f/3.5-6.3 Di III VC"}, // 1 - {4144, "Canon EF 40mm f/2.8 STM"}, - {4145, "Canon EF-M 22mm f/2 STM"}, - {4146, "Canon EF-S 18-55mm f/3.5-5.6 IS STM"}, - {4147, "Canon EF-M 11-22mm f/4-5.6 IS STM"}, - {4148, "Canon EF-S 55-250mm f/4-5.6 IS STM"}, - {4149, "Canon EF-M 55-200mm f/4.5-6.3 IS STM"}, - {4150, "Canon EF-S 10-18mm f/4.5-5.6 IS STM"}, - {4152, "Canon EF 24-105mm f/3.5-5.6 IS STM"}, - {4153, "Canon EF-M 15-45mm f/3.5-6.3 IS STM"}, - {4154, "Canon EF-S 24mm f/2.8 STM"}, - {4155, "Canon EF-M 28mm f/3.5 Macro IS STM"}, - {4156, "Canon EF 50mm f/1.8 STM"}, - {4157, "Canon EF-M 18-150mm f/3.5-6.3 IS STM"}, - {4158, "Canon EF-S 18-55mm f/4-5.6 IS STM"}, - {4159, "Canon EF-M 32mm f/1.4 STM"}, - {4160, "Canon EF-S 35mm f/2.8 Macro IS STM"}, - {4208, "Sigma 56mm f/1.4 DC DN | C"}, - {4208, "Sigma 30mm f/1.4 DC DN | C"}, - {36910, "Canon EF 70-300mm f/4-5.6 IS II USM"}, - {36912, "Canon EF-S 18-135mm f/3.5-5.6 IS USM"}, - {61491, "Canon CN-E 14mm T3.1 L F"}, - {61492, "Canon CN-E 24mm T1.5 L F"}, - {61494, "Canon CN-E 85mm T1.3 L F"}, - {61495, "Canon CN-E 135mm T2.2 L F"}, - {61496, "Canon CN-E 35mm T1.5 L F"}, - // All RF lenses seem to share the LensType value 61182; - // unique RFLensType tag below is to be preferred instead. - // Please keep this list in sync w/ RFLensType list - {61182, "Canon RF 50mm F1.2L USM"}, - {61182, "Canon RF 24-105mm F4L IS USM"}, - {61182, "Canon RF 28-70mm F2L USM"}, - {61182, "Canon RF 35mm F1.8 MACRO IS STM"}, - {61182, "Canon RF 85mm F1.2L USM"}, - {61182, "Canon RF 85mm F1.2L USM DS"}, - {61182, "Canon RF 24-70mm F2.8L IS USM"}, - {61182, "Canon RF 15-35mm F2.8L IS USM"}, - {61182, "Canon RF 24-240mm F4-6.3 IS USM"}, - {61182, "Canon RF 70-200mm F2.8L IS USM"}, - {61182, "Canon RF 85mm F2 MACRO IS STM"}, - {61182, "Canon RF 600mm F11 IS STM"}, - {61182, "Canon RF 600mm F11 IS STM + RF1.4x"}, - {61182, "Canon RF 600mm F11 IS STM + RF2x"}, - {61182, "Canon RF 800mm F11 IS STM"}, - {61182, "Canon RF 800mm F11 IS STM + RF1.4x"}, - {61182, "Canon RF 800mm F11 IS STM + RF2x"}, - {61182, "Canon RF 24-105mm F4-7.1 IS STM"}, - {61182, "Canon RF 100-500mm F4.5-7.1L IS USM"}, - {61182, "Canon RF 100-500mm F4.5-7.1L IS USM + RF1.4x"}, - {61182, "Canon RF 100-500mm F4.5-7.1L IS USM + RF2x"}, - {61182, "Canon RF 70-200mm F4L IS USM"}, - {61182, "Canon RF 100mm F2.8L MACRO IS USM"}, - {61182, "Canon RF 50mm F1.8 STM"}, - {61182, "Canon RF 14-35mm F4L IS USM"}, - {61182, "Canon RF-S 18-45mm F4.5-6.3 IS STM"}, - {61182, "Canon RF 100-400mm F5.6-8 IS USM"}, - {61182, "Canon RF 100-400mm F5.6-8 IS USM + RF1.4x"}, - {61182, "Canon RF 100-400mm F5.6-8 IS USM + RF2x"}, - {61182, "Canon RF-S 18-150mm F3.5-6.3 IS STM"}, - {61182, "Canon RF 24mm F1.8 MACRO IS STM"}, - {61182, "Canon RF 16mm F2.8 STM"}, - {61182, "Canon RF 400mm F2.8L IS USM"}, - {61182, "Canon RF 400mm F2.8L IS USM + RF1.4x"}, - {61182, "Canon RF 400mm F2.8L IS USM + RF2x"}, - {61182, "Canon RF 600mm F4L IS USM"}, - {61182, "Canon RF 800mm F5.6L IS USM"}, - {61182, "Canon RF 800mm F5.6L IS USM + RF1.4x"}, - {61182, "Canon RF 800mm F5.6L IS USM + RF2x"}, - {61182, "Canon RF 1200mm F8L IS USM"}, - {61182, "Canon RF 1200mm F8L IS USM + RF1.4x"}, - {61182, "Canon RF 1200mm F8L IS USM + RF2x"}, - {61182, "Canon RF 15-30mm F4.5-6.3 IS STM"}, - {61182, "Canon RF 135mm F1.8 L IS USM"}, - {61182, "Canon RF 24-50mm F4.5-6.3 IS STM"}, - {61182, "Canon RF-S 55-210mm F5-7.1 IS STM"}, - {65535, "n/a"}}; +constexpr TagDetails canonCsLensType[] = { + {1, "Canon EF 50mm f/1.8"}, + {2, "Canon EF 28mm f/2.8"}, + {2, "Sigma 24mm f/2.8 Super Wide II"}, // 1 + {3, "Canon EF 135mm f/2.8 Soft"}, + {4, "Canon EF 35-105mm f/3.5-4.5"}, + {4, "Sigma UC Zoom 35-135mm f/4-5.6"}, // 1 + {5, "Canon EF 35-70mm f/3.5-4.5"}, + {6, "Canon EF 28-70mm f/3.5-4.5"}, + {6, "Sigma 18-50mm f/3.5-5.6 DC"}, // 1 + {6, "Sigma 18-125mm f/3.5-5.6 DC IF ASP"}, // 2 + {6, "Tokina AF 193-2 19-35mm f/3.5-4.5"}, // 3 + {6, "Sigma 28-80mm f/3.5-5.6 II Macro"}, // 4 + {6, "Sigma 28-300mm f/3.5-6.3 DG Macro"}, // 5 + {7, "Canon EF 100-300mm f/5.6L"}, + {8, "Canon EF 100-300mm f/5.6"}, + {8, "Sigma 70-300mm f/4-5.6 [APO] DG Macro"}, // 1 + {8, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6"}, // 2 + {9, "Canon EF 70-210mm f/4"}, + {9, "Sigma 55-200mm f/4-5.6 DC"}, // 1 + {10, "Canon EF 50mm f/2.5 Macro"}, + {10, "Sigma 50mm f/2.8 EX"}, // 1 + {10, "Sigma 28mm f/1.8"}, // 2 + {10, "Sigma 105mm f/2.8 Macro EX"}, // 3 + {10, "Sigma 70mm f/2.8 EX DG Macro EF"}, // 4 + {11, "Canon EF 35mm f/2"}, + {13, "Canon EF 15mm f/2.8 Fisheye"}, + {14, "Canon EF 50-200mm f/3.5-4.5L"}, + {15, "Canon EF 50-200mm f/3.5-4.5"}, + {16, "Canon EF 35-135mm f/3.5-4.5"}, + {17, "Canon EF 35-70mm f/3.5-4.5A"}, + {18, "Canon EF 28-70mm f/3.5-4.5"}, + {20, "Canon EF 100-200mm f/4.5A"}, + {21, "Canon EF 80-200mm f/2.8L"}, + {22, "Canon EF 20-35mm f/2.8L"}, + {22, "Tokina AT-X 280 AF Pro 28-80mm f/2.8 Aspherical"}, // 1 + {23, "Canon EF 35-105mm f/3.5-4.5"}, + {24, "Canon EF 35-80mm f/4-5.6 Power Zoom"}, + {25, "Canon EF 35-80mm f/4-5.6 Power Zoom"}, + {26, "Canon EF 100mm f/2.8 Macro"}, + {26, "Cosina 100mm f/3.5 Macro AF"}, // 1 + {26, "Tamron SP AF 90mm f/2.8 Di Macro"}, // 2 + {26, "Tamron SP AF 180mm f/3.5 Di Macro"}, // 3 + {26, "Carl Zeiss Planar T* 50mm f/1.4"}, // 4 + {26, "Voigtlander APO Lanthar 125mm f/2.5 SL Macro"}, // 5 + {26, "Carl Zeiss Planar T 85mm f/1.4 ZE"}, // 6 + {27, "Canon EF 35-80mm f/4-5.6"}, + {28, "Canon EF 80-200mm f/4.5-5.6"}, + {28, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"}, // 1 + {28, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"}, // 2 + {28, "Tamron AF 70-300mm f/4-5.6 Di LD 1:2 Macro"}, // 3 + {28, "Tamron AF Aspherical 28-200mm f/3.8-5.6"}, // 4 + {29, "Canon EF 50mm f/1.8 II"}, + {30, "Canon EF 35-105mm f/4.5-5.6"}, + {31, "Canon EF 75-300mm f/4-5.6"}, + {31, "Tamron SP AF 300mm f/2.8 LD IF"}, // 1 + {32, "Canon EF 24mm f/2.8"}, + {32, "Sigma 15mm f/2.8 EX Fisheye"}, // 1 + {33, "Voigtlander Ultron 40mm f/2 SLII Aspherical"}, + {33, "Voigtlander Color Skopar 20mm f/3.5 SLII Aspherical"}, // 1 + {33, "Voigtlander APO-Lanthar 90mm f/3.5 SLII Close Focus"}, // 2 + {33, "Carl Zeiss Distagon T* 15mm f/2.8 ZE"}, // 3 + {33, "Carl Zeiss Distagon T* 18mm f/3.5 ZE"}, // 4 + {33, "Carl Zeiss Distagon T* 21mm f/2.8 ZE"}, // 5 + {33, "Carl Zeiss Distagon T* 25mm f/2 ZE"}, // 6 + {33, "Carl Zeiss Distagon T* 28mm f/2 ZE"}, // 7 + {33, "Carl Zeiss Distagon T* 35mm f/2 ZE"}, // 8 + {33, "Carl Zeiss Distagon T* 35mm f/1.4 ZE"}, // 9 + {33, "Carl Zeiss Planar T* 50mm f/1.4 ZE"}, // 10 + {33, "Carl Zeiss Makro-Planar T* 50mm f/2 ZE"}, // 11 + {33, "Carl Zeiss Makro-Planar T* 100mm f/2 ZE"}, // 12 + {33, "Carl Zeiss Apo-Sonnar T* 135mm f/2 ZE"}, // 13 + {35, "Canon EF 35-80mm f/4-5.6 II"}, + {36, "Canon EF 38-76mm f/4.5-5.6"}, + {37, "Canon EF 35-80mm f/4-5.6 III"}, + {37, "Tamron 70-200mm f/2.8 Di LD IF Macro"}, // 1 + {37, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro"}, // 2 + {37, "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical [IF]"}, // 3 + {37, "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical [IF] Macro"}, // 4 + {38, "Canon EF 80-200mm f/4.5-5.6 II"}, + {39, "Canon EF 75-300mm f/4-5.6"}, + {40, "Canon EF 28-80mm f/3.5-5.6"}, + {41, "Canon EF 28-90mm f/4-5.6"}, + {42, "Canon EF 28-200mm f/3.5-5.6"}, + {42, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro"}, // 1 + {43, "Canon EF 28-105mm f/4-5.6"}, + {44, "Canon EF 90-300mm f/4.5-5.6"}, + {45, "Canon EF-S 18-55mm f/3.5-5.6 [II]"}, + {46, "Canon EF 28-90mm f/4-5.6"}, + {47, "Zeiss Milvus 35mm f/2"}, + {47, "Zeiss Milvus 50mm f/2 Makro"}, // 1 + {47, "Zeiss Milvus 135mm f/2 ZE"}, // 2 + {48, "Canon EF-S 18-55mm f/3.5-5.6 IS"}, + {49, "Canon EF-S 55-250mm f/4-5.6 IS"}, + {50, "Canon EF-S 18-200mm f/3.5-5.6 IS"}, + {51, "Canon EF-S 18-135mm f/3.5-5.6 IS"}, + {52, "Canon EF-S 18-55mm f/3.5-5.6 IS II"}, + {53, "Canon EF-S 18-55mm f/3.5-5.6 III"}, + {54, "Canon EF-S 55-250mm f/4-5.6 IS II"}, + {60, "Irix 11mm f/4"}, + {80, "Canon TS-E 50mm f/2.8L Macro"}, + {81, "Canon TS-E 90mm f/2.8L Macro"}, + {82, "Canon TS-E 135mm f/4L Macro"}, + {94, "Canon TS-E 17mm f/4L"}, + {95, "Canon TS-E 24mm f/3.5L II"}, + {103, "Samyang AF 14mm f/2.8 EF"}, + {103, "Rokinon SP 14mm f/2.4"}, // 1 + {103, "Rokinon AF 14mm f/2.8 EF"}, // 2 + {106, "Rokinon SP / Samyang XP 35mm f/1.2"}, + {112, "Sigma 28mm f/1.5 FF High-speed Prime"}, + {112, "Sigma 40mm f/1.5 FF High-speed Prime"}, // 1 + {112, "Sigma 105mm f/1.5 FF High-speed Prime"}, // 2 + {117, "Tamron 35-150mm f/2.8-4.0 Di VC OSD"}, + {117, "Tamron SP 35mm f/1.4 Di USD"}, // 1 + {124, "Canon MP-E 65mm f/2.8 1-5x Macro Photo"}, + {125, "Canon TS-E 24mm f/3.5L"}, + {126, "Canon TS-E 45mm f/2.8"}, + {127, "Canon TS-E 90mm f/2.8"}, + {127, "Tamron 18-200mm f/3.5-6.3 Di II VC"}, // 1 + {129, "Canon EF 300mm f/2.8L USM"}, + {130, "Canon EF 50mm f/1.0L USM"}, + {131, "Canon EF 28-80mm f/2.8-4L USM"}, + {131, "Sigma 8mm f/3.5 EX DG Circular Fisheye"}, // 1 + {131, "Sigma 17-35mm f/2.8-4 EX DG Aspherical HSM"}, // 2 + {131, "Sigma 17-70mm f/2.8-4.5 DC Macro"}, // 3 + {131, "Sigma APO 50-150mm f/2.8 [II] EX DC HSM"}, // 4 + {131, "Sigma APO 120-300mm f/2.8 EX DG HSM"}, // 5 + {131, "Sigma 70-200mm f/2.8 APO EX HSM"}, // 6 + {131, "Sigma 28-70mm f/2.8-4 DG"}, // 7 + {132, "Canon EF 1200mm f/5.6L USM"}, + {134, "Canon EF 600mm f/4L IS USM"}, + {135, "Canon EF 200mm f/1.8L USM"}, + {136, "Canon EF 300mm f/2.8L USM"}, + {136, "Tamron SP 15-30mm f/2.8 Di VC USD"}, // 1 + {137, "Canon EF 85mm f/1.2L USM"}, + {137, "Sigma 18-50mm f/2.8-4.5 DC OS HSM"}, // 1 + {137, "Sigma 50-200mm f/4-5.6 DC OS HSM"}, // 2 + {137, "Sigma 18-250mm f/3.5-6.3 DC OS HSM"}, // 3 + {137, "Sigma 24-70mm f/2.8 IF EX DG HSM"}, // 4 + {137, "Sigma 18-125mm f/3.8-5.6 DC OS HSM"}, // 5 + {137, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C"}, // 6 + {137, "Sigma 17-50mm f/2.8 OS HSM"}, // 7 + {137, "Sigma 18-200mm f/3.5-6.3 DC OS HSM [II]"}, // 8 + {137, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"}, // 9 + {137, "Sigma 8-16mm f/4.5-5.6 DC HSM"}, // 10 + {137, "Tamron SP 17-50mm f/2.8 XR Di II VC"}, // 11 + {137, "Tamron SP 60mm f/2 Macro Di II"}, // 12 + {137, "Sigma 10-20mm f/3.5 EX DC HSM"}, // 13 + {137, "Tamron SP 24-70mm f/2.8 Di VC USD"}, // 14 + {137, "Sigma 18-35mm f/1.8 DC HSM | A"}, // 15 + {137, "Sigma 12-24mm f/4.5-5.6 DG HSM II"}, // 16 + {137, "Sigma 70-300mm f/4-5.6 DG OS"}, // 17 + {138, "Canon EF 28-80mm f/2.8-4L"}, + {139, "Canon EF 400mm f/2.8L USM"}, + {140, "Canon EF 500mm f/4.5L USM"}, + {141, "Canon EF 500mm f/4.5L USM"}, + {142, "Canon EF 300mm f/2.8L IS USM"}, + {143, "Canon EF 500mm f/4L IS USM"}, + {143, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM"}, // 1 + {143, "Sigma 24-105mm f/4 DG OS HSM | A"}, // 2 + {144, "Canon EF 35-135mm f/4-5.6 USM"}, + {145, "Canon EF 100-300mm f/4.5-5.6 USM"}, + {146, "Canon EF 70-210mm f/3.5-4.5 USM"}, + {147, "Canon EF 35-135mm f/4-5.6 USM"}, + {148, "Canon EF 28-80mm f/3.5-5.6 USM"}, + {149, "Canon EF 100mm f/2 USM"}, + {150, "Canon EF 14mm f/2.8L USM"}, + {150, "Sigma 20mm EX f/1.8"}, // 1 + {150, "Sigma 30mm f/1.4 DC HSM"}, // 2 + {150, "Sigma 24mm f/1.8 DG Macro EX"}, // 3 + {150, "Sigma 28mm f/1.8 DG Macro EX"}, // 4 + {150, "Sigma 18-35mm f/1.8 DC HSM | A"}, // 5 + {151, "Canon EF 200mm f/2.8L USM"}, + {152, "Canon EF 300mm f/4L IS USM"}, + {152, "Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM"}, // 1 + {152, "Sigma 14mm f/2.8 EX Aspherical HSM"}, // 2 + {152, "Sigma 10-20mm f/4-5.6"}, // 3 + {152, "Sigma 100-300mm f/4"}, // 4 + {152, "Sigma 300-800mm f/5.6 APO EX DG HSM"}, // 5 + {153, "Canon EF 35-350mm f/3.5-5.6L USM"}, + {153, "Sigma 50-500mm f/4-6.3 APO HSM EX"}, // 1 + {153, "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical [IF] Macro"}, // 2 + {153, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro"}, // 3 + {153, "Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro"}, // 4 + {154, "Canon EF 20mm f/2.8 USM"}, + {154, "Zeiss Milvus 21mm f/2.8"}, // 1 + {154, "Zeiss Milvus 15mm f/2.8 ZE"}, // 2 + {154, "Zeiss Milvus 18mm f/2.8 ZE"}, // 3 + {155, "Canon EF 85mm f/1.8 USM"}, + {155, "Sigma 14mm f/1.8 DG HSM | A"}, // 1 + {156, "Canon EF 28-105mm f/3.5-4.5 USM"}, + {156, "Tamron SP 70-300mm f/4-5.6 Di VC USD"}, // 1 + {156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"}, // 2 + {160, "Canon EF 20-35mm f/3.5-4.5 USM"}, + {160, "Tamron AF 19-35mm f/3.5-4.5"}, // 1 + {160, "Tokina AT-X 124 AF Pro DX 12-24mm f/4"}, // 2 + {160, "Tokina AT-X 107 AF DX 10-17mm f/3.5-4.5 Fisheye"}, // 3 + {160, "Tokina AT-X 116 AF Pro DX 11-16mm f/2.8"}, // 4 + {160, "Tokina AT-X 11-20 f/2.8 PRO DX Aspherical 11-20mm f/2.8"}, // 5 + {161, "Canon EF 28-70mm f/2.8L USM"}, + {161, "Sigma 24-70mm f/2.8 EX"}, // 1 + {161, "Sigma 28-70mm f/2.8 EX"}, // 2 + {161, "Sigma 24-60mm f/2.8 EX DG"}, // 3 + {161, "Tamron AF 17-50mm f/2.8 Di-II LD Aspherical"}, // 4 + {161, "Tamron 90mm f/2.8"}, // 5 + {161, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"}, // 6 + {161, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"}, // 7 + {161, "Tokina AT-X 24-70mm f/2.8 PRO FX (IF)"}, // 8 + {162, "Canon EF 200mm f/2.8L USM"}, + {163, "Canon EF 300mm f/4L"}, + {164, "Canon EF 400mm f/5.6L"}, + {165, "Canon EF 70-200mm f/2.8L USM"}, + {166, "Canon EF 70-200mm f/2.8L USM + 1.4x"}, + {167, "Canon EF 70-200mm f/2.8L USM + 2x"}, + {168, "Canon EF 28mm f/1.8 USM"}, + {168, "Sigma 50-100mm f/1.8 DC HSM | A"}, // 1 + {169, "Canon EF 17-35mm f/2.8L USM"}, + {169, "Sigma 18-200mm f/3.5-6.3 DC OS"}, // 1 + {169, "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"}, // 2 + {169, "Sigma 18-50mm f/2.8 Macro"}, // 3 + {169, "Sigma 50mm f/1.4 EX DG HSM"}, // 4 + {169, "Sigma 85mm f/1.4 EX DG HSM"}, // 5 + {169, "Sigma 30mm f/1.4 EX DC HSM"}, // 6 + {169, "Sigma 35mm f/1.4 DG HSM"}, // 7 + {169, "Sigma 35mm f/1.5 FF High-Speed Prime | 017"}, // 8 + {169, "Sigma 70mm f/2.8 Macro EX DG"}, // 9 + {170, "Canon EF 200mm f/2.8L II USM"}, + {170, "Sigma 300mm f/2.8 APO EX DG HSM"}, // 1 + {170, "Sigma 800mm f/5.6 APO EX DG HSM"}, // 2 + {171, "Canon EF 300mm f/4L USM"}, + {172, "Canon EF 400mm f/5.6L USM"}, + {172, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, // 1 + {172, "Sigma 500mm f/4.5 APO EX DG HSM"}, // 2 + {173, "Canon EF 180mm Macro f/3.5L USM"}, + {173, "Sigma 180mm EX HSM Macro f/3.5"}, // 1 + {173, "Sigma APO Macro 150mm f/2.8 EX DG HSM"}, // 2 + {173, "Sigma 10mm f/2.8 EX DC Fisheye"}, // 3 + {173, "Sigma 15mm f/2.8 EX DG Diagonal Fisheye"}, // 4 + {173, "Venus Laowa 100mm f/2.8 2X Ultra Macro APO"}, // 5 + {173, "Sigma 150-500mm f/5-6.3 APO DG OS HSM + 2x"}, // 6 + {174, "Canon EF 135mm f/2L USM"}, + {174, "Sigma 70-200mm f/2.8 EX DG APO OS HSM"}, // 1 + {174, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM"}, // 2 + {174, "Sigma 150-500mm f/5-6.3 APO DG OS HSM"}, // 3 + {174, "Zeiss Milvus 100mm f/2 Makro"}, // 4 + {174, "Sigma APO 50-150mm f/2.8 EX DC OS HSM"}, // 5 + {174, "Sigma APO 120-300mm f/2.8 EX DG OS HSM"}, // 6 + {174, "Sigma 120-300mm f/2.8 DG OS HSM S013"}, // 7 + {174, "Sigma 120-400mm f/4.5-5.6 APO DG OS HSM"}, // 8 + {174, "Sigma 200-500mm f/2.8 APO EX DG"}, // 9 + {175, "Canon EF 400mm f/2.8L USM"}, + {176, "Canon EF 24-85mm f/3.5-4.5 USM"}, + {177, "Canon EF 300mm f/4L IS USM"}, + {178, "Canon EF 28-135mm f/3.5-5.6 IS"}, + {179, "Canon EF 24mm f/1.4L USM"}, + {180, "Canon EF 35mm f/1.4L USM"}, + {180, "Sigma 50mm f/1.4 DG HSM | A"}, // 1 + {180, "Sigma 24mm f/1.4 DG HSM | A"}, // 2 + {180, "Zeiss Milvus 50mm f/1.4"}, // 3 + {180, "Zeiss Milvus 85mm f/1.4"}, // 4 + {180, "Zeiss Otus 28mm f/1.4 ZE"}, // 5 + {180, "Sigma 24mm f/1.5 FF High-Speed Prime | 017"}, // 6 + {180, "Sigma 50mm f/1.5 FF High-Speed Prime | 017"}, // 7 + {180, "Sigma 85mm f/1.5 FF High-Speed Prime | 017"}, // 8 + {180, "Tokina Opera 50mm f/1.4 FF"}, // 9 + {180, "Sigma 20mm f/1.4 DG HSM | A"}, // 10 + {181, "Canon EF 100-400mm f/4.5-5.6L IS USM + 1.4x"}, + {181, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x"}, // 1 + {182, "Canon EF 100-400mm f/4.5-5.6L IS USM + 2x"}, + {182, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 2x"}, // 1 + {183, "Canon EF 100-400mm f/4.5-5.6L IS USM"}, + {183, "Sigma 150mm f/2.8 EX DG OS HSM APO Macro"}, // 1 + {183, "Sigma 105mm f/2.8 EX DG OS HSM Macro"}, // 2 + {183, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro"}, // 3 + {183, "Sigma 150-600mm f/5-6.3 DG OS HSM | C"}, // 4 + {183, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, // 5 + {183, "Sigma 100-400mm f/5-6.3 DG OS HSM"}, // 6 + {183, "Sigma 180mm f/3.5 APO Macro EX DG IF HSM"}, // 7 + {184, "Canon EF 400mm f/2.8L USM + 2x"}, + {185, "Canon EF 600mm f/4L IS USM"}, + {186, "Canon EF 70-200mm f/4L USM"}, + {187, "Canon EF 70-200mm f/4L USM + 1.4x"}, + {188, "Canon EF 70-200mm f/4L USM + 2x"}, + {189, "Canon EF 70-200mm f/4L USM + 2.8x"}, + {190, "Canon EF 100mm f/2.8 Macro USM"}, + {191, "Canon EF 400mm f/4 DO IS"}, + {191, "Sigma 500mm f/4 DG OS HSM"}, // 1 + {193, "Canon EF 35-80mm f/4-5.6 USM"}, + {194, "Canon EF 80-200mm f/4.5-5.6 USM"}, + {195, "Canon EF 35-105mm f/4.5-5.6 USM"}, + {196, "Canon EF 75-300mm f/4-5.6 USM"}, + {197, "Canon EF 75-300mm f/4-5.6 IS USM"}, + {197, "Sigma 18-300mm f/3.5-6.3 DC Macro OS HSM"}, // 1 + {198, "Canon EF 50mm f/1.4 USM"}, + {198, "Zeiss Otus 55mm f/1.4 ZE"}, // 1 + {198, "Zeiss Otus 85mm f/1.4 ZE"}, // 2 + {198, "Zeiss Milvus 25mm f/1.4"}, // 3 + {198, "Zeiss Otus 100mm f/1.4"}, // 4 + {198, "Zeiss Milvus 35mm f/1.4 ZE"}, // 5 + {198, "Yongnuo YN 35mm f/2"}, // 6 + {199, "Canon EF 28-80mm f/3.5-5.6 USM"}, + {200, "Canon EF 75-300mm f/4-5.6 USM"}, + {201, "Canon EF 28-80mm f/3.5-5.6 USM"}, + {202, "Canon EF 28-80mm f/3.5-5.6 USM IV"}, + {208, "Canon EF 22-55mm f/4-5.6 USM"}, + {209, "Canon EF 55-200mm f/4.5-5.6"}, + {210, "Canon EF 28-90mm f/4-5.6 USM"}, + {211, "Canon EF 28-200mm f/3.5-5.6 USM"}, + {212, "Canon EF 28-105mm f/4-5.6 USM"}, + {213, "Canon EF 90-300mm f/4.5-5.6 USM"}, + {213, "Tamron SP 150-600mm f/5-6.3 Di VC USD"}, // 1 + {213, "Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro"}, // 2 + {213, "Tamron SP 35mm f/1.8 Di VC USD"}, // 3 + {213, "Tamron SP 45mm f/1.8 Di VC USD"}, // 4 + {214, "Canon EF-S 18-55mm f/3.5-5.6 USM"}, + {215, "Canon EF 55-200mm f/4.5-5.6 II USM"}, + {217, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"}, + {220, "Yongnuo YN 50mm f/1.8"}, + {224, "Canon EF 70-200mm f/2.8L IS USM"}, + {225, "Canon EF 70-200mm f/2.8L IS USM + 1.4x"}, + {226, "Canon EF 70-200mm f/2.8L IS USM + 2x"}, + {227, "Canon EF 70-200mm f/2.8L IS USM + 2.8x"}, + {228, "Canon EF 28-105mm f/3.5-4.5 USM"}, + {229, "Canon EF 16-35mm f/2.8L USM"}, + {230, "Canon EF 24-70mm f/2.8L USM"}, + {231, "Canon EF 17-40mm f/4L USM"}, + {231, "Sigma 12-24mm f/4 DG HSM A016"}, // 1 + {232, "Canon EF 70-300mm f/4.5-5.6 DO IS USM"}, + {233, "Canon EF 28-300mm f/3.5-5.6L IS USM"}, + {234, "Canon EF-S 17-85mm f/4-5.6 IS USM"}, + {234, "Tokina AT-X 12-28 PRO DX 12-28mm f/4"}, // 1 + {235, "Canon EF-S 10-22mm f/3.5-4.5 USM"}, + {236, "Canon EF-S 60mm f/2.8 Macro USM"}, + {237, "Canon EF 24-105mm f/4L IS USM"}, + {238, "Canon EF 70-300mm f/4-5.6 IS USM"}, + {239, "Canon EF 85mm f/1.2L II USM"}, + {239, "Rokinon SP 85mm f/1.2"}, // 1 + {240, "Canon EF-S 17-55mm f/2.8 IS USM"}, + {240, "Sigma 17-50mm f/2.8 EX DC OS HSM"}, // 1 + {241, "Canon EF 50mm f/1.2L USM"}, + {242, "Canon EF 70-200mm f/4L IS USM"}, + {243, "Canon EF 70-200mm f/4L IS USM + 1.4x"}, + {244, "Canon EF 70-200mm f/4L IS USM + 2x"}, + {245, "Canon EF 70-200mm f/4L IS USM + 2.8x"}, + {246, "Canon EF 16-35mm f/2.8L II USM"}, + {247, "Canon EF 14mm f/2.8L II USM"}, + {248, "Canon EF 200mm f/2L IS USM"}, + {248, "Sigma 24-35mm f/2 DG HSM | A"}, // 1 + {248, "Sigma 135mm f/2 FF High-Speed Prime | 017"}, // 2 + {248, "Sigma 24-35mm f/2.2 FF Zoom | 017"}, // 3 + {248, "Sigma 135mm f/1.8 DG HSM A017"}, // 4 + {249, "Canon EF 800mm f/5.6L IS USM"}, + {250, "Canon EF 24mm f/1.4L II USM"}, + {250, "Sigma 20mm f/1.4 DG HSM | A"}, // 1 + {250, "Sigma 20mm f/1.5 FF High-Speed Prime | 017"}, // 2 + {250, "Tokina Opera 16-28mm f/2.8 FF"}, // 3 + {250, "Sigma 85mm f/1.4 DG HSM A016"}, // 4 + {251, "Canon EF 70-200mm f/2.8L IS II USM"}, + {251, "Canon EF 70-200mm f/2.8L IS III USM"}, // 1 + {252, "Canon EF 70-200mm f/2.8L IS II USM + 1.4x"}, + {252, "Canon EF 70-200mm f/2.8L IS III USM + 1.4x"}, // 1 + {253, "Canon EF 70-200mm f/2.8L IS II USM + 2x"}, + {253, "Canon EF 70-200mm f/2.8L IS III USM + 2x"}, // 1 + {254, "Canon EF 100mm f/2.8L Macro IS USM"}, // 1 + {254, "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1"}, // 2 + {255, "Sigma 24-105mm f/4 DG OS HSM | A"}, + {255, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro"}, // 1 + {368, "Sigma 14-24mm f/2.8 DG HSM | A"}, + {368, "Sigma 20mm f/1.4 DG HSM | A"}, // 1 + {368, "Sigma 50mm f/1.4 DG HSM | A"}, // 2 + {368, "Sigma 40mm f/1.4 DG HSM | A"}, // 3 + {368, "Sigma 60-600mm f/4.5-6.3 DG OS HSM | S"}, // 4 + {368, "Sigma 28mm f/1.4 DG HSM | A"}, // 5 + {368, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, // 6 + {368, "Sigma 85mm f/1.4 DG HSM | A"}, // 7 + {368, "Sigma 105mm f/1.4 DG HSM"}, // 8 + {368, "Sigma 70mm f/2.8 DG Macro"}, // 9 + {368, "Sigma 18-35mm f/1.8 DC HSM | A"}, // 10 + {368, "Sigma 35mm f/1.4 DG HSM | A"}, // 11 + {488, "Canon EF-S 15-85mm f/3.5-5.6 IS USM"}, + {489, "Canon EF 70-300mm f/4-5.6L IS USM"}, + {490, "Canon EF 8-15mm f/4L Fisheye USM"}, + {491, "Canon EF 300mm f/2.8L IS II USM"}, + {491, "Tamron SP 70-200mm f/2.8 Di VC USD G2"}, // 1 + {491, "Tamron 18-400mm f/3.5-6.3 Di II VC HLD"}, // 2 + {491, "Tamron 100-400mm f/4.5-6.3 Di VC USD"}, // 3 + {491, "Tamron 70-210mm f/4 Di VC USD"}, // 4 + {491, "Tamron 70-210mm f/4 Di VC USD + 1.4x"}, // 5 + {491, "Tamron SP 24-70mm f/2.8 Di VC USD G2"}, // 6 + {492, "Canon EF 400mm f/2.8L IS II USM"}, + {493, "Canon EF 500mm f/4L IS II USM"}, + {493, "Canon EF 24-105mm f/4L IS USM"}, // 1 + {494, "Canon EF 600mm f/4L IS II USM"}, + {495, "Canon EF 24-70mm f/2.8L II USM"}, + {495, "Sigma 24-70mm f/2.8 DG OS HSM | A"}, // 1 + {496, "Canon EF 200-400mm f/4L IS USM"}, + {499, "Canon EF 200-400mm f/4L IS USM + 1.4x"}, + {502, "Canon EF 28mm f/2.8 IS USM"}, + {502, "Tamron 35mm f/1.8 Di VC USD"}, // 1 + {503, "Canon EF 24mm f/2.8 IS USM"}, + {504, "Canon EF 24-70mm f/4L IS USM"}, + {505, "Canon EF 35mm f/2 IS USM"}, + {506, "Canon EF 400mm f/4 DO IS II USM"}, + {507, "Canon EF 16-35mm f/4L IS USM"}, + {508, "Canon EF 11-24mm f/4L USM"}, + {508, "Tamron 10-24mm f/3.5-4.5 Di II VC HLD"}, // 1 + {624, "Sigma 70-200mm f/2.8 DG OS HSM | S"}, + {747, "Canon EF 100-400mm f/4.5-5.6L IS II USM"}, + {747, "Tamron SP 150-600mm f/5-6.3 Di VC USD G2"}, // 1 + {748, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x"}, + {748, "Tamron 100-400mm f/4.5-6.3 Di VC USD + 1.4x"}, // 1 + {748, "Tamron 70-210mm f/4 Di VC USD + 2x"}, // 2 + {749, "Tamron 100-400mm f/4.5-6.3 Di VC USD + 2x"}, + {749, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 2x"}, // 1 + {750, "Canon EF 35mm f/1.4L II USM"}, + {750, "Tamron SP 85mm f/1.8 Di VC USD"}, // 1 + {750, "Tamron SP 45mm f/1.8 Di VC USD"}, // 2 + {751, "Canon EF 16-35mm f/2.8L III USM"}, + {752, "Canon EF 24-105mm f/4L IS II USM"}, + {753, "Canon EF 85mm f/1.4L IS USM"}, + {754, "Canon EF 70-200mm f/4L IS II USM"}, + {757, "Canon EF 400mm f/2.8L IS III USM"}, + {758, "Canon EF 600mm f/4L IS III USM"}, + {1136, "Sigma 24-70mm f/2.8 DG OS HSM | Art 017"}, + {4142, "Canon EF-S 18-135mm f/3.5-5.6 IS STM"}, + {4143, "Canon EF-M 18-55mm f/3.5-5.6 IS STM"}, + {4143, "Tamron 18-200mm f/3.5-6.3 Di III VC"}, // 1 + {4144, "Canon EF 40mm f/2.8 STM"}, + {4145, "Canon EF-M 22mm f/2 STM"}, + {4146, "Canon EF-S 18-55mm f/3.5-5.6 IS STM"}, + {4147, "Canon EF-M 11-22mm f/4-5.6 IS STM"}, + {4148, "Canon EF-S 55-250mm f/4-5.6 IS STM"}, + {4149, "Canon EF-M 55-200mm f/4.5-6.3 IS STM"}, + {4150, "Canon EF-S 10-18mm f/4.5-5.6 IS STM"}, + {4152, "Canon EF 24-105mm f/3.5-5.6 IS STM"}, + {4153, "Canon EF-M 15-45mm f/3.5-6.3 IS STM"}, + {4154, "Canon EF-S 24mm f/2.8 STM"}, + {4155, "Canon EF-M 28mm f/3.5 Macro IS STM"}, + {4156, "Canon EF 50mm f/1.8 STM"}, + {4157, "Canon EF-M 18-150mm f/3.5-6.3 IS STM"}, + {4158, "Canon EF-S 18-55mm f/4-5.6 IS STM"}, + {4159, "Canon EF-M 32mm f/1.4 STM"}, + {4160, "Canon EF-S 35mm f/2.8 Macro IS STM"}, + {4208, "Sigma 56mm f/1.4 DC DN | C"}, + {4208, "Sigma 30mm f/1.4 DC DN | C"}, + {36910, "Canon EF 70-300mm f/4-5.6 IS II USM"}, + {36912, "Canon EF-S 18-135mm f/3.5-5.6 IS USM"}, + {61491, "Canon CN-E 14mm T3.1 L F"}, + {61492, "Canon CN-E 24mm T1.5 L F"}, + {61494, "Canon CN-E 85mm T1.3 L F"}, + {61495, "Canon CN-E 135mm T2.2 L F"}, + {61496, "Canon CN-E 35mm T1.5 L F"}, + // All RF lenses seem to share the LensType value 61182; + // unique RFLensType tag below is to be preferred instead. + // Please keep this list in sync w/ RFLensType list + {61182, "Canon RF 50mm F1.2L USM"}, + {61182, "Canon RF 24-105mm F4L IS USM"}, + {61182, "Canon RF 28-70mm F2L USM"}, + {61182, "Canon RF 35mm F1.8 MACRO IS STM"}, + {61182, "Canon RF 85mm F1.2L USM"}, + {61182, "Canon RF 85mm F1.2L USM DS"}, + {61182, "Canon RF 24-70mm F2.8L IS USM"}, + {61182, "Canon RF 15-35mm F2.8L IS USM"}, + {61182, "Canon RF 24-240mm F4-6.3 IS USM"}, + {61182, "Canon RF 70-200mm F2.8L IS USM"}, + {61182, "Canon RF 85mm F2 MACRO IS STM"}, + {61182, "Canon RF 600mm F11 IS STM"}, + {61182, "Canon RF 600mm F11 IS STM + RF1.4x"}, + {61182, "Canon RF 600mm F11 IS STM + RF2x"}, + {61182, "Canon RF 800mm F11 IS STM"}, + {61182, "Canon RF 800mm F11 IS STM + RF1.4x"}, + {61182, "Canon RF 800mm F11 IS STM + RF2x"}, + {61182, "Canon RF 24-105mm F4-7.1 IS STM"}, + {61182, "Canon RF 100-500mm F4.5-7.1L IS USM"}, + {61182, "Canon RF 100-500mm F4.5-7.1L IS USM + RF1.4x"}, + {61182, "Canon RF 100-500mm F4.5-7.1L IS USM + RF2x"}, + {61182, "Canon RF 70-200mm F4L IS USM"}, + {61182, "Canon RF 100mm F2.8L MACRO IS USM"}, + {61182, "Canon RF 50mm F1.8 STM"}, + {61182, "Canon RF 14-35mm F4L IS USM"}, + {61182, "Canon RF-S 18-45mm F4.5-6.3 IS STM"}, + {61182, "Canon RF 100-400mm F5.6-8 IS USM"}, + {61182, "Canon RF 100-400mm F5.6-8 IS USM + RF1.4x"}, + {61182, "Canon RF 100-400mm F5.6-8 IS USM + RF2x"}, + {61182, "Canon RF-S 18-150mm F3.5-6.3 IS STM"}, + {61182, "Canon RF 24mm F1.8 MACRO IS STM"}, + {61182, "Canon RF 16mm F2.8 STM"}, + {61182, "Canon RF 400mm F2.8L IS USM"}, + {61182, "Canon RF 400mm F2.8L IS USM + RF1.4x"}, + {61182, "Canon RF 400mm F2.8L IS USM + RF2x"}, + {61182, "Canon RF 600mm F4L IS USM"}, + {61182, "Canon RF 800mm F5.6L IS USM"}, + {61182, "Canon RF 800mm F5.6L IS USM + RF1.4x"}, + {61182, "Canon RF 800mm F5.6L IS USM + RF2x"}, + {61182, "Canon RF 1200mm F8L IS USM"}, + {61182, "Canon RF 1200mm F8L IS USM + RF1.4x"}, + {61182, "Canon RF 1200mm F8L IS USM + RF2x"}, + {61182, "Canon RF 15-30mm F4.5-6.3 IS STM"}, + {61182, "Canon RF 135mm F1.8 L IS USM"}, + {61182, "Canon RF 24-50mm F4.5-6.3 IS STM"}, + {61182, "Canon RF-S 55-210mm F5-7.1 IS STM"}, + {65535, "n/a"}, +}; //! FlashActivity, tag 0x001c -constexpr TagDetails canonCsFlashActivity[] = {{0, N_("Did not fire")}, {1, N_("Fired")}}; +constexpr TagDetails canonCsFlashActivity[] = { + {0, N_("Did not fire")}, + {1, N_("Fired")}, +}; //! FlashDetails, tag 0x001d constexpr TagDetailsBitmask canonCsFlashDetails[] = { @@ -1967,36 +2087,56 @@ constexpr TagDetailsBitmask canonCsFlashDetails[] = { {0x0001, N_("Manual")}, {0x0002, N_("TTL")}, {0x0004, N_("A-TTL")}, {0x0008, N_("E-TTL")}, {0x0010, N_("FP sync enabled")}, {0x0080, N_("2nd-curtain sync used")}, - {0x0800, N_("FP sync used")}}; + {0x0800, N_("FP sync used")}, +}; //! FocusContinuous, tag 0x0020 -constexpr TagDetails canonCsFocusContinuous[] = {{0, N_("Single")}, {1, N_("Continuous")}, {8, N_("Manual")}}; +constexpr TagDetails canonCsFocusContinuous[] = { + {0, N_("Single")}, + {1, N_("Continuous")}, + {8, N_("Manual")}, +}; //! AESetting, tag 0x0021 -constexpr TagDetails canonCsAESetting[] = {{0, N_("Normal AE")}, {1, N_("Exposure compensation")}, - {2, N_("AE lock")}, {3, N_("AE lock + exposure compensation")}, - {4, N_("No AE")}, {65535, N_("n/a")}}; +constexpr TagDetails canonCsAESetting[] = { + {0, N_("Normal AE")}, {1, N_("Exposure compensation")}, + {2, N_("AE lock")}, {3, N_("AE lock + exposure compensation")}, + {4, N_("No AE")}, {65535, N_("n/a")}, +}; //! ImageStabilization, tag 0x0022 constexpr TagDetails canonCsImageStabilization[] = { - {0, N_("Off")}, {1, N_("On")}, {2, N_("Shoot Only")}, {3, N_("Panning")}, - {4, N_("Dynamic")}, {256, N_("Off (2)")}, {257, N_("On (2)")}, {258, N_("Shoot Only (2)")}, - {259, N_("Panning (2)")}, {260, N_("Dynamic (2)")}}; + {0, N_("Off")}, {1, N_("On")}, + {2, N_("Shoot Only")}, {3, N_("Panning")}, + {4, N_("Dynamic")}, {256, N_("Off (2)")}, + {257, N_("On (2)")}, {258, N_("Shoot Only (2)")}, + {259, N_("Panning (2)")}, {260, N_("Dynamic (2)")}, +}; //! SpotMeteringMode, tag 0x0027 -constexpr TagDetails canonCsSpotMeteringMode[] = {{0, N_("Center")}, {1, N_("AF Point")}, {65535, N_("n/a")}}; +constexpr TagDetails canonCsSpotMeteringMode[] = { + {0, N_("Center")}, + {1, N_("AF Point")}, + {65535, N_("n/a")}, +}; //! PhotoEffect, tag 0x0028 -constexpr TagDetails canonCsPhotoEffect[] = {{0, N_("Off")}, {1, N_("Vivid")}, {2, N_("Neutral")}, - {3, N_("Smooth")}, {4, N_("Sepia")}, {5, N_("B&W")}, - {6, N_("Custom")}, {100, N_("My color data")}, {65535, N_("n/a")}}; +constexpr TagDetails canonCsPhotoEffect[] = { + {0, N_("Off")}, {1, N_("Vivid")}, {2, N_("Neutral")}, {3, N_("Smooth")}, {4, N_("Sepia")}, + {5, N_("B&W")}, {6, N_("Custom")}, {100, N_("My color data")}, {65535, N_("n/a")}, +}; //! ManualFlashOutput, tag 0x0029 [[maybe_unused]] constexpr TagDetails canonCsManualFlashOutput[] = { - {0x0000, N_("n/a")}, {0x0500, N_("Full")}, {0x0502, N_("Medium")}, {0x0504, N_("Low")}, {0x7fff, N_("n/a")}}; + {0x0000, N_("n/a")}, {0x0500, N_("Full")}, {0x0502, N_("Medium")}, {0x0504, N_("Low")}, {0x7fff, N_("n/a")}, +}; //! SRAWQuality, tag 0x002e -constexpr TagDetails canonCsSRAWQuality[] = {{0, N_("n/a")}, {1, N_("sRAW1 (mRAW)")}, {2, N_("sRAW2 (sRAW)")}}; +constexpr TagDetails canonCsSRAWQuality[] = { + {0, N_("n/a")}, + {1, N_("sRAW1 (mRAW)")}, + {2, N_("sRAW2 (sRAW)")}, +}; // Canon Camera Settings Tag Info constexpr TagInfo CanonMakerNote::tagInfoCs_[] = { @@ -2092,14 +2232,18 @@ const TagInfo* CanonMakerNote::tagListCs() { //! AFPointUsed, tag 0x000e constexpr TagDetailsBitmask canonSiAFPointUsed[] = { - {0x0004, N_("left")}, {0x0002, N_("center")}, {0x0001, N_("right")}}; + {0x0004, N_("left")}, + {0x0002, N_("center")}, + {0x0001, N_("right")}, +}; //! FlashBias, tag 0x000f constexpr TagDetails canonSiFlashBias[] = { {0xffc0, "-2 EV"}, {0xffcc, "-1.67 EV"}, {0xffd0, "-1.50 EV"}, {0xffd4, "-1.33 EV"}, {0xffe0, "-1 EV"}, {0xffec, "-0.67 EV"}, {0xfff0, "-0.50 EV"}, {0xfff4, "-0.33 EV"}, {0x0000, "0 EV"}, {0x000c, "0.33 EV"}, {0x0010, "0.50 EV"}, {0x0014, "0.67 EV"}, {0x0020, "1 EV"}, {0x002c, "1.33 EV"}, {0x0030, "1.50 EV"}, - {0x0034, "1.67 EV"}, {0x0040, "2 EV"}}; + {0x0034, "1.67 EV"}, {0x0040, "2 EV"}, +}; constexpr TagDetails cameraType[] = { {0, "n/a"}, {248, "EOS High-end"}, {250, "Compact"}, {252, "EOS Mid-range"}, {255, "DV Camera"}, @@ -2109,14 +2253,25 @@ constexpr TagDetails autoExposureBracketing[] = { {65535, "On"}, {0, "Off"}, {1, "On (shot 1)"}, {2, "On (shot 2)"}, {3, "On (shot 3)"}, }; -constexpr TagDetails slowShutter[] = {{65535, "n/a"}, {0, "Off"}, {1, "Night Scene"}, {2, "On"}, {3, "None"}}; +constexpr TagDetails slowShutter[] = { + {65535, "n/a"}, {0, "Off"}, {1, "Night Scene"}, {2, "On"}, {3, "None"}, +}; constexpr TagDetails autoRotate[] = { - {-1, "n/a"}, {0, "None"}, {1, "Rotate 90 CW"}, {2, "Rotate 180"}, {3, "Rotate 270 CW"}}; + {-1, "n/a"}, {0, "None"}, {1, "Rotate 90 CW"}, {2, "Rotate 180"}, {3, "Rotate 270 CW"}, +}; -constexpr TagDetails ndRotate[] = {{65535, "n/a"}, {0, "Off"}, {1, "On"}}; +constexpr TagDetails ndRotate[] = { + {65535, "n/a"}, + {0, "Off"}, + {1, "On"}, +}; -constexpr TagDetails selfTimer2[] = {{65535, "n/a"}, {0, "Selftimer 2s"}, {1, "Selftimer 10s"}}; +constexpr TagDetails selfTimer2[] = { + {65535, "n/a"}, + {0, "Selftimer 2s"}, + {1, "Selftimer 10s"}, +}; // Canon Shot Info Tag constexpr TagInfo CanonMakerNote::tagInfoSi_[] = { @@ -2187,11 +2342,10 @@ const TagInfo* CanonMakerNote::tagListSi() { } //! PanoramaDirection, tag 0x0005 -constexpr TagDetails canonPaDirection[] = {{0, N_("Left to right")}, - {1, N_("Right to left")}, - {2, N_("Bottom to top")}, - {3, N_("Top to bottom")}, - {4, N_("2x2 matrix (Clockwise)")}}; +constexpr TagDetails canonPaDirection[] = { + {0, N_("Left to right")}, {1, N_("Right to left")}, {2, N_("Bottom to top")}, + {3, N_("Top to bottom")}, {4, N_("2x2 matrix (Clockwise)")}, +}; // Canon Panorama Info constexpr TagInfo CanonMakerNote::tagInfoPa_[] = { @@ -2252,13 +2406,15 @@ const TagInfo* CanonMakerNote::tagListCf() { //! AFPointsUsed, tag 0x0016 constexpr TagDetailsBitmask canonPiAFPointsUsed[] = { {0x01, N_("right")}, {0x02, N_("mid-right")}, {0x04, N_("bottom")}, {0x08, N_("center")}, - {0x10, N_("top")}, {0x20, N_("mid-left")}, {0x40, N_("left")}}; + {0x10, N_("top")}, {0x20, N_("mid-left")}, {0x40, N_("left")}, +}; //! AFPointsUsed20D, tag 0x001a constexpr TagDetailsBitmask canonPiAFPointsUsed20D[] = { {0x001, N_("top")}, {0x002, N_("upper-left")}, {0x004, N_("upper-right")}, {0x008, N_("left")}, {0x010, N_("center")}, {0x020, N_("right")}, - {0x040, N_("lower-left")}, {0x080, N_("lower-right")}, {0x100, N_("bottom")}}; + {0x040, N_("lower-left")}, {0x080, N_("lower-right")}, {0x100, N_("bottom")}, +}; // Canon Picture Info Tag constexpr TagInfo CanonMakerNote::tagInfoPi_[] = { @@ -2285,93 +2441,105 @@ const TagInfo* CanonMakerNote::tagListPi() { //! BracketMode, tag 0x0003 constexpr TagDetails canonBracketMode[] = { - {0, N_("Off")}, {1, N_("AEB")}, {2, N_("FEB")}, {3, N_("ISO")}, {4, N_("WB")}}; + {0, N_("Off")}, {1, N_("AEB")}, {2, N_("FEB")}, {3, N_("ISO")}, {4, N_("WB")}, +}; //! RawJpgSize, tag 0x0007 -constexpr TagDetails canonRawJpgSize[] = {{-1, N_("n/a")}, - {0, N_("Large")}, - {1, N_("Medium")}, - {2, N_("Small")}, - {5, N_("Medium 1")}, - {6, N_("Medium 2")}, - {7, N_("Medium 3")}, - {8, N_("Postcard")}, - {9, N_("Widescreen")}, - {10, N_("Medium Widescreen")}, - {14, N_("Small 1")}, - {15, N_("Small 2")}, - {16, N_("Small 3")}, - {128, N_("640x480 Movie")}, - {129, N_("Medium Movie")}, - {130, N_("Small Movie")}, - {137, N_("1280x720 Movie")}, - {142, N_("1920x1080 Movie")}, - {143, N_("4096x2160 Movie")}}; +constexpr TagDetails canonRawJpgSize[] = { + {-1, N_("n/a")}, + {0, N_("Large")}, + {1, N_("Medium")}, + {2, N_("Small")}, + {5, N_("Medium 1")}, + {6, N_("Medium 2")}, + {7, N_("Medium 3")}, + {8, N_("Postcard")}, + {9, N_("Widescreen")}, + {10, N_("Medium Widescreen")}, + {14, N_("Small 1")}, + {15, N_("Small 2")}, + {16, N_("Small 3")}, + {128, N_("640x480 Movie")}, + {129, N_("Medium Movie")}, + {130, N_("Small Movie")}, + {137, N_("1280x720 Movie")}, + {142, N_("1920x1080 Movie")}, + {143, N_("4096x2160 Movie")}, +}; //! NoiseReduction, tag 0x0008 constexpr TagDetails canonNoiseReduction[] = { - {0, N_("Off")}, {1, N_("On 1")}, {2, N_("On 2")}, {3, N_("On")}, {4, N_("Auto")}}; + {0, N_("Off")}, {1, N_("On 1")}, {2, N_("On 2")}, {3, N_("On")}, {4, N_("Auto")}, +}; //! WBBracketMode, tag 0x0009 -constexpr TagDetails canonWBBracketMode[] = {{0, N_("Off")}, {1, N_("On (shift AB)")}, {2, N_("On (shift GM)")}}; +constexpr TagDetails canonWBBracketMode[] = { + {0, N_("Off")}, + {1, N_("On (shift AB)")}, + {2, N_("On (shift GM)")}, +}; //! FilterEffect, tag 0x000e constexpr TagDetails canonFilterEffect[] = { - {0, N_("None")}, {1, N_("Yellow")}, {2, N_("Orange")}, {3, N_("Red")}, {4, N_("Green")}}; + {0, N_("None")}, {1, N_("Yellow")}, {2, N_("Orange")}, {3, N_("Red")}, {4, N_("Green")}, +}; //! ToningEffect, tag 0x000e constexpr TagDetails canonToningEffect[] = { - {0, N_("None")}, {1, N_("Sepia")}, {2, N_("Blue")}, {3, N_("Purple")}, {4, N_("Green")}}; + {0, N_("None")}, {1, N_("Sepia")}, {2, N_("Blue")}, {3, N_("Purple")}, {4, N_("Green")}, +}; //! RFLensType, tag 0x003D // from https://github.com/exiftool/exiftool/blob/12.49/lib/Image/ExifTool/Canon.pm#L6791 -constexpr TagDetails canonRFLensType[] = {{0, N_("n/a")}, - {257, "Canon RF 50mm F1.2L USM"}, - {258, "Canon RF 24-105mm F4L IS USM"}, - {259, "Canon RF 28-70mm F2L USM"}, - {260, "Canon RF 35mm F1.8 MACRO IS STM"}, - {261, "Canon RF 85mm F1.2L USM"}, - {262, "Canon RF 85mm F1.2L USM DS"}, - {263, "Canon RF 24-70mm F2.8L IS USM"}, - {264, "Canon RF 15-35mm F2.8L IS USM"}, - {265, "Canon RF 24-240mm F4-6.3 IS USM"}, - {266, "Canon RF 70-200mm F2.8L IS USM"}, - {267, "Canon RF 85mm F2 MACRO IS STM"}, - {268, "Canon RF 600mm F11 IS STM"}, - {269, "Canon RF 600mm F11 IS STM + RF1.4x"}, - {270, "Canon RF 600mm F11 IS STM + RF2x"}, - {271, "Canon RF 800mm F11 IS STM"}, - {272, "Canon RF 800mm F11 IS STM + RF1.4x"}, - {273, "Canon RF 800mm F11 IS STM + RF2x"}, - {274, "Canon RF 24-105mm F4-7.1 IS STM"}, - {275, "Canon RF 100-500mm F4.5-7.1L IS USM"}, - {276, "Canon RF 100-500mm F4.5-7.1L IS USM + RF1.4x"}, - {277, "Canon RF 100-500mm F4.5-7.1L IS USM + RF2x"}, - {278, "Canon RF 70-200mm F4L IS USM"}, - {279, "Canon RF 100mm F2.8L MACRO IS USM"}, - {280, "Canon RF 50mm F1.8 STM"}, - {281, "Canon RF 14-35mm F4L IS USM"}, - {282, "Canon RF-S 18-45mm F4.5-6.3 IS STM"}, - {283, "Canon RF 100-400mm F5.6-8 IS USM"}, - {284, "Canon RF 100-400mm F5.6-8 IS USM + RF1.4x"}, - {285, "Canon RF 100-400mm F5.6-8 IS USM + RF2x"}, - {286, "Canon RF-S 18-150mm F3.5-6.3 IS STM"}, - {287, "Canon RF 24mm F1.8 MACRO IS STM"}, - {288, "Canon RF 16mm F2.8 STM"}, - {289, "Canon RF 400mm F2.8L IS USM"}, - {290, "Canon RF 400mm F2.8L IS USM + RF1.4x"}, - {291, "Canon RF 400mm F2.8L IS USM + RF2x"}, - {292, "Canon RF 600mm F4L IS USM"}, - {295, "Canon RF 800mm F5.6L IS USM"}, - {296, "Canon RF 800mm F5.6L IS USM + RF1.4x"}, - {297, "Canon RF 800mm F5.6L IS USM + RF2x"}, - {298, "Canon RF 1200mm F8L IS USM"}, - {299, "Canon RF 1200mm F8L IS USM + RF1.4x"}, - {300, "Canon RF 1200mm F8L IS USM + RF2x"}, - {302, "Canon RF 15-30mm F4.5-6.3 IS STM"}, - {303, "Canon RF 135mm F1.8 L IS USM"}, - {304, "Canon RF 24-50mm F4.5-6.3 IS STM"}, - {305, "Canon RF-S 55-210mm F5-7.1 IS STM"}}; +constexpr TagDetails canonRFLensType[] = { + {0, N_("n/a")}, + {257, "Canon RF 50mm F1.2L USM"}, + {258, "Canon RF 24-105mm F4L IS USM"}, + {259, "Canon RF 28-70mm F2L USM"}, + {260, "Canon RF 35mm F1.8 MACRO IS STM"}, + {261, "Canon RF 85mm F1.2L USM"}, + {262, "Canon RF 85mm F1.2L USM DS"}, + {263, "Canon RF 24-70mm F2.8L IS USM"}, + {264, "Canon RF 15-35mm F2.8L IS USM"}, + {265, "Canon RF 24-240mm F4-6.3 IS USM"}, + {266, "Canon RF 70-200mm F2.8L IS USM"}, + {267, "Canon RF 85mm F2 MACRO IS STM"}, + {268, "Canon RF 600mm F11 IS STM"}, + {269, "Canon RF 600mm F11 IS STM + RF1.4x"}, + {270, "Canon RF 600mm F11 IS STM + RF2x"}, + {271, "Canon RF 800mm F11 IS STM"}, + {272, "Canon RF 800mm F11 IS STM + RF1.4x"}, + {273, "Canon RF 800mm F11 IS STM + RF2x"}, + {274, "Canon RF 24-105mm F4-7.1 IS STM"}, + {275, "Canon RF 100-500mm F4.5-7.1L IS USM"}, + {276, "Canon RF 100-500mm F4.5-7.1L IS USM + RF1.4x"}, + {277, "Canon RF 100-500mm F4.5-7.1L IS USM + RF2x"}, + {278, "Canon RF 70-200mm F4L IS USM"}, + {279, "Canon RF 100mm F2.8L MACRO IS USM"}, + {280, "Canon RF 50mm F1.8 STM"}, + {281, "Canon RF 14-35mm F4L IS USM"}, + {282, "Canon RF-S 18-45mm F4.5-6.3 IS STM"}, + {283, "Canon RF 100-400mm F5.6-8 IS USM"}, + {284, "Canon RF 100-400mm F5.6-8 IS USM + RF1.4x"}, + {285, "Canon RF 100-400mm F5.6-8 IS USM + RF2x"}, + {286, "Canon RF-S 18-150mm F3.5-6.3 IS STM"}, + {287, "Canon RF 24mm F1.8 MACRO IS STM"}, + {288, "Canon RF 16mm F2.8 STM"}, + {289, "Canon RF 400mm F2.8L IS USM"}, + {290, "Canon RF 400mm F2.8L IS USM + RF1.4x"}, + {291, "Canon RF 400mm F2.8L IS USM + RF2x"}, + {292, "Canon RF 600mm F4L IS USM"}, + {295, "Canon RF 800mm F5.6L IS USM"}, + {296, "Canon RF 800mm F5.6L IS USM + RF1.4x"}, + {297, "Canon RF 800mm F5.6L IS USM + RF2x"}, + {298, "Canon RF 1200mm F8L IS USM"}, + {299, "Canon RF 1200mm F8L IS USM + RF1.4x"}, + {300, "Canon RF 1200mm F8L IS USM + RF2x"}, + {302, "Canon RF 15-30mm F4.5-6.3 IS STM"}, + {303, "Canon RF 135mm F1.8 L IS USM"}, + {304, "Canon RF 24-50mm F4.5-6.3 IS STM"}, + {305, "Canon RF-S 55-210mm F5-7.1 IS STM"}, +}; // Canon File Info Tag constexpr TagInfo CanonMakerNote::tagInfoFi_[] = { @@ -2421,11 +2589,16 @@ const TagInfo* CanonMakerNote::tagListFi() { } //! Tone Curve Values -constexpr TagDetails canonToneCurve[] = {{0, N_("Standard")}, {1, N_("Manual")}, {2, N_("Custom")}}; +constexpr TagDetails canonToneCurve[] = { + {0, N_("Standard")}, + {1, N_("Manual")}, + {2, N_("Custom")}, +}; //! Sharpness Frequency Values -constexpr TagDetails canonSharpnessFrequency[] = {{0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")}, - {3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")}}; +constexpr TagDetails canonSharpnessFrequency[] = { + {0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")}, {3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")}, +}; // Canon Processing Info Tag constexpr TagInfo CanonMakerNote::tagInfoPr_[] = { diff --git a/src/casiomn_int.cpp b/src/casiomn_int.cpp index 7c3f993ed3..433bec6080 100644 --- a/src/casiomn_int.cpp +++ b/src/casiomn_int.cpp @@ -21,62 +21,84 @@ // class member definitions namespace Exiv2::Internal { //! RecordingMode, tag 0x0001 -constexpr TagDetails casioRecordingMode[] = {{1, N_("Single Shutter")}, {2, N_("Panorama")}, {3, N_("Night Scene")}, - {4, N_("Portrait")}, {5, N_("Landscape")}, {7, N_("Panorama")}, - {10, N_("Night Scene")}, {15, N_("Portrait")}, {16, N_("Landscape")}}; +constexpr TagDetails casioRecordingMode[] = { + {1, N_("Single Shutter")}, {2, N_("Panorama")}, {3, N_("Night Scene")}, + {4, N_("Portrait")}, {5, N_("Landscape")}, {7, N_("Panorama")}, + {10, N_("Night Scene")}, {15, N_("Portrait")}, {16, N_("Landscape")}, +}; //! Quality, tag 0x0002 -constexpr TagDetails casioQuality[] = {{1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")}}; +constexpr TagDetails casioQuality[] = { + {1, N_("Economy")}, + {2, N_("Normal")}, + {3, N_("Fine")}, +}; //! Focus Mode, tag 0x0003 constexpr TagDetails casioFocusMode[] = { - {2, N_("Macro")}, {3, N_("Auto")}, {4, N_("Manual")}, {5, N_("Infinity")}, {7, N_("Sport AF")}}; + {2, N_("Macro")}, {3, N_("Auto")}, {4, N_("Manual")}, {5, N_("Infinity")}, {7, N_("Sport AF")}, +}; //! FlashMode, tag 0x0004 constexpr TagDetails casioFlashMode[] = { - {1, N_("Auto")}, {2, N_("On")}, {3, N_("Off")}, {4, N_("Off")}, {5, N_("Red-eye Reduction")}}; + {1, N_("Auto")}, {2, N_("On")}, {3, N_("Off")}, {4, N_("Off")}, {5, N_("Red-eye Reduction")}, +}; //! Flash intensity, tag 0x0005 constexpr TagDetails casioFlashIntensity[] = { - {11, N_("Weak")}, {12, N_("Low")}, {13, N_("Normal")}, {14, N_("High")}, {15, N_("Strong")}}; + {11, N_("Weak")}, {12, N_("Low")}, {13, N_("Normal")}, {14, N_("High")}, {15, N_("Strong")}, +}; //! white balance, tag 0x0007 -constexpr TagDetails casioWhiteBalance[] = {{1, N_("Auto")}, {2, N_("Tungsten")}, {3, N_("Daylight")}, - {4, N_("Fluorescent")}, {5, N_("Shade")}, {129, N_("Manual")}}; +constexpr TagDetails casioWhiteBalance[] = { + {1, N_("Auto")}, {2, N_("Tungsten")}, {3, N_("Daylight")}, + {4, N_("Fluorescent")}, {5, N_("Shade")}, {129, N_("Manual")}, +}; //! Flash intensity, tag 0x0005 -constexpr TagDetails casioDigitalZoom[] = {{0x10000, N_("Off")}, {0x10001, N_("2x")}, {0x13333, N_("1.2x")}, - {0x13ae1, N_("1.23x")}, {0x19999, N_("1.6x")}, {0x20000, N_("2x")}, - {0x33333, N_("3.2x")}, {0x40000, N_("4x")}}; +constexpr TagDetails casioDigitalZoom[] = { + {0x10000, N_("Off")}, {0x10001, N_("2x")}, {0x13333, N_("1.2x")}, {0x13ae1, N_("1.23x")}, + {0x19999, N_("1.6x")}, {0x20000, N_("2x")}, {0x33333, N_("3.2x")}, {0x40000, N_("4x")}, +}; //! Sharpness, tag 0x000b -constexpr TagDetails casioSharpness[] = {{0, N_("Normal")}, {1, N_("Soft")}, {2, N_("Hard")}, - {16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")}}; +constexpr TagDetails casioSharpness[] = { + {0, N_("Normal")}, {1, N_("Soft")}, {2, N_("Hard")}, {16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")}, +}; //! Contrast, tag 0x000c -constexpr TagDetails casioContrast[] = {{0, N_("Normal")}, {1, N_("Low")}, {2, N_("High")}, - {16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")}}; +constexpr TagDetails casioContrast[] = { + {0, N_("Normal")}, {1, N_("Low")}, {2, N_("High")}, {16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")}, +}; //! Saturation, tag 0x000d -constexpr TagDetails casioSaturation[] = {{0, N_("Normal")}, {1, N_("Low")}, {2, N_("High")}, - {16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")}}; +constexpr TagDetails casioSaturation[] = { + {0, N_("Normal")}, {1, N_("Low")}, {2, N_("High")}, {16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")}, +}; //! Enhancement, tag 0x0016 constexpr TagDetails casioEnhancement[] = { - {1, N_("Off")}, {2, N_("Red")}, {3, N_("Green")}, {4, N_("Blue")}, {5, N_("Flesh Tones")}}; + {1, N_("Off")}, {2, N_("Red")}, {3, N_("Green")}, {4, N_("Blue")}, {5, N_("Flesh Tones")}, +}; //! Color filter, tag 0x0017 -constexpr TagDetails casioColorFilter[] = {{1, N_("Off")}, {2, N_("Black & White")}, {3, N_("Sepia")}, - {4, N_("Red")}, {5, N_("Green")}, {6, N_("Blue")}, - {7, N_("Yellow")}, {8, N_("Pink")}, {9, N_("Purple")}}; +constexpr TagDetails casioColorFilter[] = { + {1, N_("Off")}, {2, N_("Black & White")}, {3, N_("Sepia")}, {4, N_("Red")}, {5, N_("Green")}, + {6, N_("Blue")}, {7, N_("Yellow")}, {8, N_("Pink")}, {9, N_("Purple")}, +}; //! flash intensity 2, tag 0x0019 -constexpr TagDetails casioFlashIntensity2[] = {{1, N_("Normal")}, {2, N_("Weak")}, {3, N_("Strong")}}; +constexpr TagDetails casioFlashIntensity2[] = { + {1, N_("Normal")}, + {2, N_("Weak")}, + {3, N_("Strong")}, +}; //! CCD Sensitivity intensity, tag 0x0020 constexpr TagDetails casioCCDSensitivity[] = { {64, N_("Normal")}, {125, N_("+1.0")}, {250, N_("+2.0")}, {244, N_("+3.0")}, {80, N_("Normal (ISO 80 equivalent)")}, - {100, N_("High")}}; + {100, N_("High")}, +}; // Casio MakerNote Tag Info constexpr TagInfo CasioMakerNote::tagInfo_[] = { @@ -167,66 +189,106 @@ std::ostream& CasioMakerNote::print0x0015(std::ostream& os, const Value& value, // Casio Makernotes, Type 2 //! Quality Mode, tag 0x0004 -constexpr TagDetails casio2QualityMode[] = {{0, N_("Economy")}, {1, N_("Normal")}, {2, N_("Fine")}}; +constexpr TagDetails casio2QualityMode[] = { + {0, N_("Economy")}, + {1, N_("Normal")}, + {2, N_("Fine")}, +}; //! Image Size, tag 0x0009 -constexpr TagDetails casio2ImageSize[] = {{0, "640x480"}, {4, "1600x1200"}, {5, "2048x1536"}, {20, "2288x1712"}, - {21, "2592x1944"}, {22, "2304x1728"}, {36, "3008x2008"}}; +constexpr TagDetails casio2ImageSize[] = { + {0, "640x480"}, {4, "1600x1200"}, {5, "2048x1536"}, {20, "2288x1712"}, + {21, "2592x1944"}, {22, "2304x1728"}, {36, "3008x2008"}, +}; //! Focus Mode, tag 0x000d -constexpr TagDetails casio2FocusMode[] = {{0, N_("Normal")}, {1, N_("Macro")}}; +constexpr TagDetails casio2FocusMode[] = { + {0, N_("Normal")}, + {1, N_("Macro")}, +}; //! ISO Speed, tag 0x0014 -constexpr TagDetails casio2IsoSpeed[] = {{3, "50"}, {4, "64"}, {6, "100"}, {9, "200"}}; +constexpr TagDetails casio2IsoSpeed[] = { + {3, "50"}, + {4, "64"}, + {6, "100"}, + {9, "200"}, +}; //! White Balance, tag 0x0019 -constexpr TagDetails casio2WhiteBalance[] = {{0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Shade")}, - {3, N_("Tungsten")}, {4, N_("Fluorescent")}, {5, N_("Manual")}}; +constexpr TagDetails casio2WhiteBalance[] = { + {0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Shade")}, + {3, N_("Tungsten")}, {4, N_("Fluorescent")}, {5, N_("Manual")}, +}; //! Saturation, tag 0x001f -constexpr TagDetails casio2Saturation[] = {{0, N_("Low")}, {1, N_("Normal")}, {2, N_("High")}}; +constexpr TagDetails casio2Saturation[] = { + {0, N_("Low")}, + {1, N_("Normal")}, + {2, N_("High")}, +}; //! Contrast, tag 0x0020 -constexpr TagDetails casio2Contrast[] = {{0, N_("Low")}, {1, N_("Normal")}, {2, N_("High")}}; +constexpr TagDetails casio2Contrast[] = { + {0, N_("Low")}, + {1, N_("Normal")}, + {2, N_("High")}, +}; //! Sharpness, tag 0x0021 -constexpr TagDetails casio2Sharpness[] = {{0, N_("Soft")}, {1, N_("Normal")}, {2, N_("Hard")}}; +constexpr TagDetails casio2Sharpness[] = { + {0, N_("Soft")}, + {1, N_("Normal")}, + {2, N_("Hard")}, +}; //! White Balance2, tag 0x2012 -constexpr TagDetails casio2WhiteBalance2[] = {{0, N_("Manual")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, - {3, N_("Shade")}, {4, N_("Flash")}, {6, N_("Fluorescent")}, - {9, N_("Tungsten")}, {10, N_("Tungsten")}, {12, N_("Flash")}}; +constexpr TagDetails casio2WhiteBalance2[] = { + {0, N_("Manual")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")}, {4, N_("Flash")}, + {6, N_("Fluorescent")}, {9, N_("Tungsten")}, {10, N_("Tungsten")}, {12, N_("Flash")}, +}; //! Release Mode, tag 0x3001 -constexpr TagDetails casio2ReleaseMode[] = {{1, N_("Normal")}, - {3, N_("AE Bracketing")}, - {11, N_("WB Bracketing")}, - {13, N_("Contrast Bracketing")}, - {19, N_("High Speed Burst")}}; +constexpr TagDetails casio2ReleaseMode[] = { + {1, N_("Normal")}, + {3, N_("AE Bracketing")}, + {11, N_("WB Bracketing")}, + {13, N_("Contrast Bracketing")}, + {19, N_("High Speed Burst")}, +}; //! Quality, tag 0x3002 -constexpr TagDetails casio2Quality[] = {{1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")}}; +constexpr TagDetails casio2Quality[] = { + {1, N_("Economy")}, + {2, N_("Normal")}, + {3, N_("Fine")}, +}; //! Focus Mode 2, tag 0x3003 -constexpr TagDetails casio2FocusMode2[] = {{0, N_("Manual")}, {1, N_("Focus Lock")}, - {2, N_("Macro")}, {3, N_("Single-Area Auto Focus")}, - {5, N_("Infinity")}, {6, N_("Multi-Area Auto Focus")}, - {8, N_("Super Macro")}}; +constexpr TagDetails casio2FocusMode2[] = { + {0, N_("Manual")}, {1, N_("Focus Lock")}, + {2, N_("Macro")}, {3, N_("Single-Area Auto Focus")}, + {5, N_("Infinity")}, {6, N_("Multi-Area Auto Focus")}, + {8, N_("Super Macro")}, +}; //! AutoISO, tag 0x3008 -constexpr TagDetails casio2AutoISO[] = {{1, N_("On")}, - {2, N_("Off")}, - {7, N_("On (high sensitivity)")}, - {8, N_("On (anti-shake)")}, - {10, N_("High Speed")}}; +constexpr TagDetails casio2AutoISO[] = { + {1, N_("On")}, {2, N_("Off")}, {7, N_("On (high sensitivity)")}, {8, N_("On (anti-shake)")}, {10, N_("High Speed")}, +}; //! AFMode, tag 0x3009 -constexpr TagDetails casio2AFMode[] = {{0, N_("Off")}, {1, N_("Spot")}, - {2, N_("Multi")}, {3, N_("Face Detection")}, - {4, N_("Tracking")}, {5, N_("Intelligent")}}; +constexpr TagDetails casio2AFMode[] = { + {0, N_("Off")}, {1, N_("Spot")}, {2, N_("Multi")}, {3, N_("Face Detection")}, + {4, N_("Tracking")}, {5, N_("Intelligent")}, +}; //! ColorMode, tag 0x3015 -constexpr TagDetails casio2ColorMode[] = {{0, N_("Off")}, {2, N_("Black & White")}, {3, N_("Sepia")}}; +constexpr TagDetails casio2ColorMode[] = { + {0, N_("Off")}, + {2, N_("Black & White")}, + {3, N_("Sepia")}, +}; //! Enhancement, tag 0x3016 constexpr TagDetails casio2Enhancement[] = { @@ -235,8 +297,10 @@ constexpr TagDetails casio2Enhancement[] = { }; //! Color Filter, tag 0x3017 -constexpr TagDetails casio2ColorFilter[] = {{0, N_("Off")}, {1, N_("Blue")}, {3, N_("Green")}, {4, N_("Yellow")}, - {5, N_("Red")}, {6, N_("Purple")}, {7, N_("Pink")}}; +constexpr TagDetails casio2ColorFilter[] = { + {0, N_("Off")}, {1, N_("Blue")}, {3, N_("Green")}, {4, N_("Yellow")}, + {5, N_("Red")}, {6, N_("Purple")}, {7, N_("Pink")}, +}; //! Art Mode, tag 0x301b constexpr TagDetails casio2ArtMode[] = { @@ -244,32 +308,48 @@ constexpr TagDetails casio2ArtMode[] = { {45, N_("Premium Auto")}, {47, N_("Painting")}, {49, N_("Crayon Drawing")}, {51, N_("Panorama")}, {52, N_("Art HDR")}, {62, N_("High Speed Night Shot")}, {64, N_("Monochrome")}, {67, N_("Toy Camera")}, {68, N_("Pop Art")}, - {69, N_("Light Tone")}}; + {69, N_("Light Tone")}, +}; //! Lighting Mode, tag 0x302a constexpr TagDetails casio2LightingMode[] = { - {0, N_("Off")}, {1, N_("High Dynamic Range")}, {5, N_("Shadow Enhance Low")}, {6, N_("Shadow Enhance High")}}; + {0, N_("Off")}, + {1, N_("High Dynamic Range")}, + {5, N_("Shadow Enhance Low")}, + {6, N_("Shadow Enhance High")}, +}; //! Portrait Refiner, tag 0x302b -constexpr TagDetails casio2PortraitRefiner[] = {{0, N_("Off")}, {1, N_("+1")}, {2, N_("+2")}}; +constexpr TagDetails casio2PortraitRefiner[] = { + {0, N_("Off")}, + {1, N_("+1")}, + {2, N_("+2")}, +}; //! Special Effect Setting, tag 0x3031 constexpr TagDetails casio2SpecialEffectSetting[] = { - {0, N_("Off")}, {1, N_("Makeup")}, {2, N_("Mist Removal")}, {3, N_("Vivid Landscape")}, {16, N_("Art Shot")}}; + {0, N_("Off")}, {1, N_("Makeup")}, {2, N_("Mist Removal")}, {3, N_("Vivid Landscape")}, {16, N_("Art Shot")}, +}; //! Drive Mode, tag 0x3103 -constexpr TagDetails casio2DriveMode[] = {{0, N_("Single Shot")}, {1, N_("Continuous Shooting")}, - {2, N_("Continuous (2 fps)")}, {3, N_("Continuous (3 fps)")}, - {4, N_("Continuous (4 fps)")}, {5, N_("Continuous (5 fps)")}, - {6, N_("Continuous (6 fps)")}, {7, N_("Continuous (7 fps)")}, - {10, N_("Continuous (10 fps)")}, {12, N_("Continuous (12 fps)")}, - {15, N_("Continuous (15 fps)")}, {20, N_("Continuous (20 fps)")}, - {30, N_("Continuous (30 fps)")}, {40, N_("Continuous (40 fps)")}, - {60, N_("Continuous (60 fps)")}, {240, N_("Auto-N")}}; +constexpr TagDetails casio2DriveMode[] = { + {0, N_("Single Shot")}, {1, N_("Continuous Shooting")}, + {2, N_("Continuous (2 fps)")}, {3, N_("Continuous (3 fps)")}, + {4, N_("Continuous (4 fps)")}, {5, N_("Continuous (5 fps)")}, + {6, N_("Continuous (6 fps)")}, {7, N_("Continuous (7 fps)")}, + {10, N_("Continuous (10 fps)")}, {12, N_("Continuous (12 fps)")}, + {15, N_("Continuous (15 fps)")}, {20, N_("Continuous (20 fps)")}, + {30, N_("Continuous (30 fps)")}, {40, N_("Continuous (40 fps)")}, + {60, N_("Continuous (60 fps)")}, {240, N_("Auto-N")}, +}; //! Video Quality, tag 0x4003 constexpr TagDetails casio2VideoQuality[] = { - {1, N_("Standard")}, {3, N_("HD (720p)")}, {4, N_("Full HD (1080p)")}, {5, N_("Low")}}; + {1, N_("Standard")}, + {3, N_("HD (720p)")}, + {4, N_("Full HD (1080p)")}, + {5, N_("Low")}, +}; // Casio2 MakerNote Tag Info constexpr TagInfo Casio2MakerNote::tagInfo_[] = { diff --git a/src/fujimn_int.cpp b/src/fujimn_int.cpp index 1a19acd731..d01537c66f 100644 --- a/src/fujimn_int.cpp +++ b/src/fujimn_int.cpp @@ -19,61 +19,75 @@ // class member definitions namespace Exiv2::Internal { //! OffOn, multiple tags -constexpr TagDetails fujiOffOn[] = {{0, N_("Off")}, {1, N_("On")}}; +constexpr TagDetails fujiOffOn[] = { + {0, N_("Off")}, + {1, N_("On")}, +}; //! Sharpness, tag 0x1001 constexpr TagDetails fujiSharpness[] = { {0, N_("-4 (softest)")}, {1, N_("-3 (very soft)")}, {2, N_("-2 (soft)")}, {3, N_("0 (normal)")}, {4, N_("+2 (hard)")}, {5, N_("+3 (very hard)")}, - {6, N_("+4 (hardest)")}, {130, N_("-1 (medium soft)")}, {132, N_("+1 (medium hard)")}}; + {6, N_("+4 (hardest)")}, {130, N_("-1 (medium soft)")}, {132, N_("+1 (medium hard)")}, +}; //! WhiteBalance, tag 0x1002 -constexpr TagDetails fujiWhiteBalance[] = {{0, N_("Auto")}, - {1, N_("Auto White Priority")}, - {2, N_("Auto Ambience Priority")}, - {256, N_("Daylight")}, - {512, N_("Cloudy")}, - {768, N_("Fluorescent (daylight)")}, - {769, N_("Fluorescent (warm white)")}, - {770, N_("Fluorescent (cool white)")}, - {1024, N_("Incandescent")}, - {1536, N_("Underwater")}, - {3480, N_("Custom")}, - {3840, N_("Custom 1")}, - {3841, N_("Custom 2")}, - {3842, N_("Custom 3")}, - {3843, N_("Custom 4")}, - {3844, N_("Custom 5")}, - {4080, N_("Kelvin")}}; +constexpr TagDetails fujiWhiteBalance[] = { + {0, N_("Auto")}, + {1, N_("Auto White Priority")}, + {2, N_("Auto Ambience Priority")}, + {256, N_("Daylight")}, + {512, N_("Cloudy")}, + {768, N_("Fluorescent (daylight)")}, + {769, N_("Fluorescent (warm white)")}, + {770, N_("Fluorescent (cool white)")}, + {1024, N_("Incandescent")}, + {1536, N_("Underwater")}, + {3480, N_("Custom")}, + {3840, N_("Custom 1")}, + {3841, N_("Custom 2")}, + {3842, N_("Custom 3")}, + {3843, N_("Custom 4")}, + {3844, N_("Custom 5")}, + {4080, N_("Kelvin")}, +}; //! Color, tag 0x1003 -constexpr TagDetails fujiColor[] = {{0, N_("0 (normal)")}, - {128, N_("+1 (medium high)")}, - {192, N_("+3 (very high)")}, - {224, N_("+4 (highest)")}, - {256, N_("+2 (high)")}, - {384, N_("-1 (medium low)")}, - {512, N_("-2 (low)")}, // this is "Low" with exiftool - {768, N_("Monochrome")}, - {769, N_("Monochrome + R Filter")}, - {770, N_("Monochrome + Ye Filter")}, - {771, N_("Monochrome + G Filter")}, - {784, N_("Sepia")}, - {1024, N_("-2 (low)")}, - {1216, N_("-3 (very low)")}, - {1248, N_("-4 (lowest)")}, - {1280, N_("ACROS")}, - {1281, N_("ACROS + R Filter")}, - {1282, N_("ACROS + Ye Filter")}, - {1283, N_("ACROS + G Filter")}, - {32768, N_("Film Simulation")}}; +constexpr TagDetails fujiColor[] = { + {0, N_("0 (normal)")}, + {128, N_("+1 (medium high)")}, + {192, N_("+3 (very high)")}, + {224, N_("+4 (highest)")}, + {256, N_("+2 (high)")}, + {384, N_("-1 (medium low)")}, + {512, N_("-2 (low)")}, // this is "Low" with exiftool + {768, N_("Monochrome")}, + {769, N_("Monochrome + R Filter")}, + {770, N_("Monochrome + Ye Filter")}, + {771, N_("Monochrome + G Filter")}, + {784, N_("Sepia")}, + {1024, N_("-2 (low)")}, + {1216, N_("-3 (very low)")}, + {1248, N_("-4 (lowest)")}, + {1280, N_("ACROS")}, + {1281, N_("ACROS + R Filter")}, + {1282, N_("ACROS + Ye Filter")}, + {1283, N_("ACROS + G Filter")}, + {32768, N_("Film Simulation")}, +}; //! Tone, tag 0x1004 -constexpr TagDetails fujiTone[] = {{0, N_("Normal")}, {80, N_("Medium High")}, {256, N_("High")}, - {384, N_("Medium Low")}, {512, N_("Low")}, {32768, N_("Film Simulation")}}; +constexpr TagDetails fujiTone[] = { + {0, N_("Normal")}, {80, N_("Medium High")}, {256, N_("High")}, + {384, N_("Medium Low")}, {512, N_("Low")}, {32768, N_("Film Simulation")}, +}; //! Tone, tag 0x1006 -constexpr TagDetails fujiContrast[] = {{0, N_("Normal")}, {256, N_("High")}, {768, N_("Low")}}; +constexpr TagDetails fujiContrast[] = { + {0, N_("Normal")}, + {256, N_("High")}, + {768, N_("Low")}, +}; //! WhiteBalanceFineTune, tag 0x100a static std::ostream& printFujiWhiteBalanceFineTune(std::ostream& os, const Value& value, const ExifData*) { @@ -91,99 +105,120 @@ static std::ostream& printFujiWhiteBalanceFineTune(std::ostream& os, const Value } //! NoiseReduction, tag 0x100b -constexpr TagDetails fujiNoiseReduction[]{{64, N_("Low")}, {128, N_("Normal")}, {256, N_("n/a")}}; +constexpr TagDetails fujiNoiseReduction[]{ + {64, N_("Low")}, + {128, N_("Normal")}, + {256, N_("n/a")}, +}; //! High ISO NR, tag 0x100e constexpr TagDetails fujiHighIsoNR[] = { {0, N_("0 (normal)")}, {256, N_("+2 (strong)")}, {384, N_("+1 (medium strong)")}, {448, N_("+3 (very strong)")}, {480, N_("+4 (strongest)")}, {512, N_("-2 (weak)")}, - {640, N_("-1 (medium weak)")}, {704, N_("-3 (very weak)")}, {736, N_("-4 (weakest)")}}; + {640, N_("-1 (medium weak)")}, {704, N_("-3 (very weak)")}, {736, N_("-4 (weakest)")}, +}; //! Clarity, tag 0x100f -constexpr TagDetails fujiClarity[] = {{-5000, N_("-5")}, {-4000, N_("-4")}, {-3000, N_("-3")}, {-2000, N_("-2")}, - {-1000, N_("-1")}, {0, N_("0")}, {1000, N_("+1")}, {2000, N_("+2")}, - {3000, N_("+3")}, {4000, N_("+4")}, {5000, N_("+5")}}; +constexpr TagDetails fujiClarity[] = { + {-5000, N_("-5")}, {-4000, N_("-4")}, {-3000, N_("-3")}, {-2000, N_("-2")}, {-1000, N_("-1")}, {0, N_("0")}, + {1000, N_("+1")}, {2000, N_("+2")}, {3000, N_("+3")}, {4000, N_("+4")}, {5000, N_("+5")}, +}; //! FlashMode, tag 0x1010 -constexpr TagDetails fujiFlashMode[] = {{0x0000, N_("Auto")}, - {0x0001, N_("On")}, - {0x0002, N_("Off")}, - {0x0003, N_("Red-eye reduction")}, - {0x0004, N_("External")}, - {0x0010, N_("Commander")}, - {0x8000, N_("No flash")}, - {0x8120, N_("TTL")}, - {0x8320, N_("TTL Auto - Did not fire")}, - {0x9840, N_("Manual")}, - {0x9860, N_("Flash Commander")}, - {0x9880, N_("Multi-flash")}, - {0xa920, N_("1st Curtain (front)")}, - {0xaa20, N_("TTL Slow - 1st Curtain (front)")}, - {0xab20, N_("TTL Auto - 1st Curtain (front)")}, - {0xad20, N_("TTL - Red-eye Flash - 1st Curtain (front)")}, - {0xae20, N_("TTL - Slow - Red-eye Flash - 1st Curtain (front)")}, - {0xaf20, N_("TTL - Auto - Red-eye Flash - 1st Curtain (front)")}, - {0xc920, N_("2nd Curtain (rear)")}, - {0xca20, N_("TTL Slow - 2nd Curtain (rear)")}, - {0xcb20, N_("TTL Auto - 2nd Curtain (rear)")}, - {0xcd20, N_("TTL - Red-eye Flash - 2nd Curtain (rear)")}, - {0xce20, N_("TTL Slow - Red-eye Flash - 2nd Curtain (rear)")}, - {0xcf20, N_("TTL Auto - Red-eye Flash - 2nd Curtain (rear)")}, - {0xe920, N_("High Speed Sync (HSS)")}}; +constexpr TagDetails fujiFlashMode[] = { + {0x0000, N_("Auto")}, + {0x0001, N_("On")}, + {0x0002, N_("Off")}, + {0x0003, N_("Red-eye reduction")}, + {0x0004, N_("External")}, + {0x0010, N_("Commander")}, + {0x8000, N_("No flash")}, + {0x8120, N_("TTL")}, + {0x8320, N_("TTL Auto - Did not fire")}, + {0x9840, N_("Manual")}, + {0x9860, N_("Flash Commander")}, + {0x9880, N_("Multi-flash")}, + {0xa920, N_("1st Curtain (front)")}, + {0xaa20, N_("TTL Slow - 1st Curtain (front)")}, + {0xab20, N_("TTL Auto - 1st Curtain (front)")}, + {0xad20, N_("TTL - Red-eye Flash - 1st Curtain (front)")}, + {0xae20, N_("TTL - Slow - Red-eye Flash - 1st Curtain (front)")}, + {0xaf20, N_("TTL - Auto - Red-eye Flash - 1st Curtain (front)")}, + {0xc920, N_("2nd Curtain (rear)")}, + {0xca20, N_("TTL Slow - 2nd Curtain (rear)")}, + {0xcb20, N_("TTL Auto - 2nd Curtain (rear)")}, + {0xcd20, N_("TTL - Red-eye Flash - 2nd Curtain (rear)")}, + {0xce20, N_("TTL Slow - Red-eye Flash - 2nd Curtain (rear)")}, + {0xcf20, N_("TTL Auto - Red-eye Flash - 2nd Curtain (rear)")}, + {0xe920, N_("High Speed Sync (HSS)")}, +}; //! FocusMode, tag 0x1021 -constexpr TagDetails fujiFocusMode[] = {{0, N_("Auto")}, {1, N_("Manual")}, {65535, N_("Movie")}}; +constexpr TagDetails fujiFocusMode[] = { + {0, N_("Auto")}, + {1, N_("Manual")}, + {65535, N_("Movie")}, +}; //! FocusArea, tag 0x1022 constexpr TagDetails fujiFocusArea[] = { - {0, N_("Wide")}, {1, N_("Single Point")}, {256, N_("Zone")}, {512, N_("Tracking")}}; + {0, N_("Wide")}, + {1, N_("Single Point")}, + {256, N_("Zone")}, + {512, N_("Tracking")}, +}; //! PictureMode, tag 0x1031 -constexpr TagDetails fujiPictureMode[] = {{0, N_("Auto")}, - {1, N_("Portrait")}, - {2, N_("Landscape")}, - {3, N_("Macro")}, - {4, N_("Sports")}, - {5, N_("Night scene")}, - {6, N_("Program AE")}, - {7, N_("Natural light")}, - {8, N_("Anti-blur")}, - {9, N_("Beach & Snow")}, - {10, N_("Sunset")}, - {11, N_("Museum")}, - {12, N_("Party")}, - {13, N_("Flower")}, - {14, N_("Text")}, - {15, N_("Natural Light & Flash")}, - {16, N_("Beach")}, - {17, N_("Snow")}, - {18, N_("Fireworks")}, - {19, N_("Underwater")}, - {20, N_("Portrait with Skin Correction")}, - {22, N_("Panorama")}, - {23, N_("Night (tripod)")}, - {24, N_("Pro Low-light")}, - {25, N_("Pro Focus")}, - {26, N_("Portrait 2")}, - {27, N_("Dog Face Detection")}, - {28, N_("Cat Face Detection")}, - {48, N_("HDR")}, - {64, N_("Advanced Filter")}, - {256, N_("Aperture-priority AE")}, - {512, N_("Shutter speed priority AE")}, - {768, N_("Manual")}}; +constexpr TagDetails fujiPictureMode[] = { + {0, N_("Auto")}, + {1, N_("Portrait")}, + {2, N_("Landscape")}, + {3, N_("Macro")}, + {4, N_("Sports")}, + {5, N_("Night scene")}, + {6, N_("Program AE")}, + {7, N_("Natural light")}, + {8, N_("Anti-blur")}, + {9, N_("Beach & Snow")}, + {10, N_("Sunset")}, + {11, N_("Museum")}, + {12, N_("Party")}, + {13, N_("Flower")}, + {14, N_("Text")}, + {15, N_("Natural Light & Flash")}, + {16, N_("Beach")}, + {17, N_("Snow")}, + {18, N_("Fireworks")}, + {19, N_("Underwater")}, + {20, N_("Portrait with Skin Correction")}, + {22, N_("Panorama")}, + {23, N_("Night (tripod)")}, + {24, N_("Pro Low-light")}, + {25, N_("Pro Focus")}, + {26, N_("Portrait 2")}, + {27, N_("Dog Face Detection")}, + {28, N_("Cat Face Detection")}, + {48, N_("HDR")}, + {64, N_("Advanced Filter")}, + {256, N_("Aperture-priority AE")}, + {512, N_("Shutter speed priority AE")}, + {768, N_("Manual")}, +}; //! EXRMode, tag 0x1034 -constexpr TagDetails fujiExrMode[] = {{0x100, N_("HR (High Resolution)")}, - {0x200, N_("SN (Signal to Noise priority)")}, - {0x300, N_("DR (Dynamic Range priority)")}}; +constexpr TagDetails fujiExrMode[] = { + {0x100, N_("HR (High Resolution)")}, + {0x200, N_("SN (Signal to Noise priority)")}, + {0x300, N_("DR (Dynamic Range priority)")}, +}; //! ShadowTone, tag 0x1040 //! HighlightTone, tag 0x041 -constexpr TagDetails fujiSHTone[] = {{-64, N_("+4")}, {-56, N_("+3.5")}, {-48, N_("+3")}, {-40, N_("+2.5")}, - {-32, N_("+2")}, {-24, N_("+1.5")}, {-16, N_("+1")}, {-8, N_("+0.5")}, - {0, N_("0")}, {8, N_("-0.5")}, {16, N_("-1")}, {24, N_("-1.5")}, - {32, N_("-2")}}; +constexpr TagDetails fujiSHTone[] = { + {-64, N_("+4")}, {-56, N_("+3.5")}, {-48, N_("+3")}, {-40, N_("+2.5")}, {-32, N_("+2")}, + {-24, N_("+1.5")}, {-16, N_("+1")}, {-8, N_("+0.5")}, {0, N_("0")}, {8, N_("-0.5")}, + {16, N_("-1")}, {24, N_("-1.5")}, {32, N_("-2")}, +}; //! DigitalZoom, tag 0x1044 static std::ostream& printFujiDigitalZoom(std::ostream& os, const Value& value, const ExifData*) { @@ -197,7 +232,11 @@ static std::ostream& printFujiDigitalZoom(std::ostream& os, const Value& value, //! GrainEffectRoughness, tag 0x104c //! ColorChromeEffect, tag 0x1048 //! ColorChromeFXBlue, tag 0x104e -constexpr TagDetails fujiOff0Weak32Strong64[] = {{0, N_("Off")}, {32, N_("Weak")}, {64, N_("Strong")}}; +constexpr TagDetails fujiOff0Weak32Strong64[] = { + {0, N_("Off")}, + {32, N_("Weak")}, + {64, N_("Strong")}, +}; //! CropMode, tag 0x104d constexpr TagDetails fujiCropMode[] = { @@ -219,20 +258,27 @@ static std::ostream& printFujiMonochromaticColor(std::ostream& os, const Value& } //! ShutterType, tag 0x1050 -constexpr TagDetails fujiShutterType[] = {{0, N_("Mechanical")}, - {1, N_("Electronic")}, - {2, N_("Electronic (long shutter speed)")}, - {3, N_("Electronic Front Curtain")}}; +constexpr TagDetails fujiShutterType[] = { + {0, N_("Mechanical")}, + {1, N_("Electronic")}, + {2, N_("Electronic (long shutter speed)")}, + {3, N_("Electronic Front Curtain")}, +}; //! Continuous, tag 0x1100 -constexpr TagDetails fujiContinuous[] = {{0, N_("Off")}, - {1, N_("On")}, - {2, N_("Pre-shot/No flash & flash")}, // TODO newer cameras: Pre-shot - {6, N_("Pixel Shift")}}; +constexpr TagDetails fujiContinuous[] = { + {0, N_("Off")}, + {1, N_("On")}, + {2, N_("Pre-shot/No flash & flash")}, // TODO newer cameras: Pre-shot + {6, N_("Pixel Shift")}, +}; //! DriveSetting Byte 1, tag 0x1100 constexpr TagDetails fujiDriveSettingByte1[] = { - {0, N_("Single")}, {1, N_("Continuous Low")}, {2, N_("Continuous High")}}; + {0, N_("Single")}, + {1, N_("Continuous Low")}, + {2, N_("Continuous High")}, +}; //! DriveSetting, tag 0x1103 static std::ostream& printFujiDriveSetting(std::ostream& os, const Value& value, const ExifData*) { @@ -258,77 +304,110 @@ static std::ostream& printFujiDriveSetting(std::ostream& os, const Value& value, } //! PanoramaDirection, tag 0x1154 -constexpr TagDetails fujiPanoramaDirection[] = {{1, N_("Right")}, {2, N_("Up")}, {3, N_("Left")}, {4, N_("Down")}}; +constexpr TagDetails fujiPanoramaDirection[] = { + {1, N_("Right")}, + {2, N_("Up")}, + {3, N_("Left")}, + {4, N_("Down")}, +}; //! AdvancedFilter, tag 0x1201 -constexpr TagDetails fujiAdvancedFilter[] = {{0x10000, N_("Pop Color")}, - {0x20000, N_("Hi Key")}, - {0x30000, N_("Toy Camera")}, - {0x40000, N_("Miniature")}, - {0x50000, N_("Dynamic Tone")}, - {0x60001, N_("Partial Color Red")}, - {0x60002, N_("Partial Color Yellow")}, - {0x60003, N_("Partial Color Green")}, - {0x60004, N_("Partial Color Blue")}, - {0x60005, N_("Partial Color Orange")}, - {0x60006, N_("Partial Color Purple")}, - {0x70000, N_("Soft Focus")}, - {0x90000, N_("Low Key")}}; +constexpr TagDetails fujiAdvancedFilter[] = { + {0x10000, N_("Pop Color")}, + {0x20000, N_("Hi Key")}, + {0x30000, N_("Toy Camera")}, + {0x40000, N_("Miniature")}, + {0x50000, N_("Dynamic Tone")}, + {0x60001, N_("Partial Color Red")}, + {0x60002, N_("Partial Color Yellow")}, + {0x60003, N_("Partial Color Green")}, + {0x60004, N_("Partial Color Blue")}, + {0x60005, N_("Partial Color Orange")}, + {0x60006, N_("Partial Color Purple")}, + {0x70000, N_("Soft Focus")}, + {0x90000, N_("Low Key")}, +}; //! FinePixColor, tag 0x1210 -constexpr TagDetails fujiFinePixColor[] = {{0, N_("Standard")}, {16, N_("Chrome")}, {48, N_("Black & white")}}; +constexpr TagDetails fujiFinePixColor[] = { + {0, N_("Standard")}, + {16, N_("Chrome")}, + {48, N_("Black & white")}, +}; //! DynamicRange, tag 0x1400 -constexpr TagDetails fujiDynamicRange[] = {{1, N_("Standard")}, {3, N_("Wide")}}; +constexpr TagDetails fujiDynamicRange[] = { + {1, N_("Standard")}, + {3, N_("Wide")}, +}; //! FilmMode, tag 0x1401 -constexpr TagDetails fujiFilmMode[] = {{0, N_("PROVIA (F0/Standard)")}, - {256, N_("F1/Studio Portrait")}, - {272, N_("F1a/Studio Portrait Enhanced Saturation")}, - {288, N_("ASTIA (F1b/Studio Portrait Smooth Skin Tone)")}, - {304, N_("F1c/Studio Portrait Increased Sharpness")}, - {512, N_("Velvia (F2/Fujichrome)")}, - {768, N_("F3/Studio Portrait Ex")}, - {1024, N_("F4/Velvia")}, - {1280, N_("PRO Neg. Std")}, - {1281, N_("PRO Neg. Hi")}, - {1536, N_("CLASSIC CHROME")}, - {1792, N_("ETERNA")}, - {2048, N_("CLASSIC Neg.")}, - {2304, N_("ETERNA Bleach Bypass")}, - {2560, N_("Nostalgic Neg.")}}; +constexpr TagDetails fujiFilmMode[] = { + {0, N_("PROVIA (F0/Standard)")}, + {256, N_("F1/Studio Portrait")}, + {272, N_("F1a/Studio Portrait Enhanced Saturation")}, + {288, N_("ASTIA (F1b/Studio Portrait Smooth Skin Tone)")}, + {304, N_("F1c/Studio Portrait Increased Sharpness")}, + {512, N_("Velvia (F2/Fujichrome)")}, + {768, N_("F3/Studio Portrait Ex")}, + {1024, N_("F4/Velvia")}, + {1280, N_("PRO Neg. Std")}, + {1281, N_("PRO Neg. Hi")}, + {1536, N_("CLASSIC CHROME")}, + {1792, N_("ETERNA")}, + {2048, N_("CLASSIC Neg.")}, + {2304, N_("ETERNA Bleach Bypass")}, + {2560, N_("Nostalgic Neg.")}, +}; //! DynamicRange, tag 0x1402 -constexpr TagDetails fujiDynamicRangeSetting[] = {{0, N_("Auto")}, - {1, N_("Manual")}, - {256, N_("Standard (100%)")}, - {512, N_("Wide mode 1 (230%)")}, - {513, N_("Wide mode 2 (400%)")}, - {32768, N_("Film simulation mode")}}; +constexpr TagDetails fujiDynamicRangeSetting[] = { + {0, N_("Auto")}, + {1, N_("Manual")}, + {256, N_("Standard (100%)")}, + {512, N_("Wide mode 1 (230%)")}, + {513, N_("Wide mode 2 (400%)")}, + {32768, N_("Film simulation mode")}, +}; //! SceneRecognition, tag 0x1425 -constexpr TagDetails fujiSceneRecognition[] = {{0x000, N_("Unrecognized")}, - {0x100, N_("Portrait Image")}, - {0x103, N_("Night Portrait")}, - {0x105, N_("Backlit Portrait")}, - {0x200, N_("Landscape Image")}, - {0x300, N_("Night Scene")}, - {0x400, N_("Macro")}}; +constexpr TagDetails fujiSceneRecognition[] = { + {0x000, N_("Unrecognized")}, {0x100, N_("Portrait Image")}, + {0x103, N_("Night Portrait")}, {0x105, N_("Backlit Portrait")}, + {0x200, N_("Landscape Image")}, {0x300, N_("Night Scene")}, + {0x400, N_("Macro")}, +}; //! ImageGeneration, tag 0x1426 -constexpr TagDetails fujiImageGeneration[] = {{0, N_("Original Image")}, {1, N_("Re-developed from RAW")}}; +constexpr TagDetails fujiImageGeneration[] = { + {0, N_("Original Image")}, + {1, N_("Re-developed from RAW")}, +}; //! DRangePriority, tag 0x1443 -constexpr TagDetails fujiDRangePriority[] = {{0, N_("Auto")}, {1, N_("Fixed")}}; +constexpr TagDetails fujiDRangePriority[] = { + {0, N_("Auto")}, + {1, N_("Fixed")}, +}; //! DRangePriorityAuto, tag 0x1444 -constexpr TagDetails fujiDRangePriorityAuto[] = {{1, N_("Weak")}, {2, N_("Strong")}}; +constexpr TagDetails fujiDRangePriorityAuto[] = { + {1, N_("Weak")}, + {2, N_("Strong")}, +}; //! DRangePriorityFixed, tag 0x1445 -constexpr TagDetails fujiDRangePriorityFixed[] = {{1, N_("Weak")}, {2, N_("Strong")}}; +constexpr TagDetails fujiDRangePriorityFixed[] = { + {1, N_("Weak")}, + {2, N_("Strong")}, +}; //! FaceElementType, every byte at tag 0x4201 -constexpr TagDetails fujiFaceElementType[] = {{1, N_("Face")}, {2, N_("Left Eye")}, {3, N_("Right Eye")}}; +constexpr TagDetails fujiFaceElementType[] = { + {1, N_("Face")}, + {2, N_("Left Eye")}, + {3, N_("Right Eye")}, +}; //! FaceElementType, tag 0x4203 static std::ostream& printFujiFaceElementTypes(std::ostream& os, const Value& value, const ExifData*) { diff --git a/src/futils.cpp b/src/futils.cpp index 7f3244e1b4..48ae46788f 100644 --- a/src/futils.cpp +++ b/src/futils.cpp @@ -206,9 +206,10 @@ Protocol fileProtocol(const std::string& path) { std::string name; Protocol prot; bool isUrl; // path.size() > name.size() - } prots[] = {{"http://", pHttp, true}, {"https://", pHttps, true}, {"ftp://", pFtp, true}, - {"sftp://", pSftp, true}, {"file://", pFileUri, true}, {"data://", pDataUri, true}, - {"-", pStdin, false}}; + } prots[] = { + {"http://", pHttp, true}, {"https://", pHttps, true}, {"ftp://", pFtp, true}, {"sftp://", pSftp, true}, + {"file://", pFileUri, true}, {"data://", pDataUri, true}, {"-", pStdin, false}, + }; for (const auto& prot : prots) { if (result != pFile) break; diff --git a/src/makernote_int.cpp b/src/makernote_int.cpp index 0d2e0443f4..6619cb3325 100644 --- a/src/makernote_int.cpp +++ b/src/makernote_int.cpp @@ -1089,7 +1089,8 @@ void ncrypt(Exiv2::byte* pData, uint32_t size, uint32_t count, uint32_t serial) 0xbb, 0xd6, 0x59, 0x4d, 0xbf, 0x6a, 0x2e, 0xaa, 0x2b, 0xef, 0xe6, 0x78, 0xb6, 0x4e, 0xe0, 0x2f, 0xdc, 0x7c, 0xbe, 0x57, 0x19, 0x32, 0x7e, 0x2a, 0xd0, 0xb8, 0xba, 0x29, 0x00, 0x3c, 0x52, 0x7d, 0xa8, 0x49, 0x3b, 0x2d, 0xeb, 0x25, 0x49, 0xfa, 0xa3, 0xaa, 0x39, 0xa7, 0xc5, 0xa7, 0x50, 0x11, 0x36, 0xfb, 0xc6, 0x67, 0x4a, 0xf5, 0xa5, 0x12, 0x65, - 0x7e, 0xb0, 0xdf, 0xaf, 0x4e, 0xb3, 0x61, 0x7f, 0x2f}}; + 0x7e, 0xb0, 0xdf, 0xaf, 0x4e, 0xb3, 0x61, 0x7f, 0x2f}, + }; Exiv2::byte key = 0; for (int i = 0; i < 4; ++i) { key ^= (count >> (i * 8)) & 0xff; diff --git a/src/minoltamn_int.cpp b/src/minoltamn_int.cpp index 7964bb3ecb..d11375bcf9 100644 --- a/src/minoltamn_int.cpp +++ b/src/minoltamn_int.cpp @@ -24,21 +24,28 @@ constexpr TagDetails minoltaWhiteBalanceStd0x0115[] = { {0x10, N_("Daylight")}, {0x20, N_("Cloudy")}, {0x30, N_("Shade")}, {0x40, N_("Tungsten")}, {0x50, N_("Flash")}, {0x60, N_("Fluorescent")}, - {0x70, N_("Custom")}}; + {0x70, N_("Custom")}, +}; //! Lookup table to translate Minolta color mode values to readable labels constexpr TagDetails minoltaColorMode[] = { - {0, N_("Natural Color")}, {1, N_("Black & White")}, {2, N_("Vivid Color")}, {3, N_("Solarization")}, - {4, N_("AdobeRGB")}, {5, N_("Sepia")}, {9, N_("Natural")}, {12, N_("Portrait")}, - {13, N_("Natural sRGB")}, {14, N_("Natural+ sRGB")}, {15, N_("Landscape")}, {16, N_("Evening")}, - {17, N_("Night Scene")}, {18, N_("Night Portrait")}}; + {0, N_("Natural Color")}, {1, N_("Black & White")}, {2, N_("Vivid Color")}, {3, N_("Solarization")}, + {4, N_("AdobeRGB")}, {5, N_("Sepia")}, {9, N_("Natural")}, {12, N_("Portrait")}, + {13, N_("Natural sRGB")}, {14, N_("Natural+ sRGB")}, {15, N_("Landscape")}, {16, N_("Evening")}, + {17, N_("Night Scene")}, {18, N_("Night Portrait")}, +}; //! Lookup table to translate Minolta image quality values to readable labels -constexpr TagDetails minoltaImageQuality[] = {{0, N_("Raw")}, {1, N_("Super Fine")}, {2, N_("Fine")}, - {3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra Fine")}}; +constexpr TagDetails minoltaImageQuality[] = { + {0, N_("Raw")}, {1, N_("Super Fine")}, {2, N_("Fine")}, + {3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra Fine")}, +}; //! Lookup table to translate Minolta image stabilization values -constexpr TagDetails minoltaImageStabilization[] = {{1, N_("Off")}, {5, N_("On")}}; +constexpr TagDetails minoltaImageStabilization[] = { + {1, N_("Off")}, + {5, N_("On")}, +}; // Minolta Tag Info constexpr TagInfo MinoltaMakerNote::tagInfo_[] = { @@ -126,62 +133,92 @@ const TagInfo* MinoltaMakerNote::tagList() { //! Lookup table to translate Minolta Std camera settings exposure mode values to readable labels constexpr TagDetails minoltaExposureModeStd[] = { - {0, N_("Program")}, {1, N_("Aperture priority")}, {2, N_("Shutter priority")}, {3, N_("Manual")}}; + {0, N_("Program")}, + {1, N_("Aperture priority")}, + {2, N_("Shutter priority")}, + {3, N_("Manual")}, +}; //! Lookup table to translate Minolta Std camera settings flash mode values to readable labels -constexpr TagDetails minoltaFlashModeStd[] = {{0, N_("Fill flash")}, - {1, N_("Red-eye reduction")}, - {2, N_("Rear flash sync")}, - {3, N_("Wireless")}, - {4, N_("Off")}}; +constexpr TagDetails minoltaFlashModeStd[] = { + {0, N_("Fill flash")}, {1, N_("Red-eye reduction")}, {2, N_("Rear flash sync")}, {3, N_("Wireless")}, + {4, N_("Off")}, +}; //! Lookup table to translate Minolta Std camera settings white balance values to readable labels -constexpr TagDetails minoltaWhiteBalanceStd[] = {{0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, - {3, N_("Tungsten")}, {5, N_("Custom")}, {7, N_("Fluorescent")}, - {8, N_("Fluorescent 2")}, {11, N_("Custom 2")}, {12, N_("Custom 3")}}; +constexpr TagDetails minoltaWhiteBalanceStd[] = { + {0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Tungsten")}, {5, N_("Custom")}, + {7, N_("Fluorescent")}, {8, N_("Fluorescent 2")}, {11, N_("Custom 2")}, {12, N_("Custom 3")}, +}; //! Lookup table to translate Minolta Std camera settings image size values to readable labels -constexpr TagDetails minoltaImageSizeStd[] = {{0, N_("Full size")}, {1, "1600x1200"}, {2, "1280x960"}, {3, "640x480"}, - {6, "2080x1560"}, {7, "2560x1920"}, {8, "3264x2176"}}; +constexpr TagDetails minoltaImageSizeStd[] = { + {0, N_("Full size")}, {1, "1600x1200"}, {2, "1280x960"}, {3, "640x480"}, + {6, "2080x1560"}, {7, "2560x1920"}, {8, "3264x2176"}, +}; //! Lookup table to translate Minolta Std camera settings image quality values to readable labels -constexpr TagDetails minoltaImageQualityStd[] = {{0, N_("Raw")}, {1, N_("Super fine")}, {2, N_("Fine")}, - {3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra fine")}}; +constexpr TagDetails minoltaImageQualityStd[] = { + {0, N_("Raw")}, {1, N_("Super fine")}, {2, N_("Fine")}, + {3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra fine")}, +}; //! Lookup table to translate Minolta Std camera settings drive mode values to readable labels -constexpr TagDetails minoltaDriveModeStd[] = {{0, N_("Single Frame")}, {1, N_("Continuous")}, {2, N_("Self-timer")}, - {4, N_("Bracketing")}, {5, N_("Interval")}, {6, N_("UHS continuous")}, - {7, N_("HS continuous")}}; +constexpr TagDetails minoltaDriveModeStd[] = { + {0, N_("Single Frame")}, {1, N_("Continuous")}, {2, N_("Self-timer")}, {4, N_("Bracketing")}, + {5, N_("Interval")}, {6, N_("UHS continuous")}, {7, N_("HS continuous")}, +}; //! Lookup table to translate Minolta Std camera settings metering mode values to readable labels constexpr TagDetails minoltaMeteringModeStd[] = { - {0, N_("Multi-segment")}, {1, N_("Center weighted average")}, {2, N_("Spot")}}; + {0, N_("Multi-segment")}, + {1, N_("Center weighted average")}, + {2, N_("Spot")}, +}; //! Lookup table to translate Minolta Std camera settings digital zoom values to readable labels -constexpr TagDetails minoltaDigitalZoomStd[] = {{0, N_("Off")}, {1, N_("Electronic magnification")}, {2, "2x"}}; +constexpr TagDetails minoltaDigitalZoomStd[] = { + {0, N_("Off")}, + {1, N_("Electronic magnification")}, + {2, "2x"}, +}; //! Lookup table to translate Minolta Std camera bracket step mode values to readable labels -constexpr TagDetails minoltaBracketStepStd[] = {{0, "1/3 EV"}, {1, "2/3 EV"}, {2, "1 EV"}}; +constexpr TagDetails minoltaBracketStepStd[] = { + {0, "1/3 EV"}, + {1, "2/3 EV"}, + {2, "1 EV"}, +}; //! Lookup table to translate Minolta Std camera settings AF points values to readable labels [[maybe_unused]] constexpr TagDetails minoltaAFPointsStd[] = { - {0, N_("Center")}, {1, N_("Top")}, {2, N_("Top-right")}, {3, N_("Right")}, {4, N_("Bottom-right")}, - {5, N_("Bottom")}, {6, N_("Bottom-left")}, {7, N_("Left")}, {8, N_("Top-left")}}; + {0, N_("Center")}, {1, N_("Top")}, {2, N_("Top-right")}, {3, N_("Right")}, {4, N_("Bottom-right")}, + {5, N_("Bottom")}, {6, N_("Bottom-left")}, {7, N_("Left")}, {8, N_("Top-left")}, +}; //! Lookup table to translate Minolta Std camera settings flash fired values to readable labels -constexpr TagDetails minoltaFlashFired[] = {{0, N_("Did not fire")}, {1, N_("Fired")}}; +constexpr TagDetails minoltaFlashFired[] = { + {0, N_("Did not fire")}, + {1, N_("Fired")}, +}; //! Lookup table to translate Minolta Std camera settings sharpness values to readable labels -constexpr TagDetails minoltaSharpnessStd[] = {{0, N_("Hard")}, {1, N_("Normal")}, {2, N_("Soft")}}; +constexpr TagDetails minoltaSharpnessStd[] = { + {0, N_("Hard")}, + {1, N_("Normal")}, + {2, N_("Soft")}, +}; //! Lookup table to translate Minolta Std camera settings subject program values to readable labels -constexpr TagDetails minoltaSubjectProgramStd[] = {{0, N_("None")}, {1, N_("Portrait")}, - {2, N_("Text")}, {3, N_("Night portrait")}, - {4, N_("Sunset")}, {5, N_("Sports action")}}; +constexpr TagDetails minoltaSubjectProgramStd[] = { + {0, N_("None")}, {1, N_("Portrait")}, {2, N_("Text")}, + {3, N_("Night portrait")}, {4, N_("Sunset")}, {5, N_("Sports action")}, +}; //! Lookup table to translate Minolta Std camera settings ISO settings values to readable labels -constexpr TagDetails minoltaISOSettingStd[] = {{0, "100"}, {1, "200"}, {2, "400"}, - {3, "800"}, {4, N_("Auto")}, {5, "64"}}; +constexpr TagDetails minoltaISOSettingStd[] = { + {0, "100"}, {1, "200"}, {2, "400"}, {3, "800"}, {4, N_("Auto")}, {5, "64"}, +}; //! Lookup table to translate Minolta Std camera settings model values to readable labels constexpr TagDetails minoltaModelStd[] = { @@ -197,45 +234,69 @@ constexpr TagDetails minoltaModelStd[] = { }; //! Lookup table to translate Minolta Std camera settings interval mode values to readable labels -constexpr TagDetails minoltaIntervalModeStd[] = {{0, N_("Still image")}, {1, N_("Time-lapse movie")}}; +constexpr TagDetails minoltaIntervalModeStd[] = { + {0, N_("Still image")}, + {1, N_("Time-lapse movie")}, +}; //! Lookup table to translate Minolta Std camera settings folder name values to readable labels -constexpr TagDetails minoltaFolderNameStd[] = {{0, N_("Standard form")}, {1, N_("Data form")}}; +constexpr TagDetails minoltaFolderNameStd[] = { + {0, N_("Standard form")}, + {1, N_("Data form")}, +}; //! Lookup table to translate Minolta Std camera settings color mode values to readable labels -constexpr TagDetails minoltaColorModeStd[] = {{0, N_("Natural color")}, - {1, N_("Black and white")}, - {2, N_("Vivid color")}, - {3, N_("Solarization")}, - {4, N_("Adobe RGB")}}; +constexpr TagDetails minoltaColorModeStd[] = { + {0, N_("Natural color")}, {1, N_("Black and white")}, {2, N_("Vivid color")}, + {3, N_("Solarization")}, {4, N_("Adobe RGB")}, +}; //! Lookup table to translate Minolta Std camera settings wide focus zone values to readable labels -constexpr TagDetails minoltaWideFocusZoneStd[] = {{0, N_("No zone")}, - {1, N_("Center zone (horizontal orientation)")}, - {1, N_("Center zone (vertical orientation)")}, - {1, N_("Left zone")}, - {4, N_("Right zone")}}; +constexpr TagDetails minoltaWideFocusZoneStd[] = { + {0, N_("No zone")}, + {1, N_("Center zone (horizontal orientation)")}, + {1, N_("Center zone (vertical orientation)")}, + {1, N_("Left zone")}, + {4, N_("Right zone")}, +}; //! Lookup table to translate Minolta Std camera settings focus mode values to readable labels -constexpr TagDetails minoltaFocusModeStd[] = {{0, N_("Auto focus")}, {1, N_("Manual focus")}}; +constexpr TagDetails minoltaFocusModeStd[] = { + {0, N_("Auto focus")}, + {1, N_("Manual focus")}, +}; //! Lookup table to translate Minolta Std camera settings focus area values to readable labels -constexpr TagDetails minoltaFocusAreaStd[] = {{0, N_("Wide focus (normal)")}, {1, N_("Spot focus")}}; +constexpr TagDetails minoltaFocusAreaStd[] = { + {0, N_("Wide focus (normal)")}, + {1, N_("Spot focus")}, +}; //! Lookup table to translate Minolta Std camera settings DEC switch position values to readable labels constexpr TagDetails minoltaDECPositionStd[] = { - {0, N_("Exposure")}, {1, N_("Contrast")}, {2, N_("Saturation")}, {3, N_("Filter")}}; + {0, N_("Exposure")}, + {1, N_("Contrast")}, + {2, N_("Saturation")}, + {3, N_("Filter")}, +}; //! Lookup table to translate Minolta Std camera settings color profile values to readable labels -constexpr TagDetails minoltaColorProfileStd[] = {{0, N_("Not embedded")}, {1, N_("Embedded")}}; +constexpr TagDetails minoltaColorProfileStd[] = { + {0, N_("Not embedded")}, + {1, N_("Embedded")}, +}; //! Lookup table to translate Minolta Std camera settings data Imprint values to readable labels constexpr TagDetails minoltaDataImprintStd[] = { - {0, N_("None")}, {1, "YYYY/MM/DD"}, {2, "MM/DD/HH:MM"}, {3, N_("Text")}, {4, N_("Text + ID#")}}; + {0, N_("None")}, {1, "YYYY/MM/DD"}, {2, "MM/DD/HH:MM"}, {3, N_("Text")}, {4, N_("Text + ID#")}, +}; //! Lookup table to translate Minolta Std camera settings flash metering values to readable labels constexpr TagDetails minoltaFlashMeteringStd[] = { - {0, N_("ADI (Advanced Distance Integration)")}, {1, N_("Pre-flash TTl")}, {2, N_("Manual flash control")}}; + {0, N_("ADI (Advanced Distance Integration)")}, + {1, N_("Pre-flash TTl")}, + {2, N_("Manual flash control")}, +}; std::ostream& MinoltaMakerNote::printMinoltaExposureSpeedStd(std::ostream& os, const Value& value, const ExifData*) { // From the PHP JPEG Metadata Toolkit @@ -419,14 +480,20 @@ const TagInfo* MinoltaMakerNote::tagListCsStd() { //! Lookup table to translate Minolta Dynax 7D camera settings exposure mode values to readable labels constexpr TagDetails minoltaExposureMode7D[] = { {0, N_("Program")}, {1, N_("Aperture priority")}, {2, N_("Shutter priority")}, {3, N_("Manual")}, - {4, N_("Auto")}, {5, N_("Program-shift A")}, {6, N_("Program-shift S")}}; + {4, N_("Auto")}, {5, N_("Program-shift A")}, {6, N_("Program-shift S")}, +}; //! Lookup table to translate Minolta Dynax 7D camera settings image size values to readable labels -constexpr TagDetails minoltaImageSize7D[] = {{0, N_("Large")}, {1, N_("Medium")}, {2, N_("Small")}}; +constexpr TagDetails minoltaImageSize7D[] = { + {0, N_("Large")}, + {1, N_("Medium")}, + {2, N_("Small")}, +}; //! Lookup table to translate Minolta Dynax 7D camera settings image quality values to readable labels constexpr TagDetails minoltaImageQuality7D[] = { - {0, N_("Raw")}, {16, N_("Fine")}, {32, N_("Normal")}, {34, N_("Raw+Jpeg")}, {48, N_("Economy")}}; + {0, N_("Raw")}, {16, N_("Fine")}, {32, N_("Normal")}, {34, N_("Raw+Jpeg")}, {48, N_("Economy")}, +}; //! Lookup table to translate Minolta Dynax 7D camera settings white balance values to readable labels constexpr TagDetails minoltaWhiteBalance7D[] = { @@ -437,24 +504,36 @@ constexpr TagDetails minoltaWhiteBalance7D[] = { //! Lookup table to translate Minolta Dynax 7D camera settings focus mode values to readable labels constexpr TagDetails minoltaFocusMode7D[] = { - {0, N_("Single-shot AF")}, {1, N_("Continuous AF")}, {3, N_("Manual")}, {4, N_("Automatic AF")}}; + {0, N_("Single-shot AF")}, + {1, N_("Continuous AF")}, + {3, N_("Manual")}, + {4, N_("Automatic AF")}, +}; //! Lookup table to translate Minolta Dynax 7D camera settings AF points values to readable labels -constexpr TagDetails minoltaAFPoints7D[] = {{1, N_("Center")}, {2, N_("Top")}, {4, N_("Top-right")}, - {8, N_("Right")}, {16, N_("Bottom-right")}, {32, N_("Bottom")}, - {64, N_("Bottom-left")}, {128, N_("Left")}, {256, N_("Top-left")}}; +constexpr TagDetails minoltaAFPoints7D[] = { + {1, N_("Center")}, {2, N_("Top")}, {4, N_("Top-right")}, {8, N_("Right")}, {16, N_("Bottom-right")}, + {32, N_("Bottom")}, {64, N_("Bottom-left")}, {128, N_("Left")}, {256, N_("Top-left")}, +}; //! Lookup table to translate Minolta Dynax 7D camera settings ISO settings values to readable labels -constexpr TagDetails minoltaISOSetting7D[] = {{0, N_("Auto")}, {1, "100"}, {3, "200"}, {4, "400"}, - {5, "800"}, {6, "1600"}, {7, "3200"}}; +constexpr TagDetails minoltaISOSetting7D[] = { + {0, N_("Auto")}, {1, "100"}, {3, "200"}, {4, "400"}, {5, "800"}, {6, "1600"}, {7, "3200"}, +}; //! Lookup table to translate Minolta Dynax 7D camera settings color space values to readable labels constexpr TagDetails minoltaColorSpace7D[] = { - {0, N_("sRGB (Natural)")}, {1, N_("sRGB (Natural+)")}, {4, N_("Adobe RGB")}}; + {0, N_("sRGB (Natural)")}, + {1, N_("sRGB (Natural+)")}, + {4, N_("Adobe RGB")}, +}; //! Lookup table to translate Minolta Dynax 7D camera settings rotation values to readable labels constexpr TagDetails minoltaRotation7D[] = { - {72, N_("Horizontal (normal)")}, {76, N_("Rotate 90 CW")}, {82, N_("Rotate 270 CW")}}; + {72, N_("Horizontal (normal)")}, + {76, N_("Rotate 90 CW")}, + {82, N_("Rotate 270 CW")}, +}; // Minolta Dynax 7D Camera Settings Tag Info constexpr TagInfo MinoltaMakerNote::tagInfoCs7D_[] = { @@ -523,73 +602,100 @@ const TagInfo* MinoltaMakerNote::tagListCs7D() { // -- Minolta Dynax 5D camera settings --------------------------------------------------------------- //! Lookup table to translate Minolta Dynax 5D camera settings exposure mode values to readable labels -constexpr TagDetails minoltaExposureMode5D[] = {{0, N_("Program")}, - {1, N_("Aperture priority")}, - {2, N_("Shutter priority")}, - {3, N_("Manual")}, - {4, N_("Auto")}, - {5, N_("Program Shift A")}, - {6, N_("Program Shift S")}, - {0x1013, N_("Portrait")}, - {0x1023, N_("Sports")}, - {0x1033, N_("Sunset")}, - {0x1043, N_("Night View/Portrait")}, - {0x1053, N_("Landscape")}, - {0x1083, N_("Macro")}}; +constexpr TagDetails minoltaExposureMode5D[] = { + {0, N_("Program")}, + {1, N_("Aperture priority")}, + {2, N_("Shutter priority")}, + {3, N_("Manual")}, + {4, N_("Auto")}, + {5, N_("Program Shift A")}, + {6, N_("Program Shift S")}, + {0x1013, N_("Portrait")}, + {0x1023, N_("Sports")}, + {0x1033, N_("Sunset")}, + {0x1043, N_("Night View/Portrait")}, + {0x1053, N_("Landscape")}, + {0x1083, N_("Macro")}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings image size values to readable labels -constexpr TagDetails minoltaImageSize5D[] = {{0, N_("Large")}, {1, N_("Medium")}, {2, N_("Small")}}; +constexpr TagDetails minoltaImageSize5D[] = { + {0, N_("Large")}, + {1, N_("Medium")}, + {2, N_("Small")}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings image quality values to readable labels constexpr TagDetails minoltaImageQuality5D[] = { - {0, N_("Raw")}, {16, N_("Fine")}, {32, N_("Normal")}, {34, N_("Raw+Jpeg")}, {48, N_("Economy")}}; + {0, N_("Raw")}, {16, N_("Fine")}, {32, N_("Normal")}, {34, N_("Raw+Jpeg")}, {48, N_("Economy")}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings white balance values to readable labels -constexpr TagDetails minoltaWhiteBalance5D[] = {{0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, - {3, N_("Shade")}, {4, N_("Tungsten")}, {5, N_("Fluorescent")}, - {6, N_("Flash")}, {256, N_("Kelvin")}, {512, N_("Manual")}}; +constexpr TagDetails minoltaWhiteBalance5D[] = { + {0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")}, {4, N_("Tungsten")}, + {5, N_("Fluorescent")}, {6, N_("Flash")}, {256, N_("Kelvin")}, {512, N_("Manual")}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings metering mode values to readable labels -constexpr TagDetails minoltaMeteringMode5D[] = {{0, N_("Multi-segment")}, {1, N_("Center weighted")}, {2, N_("Spot")}}; +constexpr TagDetails minoltaMeteringMode5D[] = { + {0, N_("Multi-segment")}, + {1, N_("Center weighted")}, + {2, N_("Spot")}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings ISO settings values to readable labels -constexpr TagDetails minoltaISOSetting5D[] = {{0, N_("Auto")}, - {1, "100"}, - {3, "200"}, - {4, "400"}, - {5, "800"}, - {6, "1600"}, - {7, "3200"}, - {8, N_("200 (Zone Matching High)")}, - {10, N_("80 (Zone Matching Low)")}}; +constexpr TagDetails minoltaISOSetting5D[] = { + {0, N_("Auto")}, + {1, "100"}, + {3, "200"}, + {4, "400"}, + {5, "800"}, + {6, "1600"}, + {7, "3200"}, + {8, N_("200 (Zone Matching High)")}, + {10, N_("80 (Zone Matching Low)")}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings color space values to readable labels -constexpr TagDetails minoltaColorSpace5D[] = {{0, N_("sRGB (Natural)")}, - {1, N_("sRGB (Natural+)")}, - {2, N_("Monochrome")}, - {3, N_("Adobe RGB (ICC)")}, - {4, N_("Adobe RGB")}}; +constexpr TagDetails minoltaColorSpace5D[] = { + {0, N_("sRGB (Natural)")}, {1, N_("sRGB (Natural+)")}, {2, N_("Monochrome")}, + {3, N_("Adobe RGB (ICC)")}, {4, N_("Adobe RGB")}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings rotation values to readable labels constexpr TagDetails minoltaRotation5D[] = { - {72, N_("Horizontal (normal)")}, {76, N_("Rotate 90 CW")}, {82, N_("Rotate 270 CW")}}; + {72, N_("Horizontal (normal)")}, + {76, N_("Rotate 90 CW")}, + {82, N_("Rotate 270 CW")}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings focus position values to readable labels constexpr TagDetails minoltaFocusPosition5D[] = { {0, N_("Wide")}, {1, N_("Central")}, {2, N_("Up")}, {3, N_("Up right")}, {4, N_("Right")}, - {5, N_("Down right")}, {6, N_("Down")}, {7, N_("Down left")}, {8, N_("Left")}, {9, N_("Up left")}}; + {5, N_("Down right")}, {6, N_("Down")}, {7, N_("Down left")}, {8, N_("Left")}, {9, N_("Up left")}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings focus area values to readable labels -constexpr TagDetails minoltaFocusArea5D[] = {{0, N_("Wide")}, {1, N_("Selection")}, {2, N_("Spot")}}; +constexpr TagDetails minoltaFocusArea5D[] = { + {0, N_("Wide")}, + {1, N_("Selection")}, + {2, N_("Spot")}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings focus mode values to readable labels -constexpr TagDetails minoltaAFMode5D[] = {{0, "AF-A"}, {1, "AF-S"}, {2, "AF-D"}, {3, "DMF"}}; +constexpr TagDetails minoltaAFMode5D[] = { + {0, "AF-A"}, + {1, "AF-S"}, + {2, "AF-D"}, + {3, "DMF"}, +}; //! Lookup table to translate Minolta Dynax 5D camera settings picture finish values to readable labels constexpr TagDetails minoltaPictureFinish5D[] = { - {0, N_("Natural")}, {1, N_("Natural+")}, {2, N_("Portrait")}, {3, N_("Wind Scene")}, - {4, N_("Evening Scene")}, {5, N_("Night Scene")}, {6, N_("Night Portrait")}, {7, N_("Monochrome")}, - {8, N_("Adobe RGB")}, {9, N_("Adobe RGB (ICC)")}}; + {0, N_("Natural")}, {1, N_("Natural+")}, {2, N_("Portrait")}, {3, N_("Wind Scene")}, + {4, N_("Evening Scene")}, {5, N_("Night Scene")}, {6, N_("Night Portrait")}, {7, N_("Monochrome")}, + {8, N_("Adobe RGB")}, {9, N_("Adobe RGB (ICC)")}, +}; //! Method to convert Minolta Dynax 5D exposure manual bias values. std::ostream& MinoltaMakerNote::printMinoltaExposureManualBias5D(std::ostream& os, const Value& value, @@ -698,152 +804,252 @@ const TagInfo* MinoltaMakerNote::tagListCs5D() { // -- Sony A100 camera settings --------------------------------------------------------------- //! Lookup table to translate Sony A100 camera settings drive mode 2 values to readable labels -constexpr TagDetails sonyDriveMode2A100[] = {{0, N_("Self-timer 10 sec")}, - {1, N_("Continuous")}, - {4, N_("Self-timer 2 sec")}, - {5, N_("Single Frame")}, - {8, N_("White Balance Bracketing Low")}, - {9, N_("White Balance Bracketing High")}, - {770, N_("Single-frame Bracketing Low")}, - {771, N_("Continuous Bracketing Low")}, - {1794, N_("Single-frame Bracketing High")}, - {1795, N_("Continuous Bracketing High")}}; +constexpr TagDetails sonyDriveMode2A100[] = { + {0, N_("Self-timer 10 sec")}, + {1, N_("Continuous")}, + {4, N_("Self-timer 2 sec")}, + {5, N_("Single Frame")}, + {8, N_("White Balance Bracketing Low")}, + {9, N_("White Balance Bracketing High")}, + {770, N_("Single-frame Bracketing Low")}, + {771, N_("Continuous Bracketing Low")}, + {1794, N_("Single-frame Bracketing High")}, + {1795, N_("Continuous Bracketing High")}, +}; //! Lookup table to translate Sony A100 camera settings focus mode values to readable labels -constexpr TagDetails sonyFocusModeA100[] = {{0, "AF-S"}, {1, "AF-C"}, {4, "AF-A"}, {5, "Manual"}, {6, "DMF"}}; +constexpr TagDetails sonyFocusModeA100[] = { + {0, "AF-S"}, {1, "AF-C"}, {4, "AF-A"}, {5, "Manual"}, {6, "DMF"}, +}; //! Lookup table to translate Sony A100 camera settings flash mode values to readable labels constexpr TagDetails sonyFlashModeA100[] = { - {0, N_("Auto")}, {2, N_("Rear flash sync")}, {3, N_("Wireless")}, {4, N_("Fill flash")}}; + {0, N_("Auto")}, + {2, N_("Rear flash sync")}, + {3, N_("Wireless")}, + {4, N_("Fill flash")}, +}; //! Lookup table to translate Sony A100 camera settings metering mode values to readable labels constexpr TagDetails sonyMeteringModeA100[] = { - {0, N_("Multi-segment")}, {1, N_("Center weighted average")}, {2, N_("Spot")}}; + {0, N_("Multi-segment")}, + {1, N_("Center weighted average")}, + {2, N_("Spot")}, +}; //! Lookup table to translate Sony A100 camera settings zone matching mode values to readable labels -constexpr TagDetails sonyZoneMatchingModeA100[] = {{0, N_("Off")}, {1, N_("Standard")}, {2, N_("Advanced")}}; +constexpr TagDetails sonyZoneMatchingModeA100[] = { + {0, N_("Off")}, + {1, N_("Standard")}, + {2, N_("Advanced")}, +}; //! Lookup table to translate Sony A100 camera settings color space values to readable labels -constexpr TagDetails sonyColorSpaceA100[] = {{0, N_("sRGB")}, {5, N_("Adobe RGB")}}; +constexpr TagDetails sonyColorSpaceA100[] = { + {0, N_("sRGB")}, + {5, N_("Adobe RGB")}, +}; //! Lookup table to translate Sony A100 camera settings drive mode values to readable labels -constexpr TagDetails sonyDriveModeA100[] = {{0, N_("Single Frame")}, - {1, N_("Continuous")}, - {2, N_("Self-timer")}, - {3, N_("Continuous Bracketing")}, - {4, N_("Single-Frame Bracketing")}, - {5, N_("White Balance Bracketing")}}; +constexpr TagDetails sonyDriveModeA100[] = { + {0, N_("Single Frame")}, + {1, N_("Continuous")}, + {2, N_("Self-timer")}, + {3, N_("Continuous Bracketing")}, + {4, N_("Single-Frame Bracketing")}, + {5, N_("White Balance Bracketing")}, +}; //! Lookup table to translate Sony A100 camera settings self timer time values to readable labels -constexpr TagDetails sonySelfTimerTimeA100[] = {{0, "10s"}, {4, "2s"}}; +constexpr TagDetails sonySelfTimerTimeA100[] = { + {0, "10s"}, + {4, "2s"}, +}; //! Lookup table to translate Sony A100 camera settings continuous bracketing values to readable labels -constexpr TagDetails sonyContinuousBracketingA100[] = {{0x303, N_("Low")}, {0x703, N_("High")}}; +constexpr TagDetails sonyContinuousBracketingA100[] = { + {0x303, N_("Low")}, + {0x703, N_("High")}, +}; //! Lookup table to translate Sony A100 camera settings single frame bracketing values to readable labels -constexpr TagDetails sonySingleFrameBracketingA100[] = {{0x302, N_("Low")}, {0x702, N_("High")}}; +constexpr TagDetails sonySingleFrameBracketingA100[] = { + {0x302, N_("Low")}, + {0x702, N_("High")}, +}; //! Lookup table to translate Sony A100 camera settings white balance bracketing values to readable labels -constexpr TagDetails sonyWhiteBalanceBracketingA100[] = {{0x8, N_("Low")}, {0x9, N_("High")}}; +constexpr TagDetails sonyWhiteBalanceBracketingA100[] = { + {0x8, N_("Low")}, + {0x9, N_("High")}, +}; //! Lookup table to translate Sony A100 camera settings white balance setting values to readable labels -constexpr TagDetails sonyWhiteBalanceSettingA100[] = {{0x0000, N_("Auto")}, - {0x0001, N_("Preset")}, - {0x0002, N_("Custom")}, - {0x0003, N_("Color Temperature/Color Filter")}, - {0x8001, N_("Preset")}, - {0x8002, N_("Custom")}, - {0x8003, N_("Color Temperature/Color Filter")}}; +constexpr TagDetails sonyWhiteBalanceSettingA100[] = { + {0x0000, N_("Auto")}, + {0x0001, N_("Preset")}, + {0x0002, N_("Custom")}, + {0x0003, N_("Color Temperature/Color Filter")}, + {0x8001, N_("Preset")}, + {0x8002, N_("Custom")}, + {0x8003, N_("Color Temperature/Color Filter")}, +}; //! Lookup table to translate Sony A100 camera settings preset white balance values to readable labels -constexpr TagDetails sonyPresetWhiteBalanceA100[] = {{1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")}, - {4, N_("Tungsten")}, {5, N_("Fluorescent")}, {6, N_("Flash")}}; +constexpr TagDetails sonyPresetWhiteBalanceA100[] = { + {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")}, + {4, N_("Tungsten")}, {5, N_("Fluorescent")}, {6, N_("Flash")}, +}; //! Lookup table to translate Sony A100 camera settings color temperature setting values to readable labels -constexpr TagDetails sonyColorTemperatureSettingA100[] = {{0, N_("Temperature")}, {2, N_("Color Filter")}}; +constexpr TagDetails sonyColorTemperatureSettingA100[] = { + {0, N_("Temperature")}, + {2, N_("Color Filter")}, +}; //! Lookup table to translate Sony A100 camera settings custom WB setting values to readable labels -constexpr TagDetails sonyCustomWBSettingA100[] = {{0, N_("Setup")}, {2, N_("Recall")}}; +constexpr TagDetails sonyCustomWBSettingA100[] = { + {0, N_("Setup")}, + {2, N_("Recall")}, +}; //! Lookup table to translate Sony A100 camera settings custom WB error values to readable labels -constexpr TagDetails sonyCustomWBErrorA100[] = {{0, N_("Ok")}, {2, N_("Error")}}; +constexpr TagDetails sonyCustomWBErrorA100[] = { + {0, N_("Ok")}, + {2, N_("Error")}, +}; //! Lookup table to translate Sony A100 camera settings image size values to readable labels -constexpr TagDetails sonyImageSizeA100[] = {{0, N_("Standard")}, {1, N_("Medium")}, {2, N_("Small")}}; +constexpr TagDetails sonyImageSizeA100[] = { + {0, N_("Standard")}, + {1, N_("Medium")}, + {2, N_("Small")}, +}; //! Lookup table to translate Sony A100 camera settings instant playback setup values to readable labels constexpr TagDetails sonyInstantPlaybackSetupA100[] = { - {0, N_("Image and Information")}, {1, N_("Image Only")}, {3, N_("Image and Histogram")}}; + {0, N_("Image and Information")}, + {1, N_("Image Only")}, + {3, N_("Image and Histogram")}, +}; //! Lookup table to translate Sony A100 camera settings flash default setup values to readable labels -constexpr TagDetails sonyFlashDefaultA100[] = {{0, N_("Auto")}, {1, N_("Fill Flash")}}; +constexpr TagDetails sonyFlashDefaultA100[] = { + {0, N_("Auto")}, + {1, N_("Fill Flash")}, +}; //! Lookup table to translate Sony A100 camera settings auto bracket order values to readable labels -constexpr TagDetails sonyAutoBracketOrderA100[] = {{0, "0-+"}, {1, "-0+"}}; +constexpr TagDetails sonyAutoBracketOrderA100[] = { + {0, "0-+"}, + {1, "-0+"}, +}; //! Lookup table to translate Sony A100 camera settings focus hold button values to readable labels -constexpr TagDetails sonyFocusHoldButtonA100[] = {{0, N_("Focus Hold")}, {1, N_("DOF Preview")}}; +constexpr TagDetails sonyFocusHoldButtonA100[] = { + {0, N_("Focus Hold")}, + {1, N_("DOF Preview")}, +}; //! Lookup table to translate Sony A100 camera settings AEL button values to readable labels constexpr TagDetails sonyAELButtonA100[] = { - {0, N_("Hold")}, {1, N_("Toggle")}, {2, N_("Spot Hold")}, {3, N_("Spot Toggle")}}; + {0, N_("Hold")}, + {1, N_("Toggle")}, + {2, N_("Spot Hold")}, + {3, N_("Spot Toggle")}, +}; //! Lookup table to translate Sony A100 camera settings control dial set values to readable labels -constexpr TagDetails sonyControlDialSetA100[] = {{0, N_("Shutter Speed")}, {1, N_("Aperture")}}; +constexpr TagDetails sonyControlDialSetA100[] = { + {0, N_("Shutter Speed")}, + {1, N_("Aperture")}, +}; //! Lookup table to translate Sony A100 camera settings exposure compensation mode values to readable labels -constexpr TagDetails sonyExposureCompensationModeA100[] = {{0, N_("Ambient and Flash")}, {1, N_("Ambient Only")}}; +constexpr TagDetails sonyExposureCompensationModeA100[] = { + {0, N_("Ambient and Flash")}, + {1, N_("Ambient Only")}, +}; //! Lookup table to translate Sony A100 camera settings sony AF area illumination values to readable labels -constexpr TagDetails sonyAFAreaIlluminationA100[] = {{0, N_("0.3 seconds")}, {1, N_("0.6 seconds")}, {2, N_("Off")}}; +constexpr TagDetails sonyAFAreaIlluminationA100[] = { + {0, N_("0.3 seconds")}, + {1, N_("0.6 seconds")}, + {2, N_("Off")}, +}; //! Lookup table to translate Sony A100 camera settings monitor display off values to readable labels -constexpr TagDetails sonyMonitorDisplayOffA100[] = {{0, N_("Automatic")}, {1, N_("Manual")}}; +constexpr TagDetails sonyMonitorDisplayOffA100[] = { + {0, N_("Automatic")}, + {1, N_("Manual")}, +}; //! Lookup table to translate Sony A100 camera settings record display values to readable labels -constexpr TagDetails sonyRecordDisplayA100[] = {{0, N_("Auto-rotate")}, {1, N_("Horizontal")}}; +constexpr TagDetails sonyRecordDisplayA100[] = { + {0, N_("Auto-rotate")}, + {1, N_("Horizontal")}, +}; //! Lookup table to translate Sony A100 camera settings play display values to readable labels -constexpr TagDetails sonyPlayDisplayA100[] = {{0, N_("Auto-rotate")}, {1, N_("Manual Rotate")}}; +constexpr TagDetails sonyPlayDisplayA100[] = { + {0, N_("Auto-rotate")}, + {1, N_("Manual Rotate")}, +}; //! Lookup table to translate Sony A100 camera settings metering off scale indicator values to readable labels constexpr TagDetails sonyMeteringOffScaleIndicatorA100[] = { - {0, N_("Within Range")}, {1, N_("Under/Over Range")}, {255, N_("Out of Range")}}; + {0, N_("Within Range")}, + {1, N_("Under/Over Range")}, + {255, N_("Out of Range")}, +}; //! Lookup table to translate Sony A100 camera settings exposure indicator values to readable labels -constexpr TagDetails sonyExposureIndicatorA100[] = {{0, N_("Not Indicated")}, - {1, N_("Under Scale")}, - {119, N_("Bottom of Scale")}, - {120, "-2.0"}, - {121, "-1.7"}, - {122, "-1.5"}, - {123, "-1.3"}, - {124, "-1.0"}, - {125, "-0.7"}, - {126, "-0.5"}, - {127, "-0.3"}, - {128, "-0.0"}, - {129, "+0.3"}, - {130, "+0.5"}, - {131, "+0.7"}, - {132, "+1.0"}, - {133, "+1.3"}, - {134, "+1.5"}, - {135, "+1.7"}, - {136, "+2.0"}, - {253, N_("Top of Scale")}, - {254, N_("Over Scale")}}; +constexpr TagDetails sonyExposureIndicatorA100[] = { + {0, N_("Not Indicated")}, + {1, N_("Under Scale")}, + {119, N_("Bottom of Scale")}, + {120, "-2.0"}, + {121, "-1.7"}, + {122, "-1.5"}, + {123, "-1.3"}, + {124, "-1.0"}, + {125, "-0.7"}, + {126, "-0.5"}, + {127, "-0.3"}, + {128, "-0.0"}, + {129, "+0.3"}, + {130, "+0.5"}, + {131, "+0.7"}, + {132, "+1.0"}, + {133, "+1.3"}, + {134, "+1.5"}, + {135, "+1.7"}, + {136, "+2.0"}, + {253, N_("Top of Scale")}, + {254, N_("Over Scale")}, +}; //! Lookup table to translate Sony A100 camera settings focus mode switch values to readable labels -constexpr TagDetails sonyFocusModeSwitchA100[] = {{0, N_("AM")}, {1, N_("MF")}}; +constexpr TagDetails sonyFocusModeSwitchA100[] = { + {0, N_("AM")}, + {1, N_("MF")}, +}; //! Lookup table to translate Sony A100 camera settings flash type switch values to readable labels -constexpr TagDetails sonyFlashTypeA100[] = {{0, N_("Off")}, {1, N_("Built-in")}, {2, N_("External")}}; +constexpr TagDetails sonyFlashTypeA100[] = { + {0, N_("Off")}, + {1, N_("Built-in")}, + {2, N_("External")}, +}; //! Lookup table to translate Sony A100 camera settings battery level switch values to readable labels constexpr TagDetails sonyBatteryLevelA100[] = { - {3, N_("Very Low")}, {4, N_("Low")}, {5, N_("Half Full")}, {6, N_("Sufficient Power Remaining")}}; + {3, N_("Very Low")}, + {4, N_("Low")}, + {5, N_("Half Full")}, + {6, N_("Sufficient Power Remaining")}, +}; // Sony A100 Camera Settings Tag Info constexpr TagInfo MinoltaMakerNote::tagInfoCsA100_[] = { @@ -1390,7 +1596,8 @@ static constexpr TagDetails minoltaSonyLensID[] = { "Manual lens | " // 1 "Sony E 50mm F1.8 OSS | " // 2 "E PZ 16-50mm F3.5-5.6 OSS" // 3 - }}; + }, +}; // ---------------------------------------------------------------------- // #1145 begin - respect lenses with shared LensID @@ -1689,10 +1896,11 @@ std::ostream& printMinoltaSonyLensID(std::ostream& os, const Value& value, const //! Lookup table to translate Minolta A100 and all other Sony Alpha camera color mode values to readable labels constexpr TagDetails minoltaSonyColorMode[] = { - {0, N_("Standard")}, {1, N_("Vivid Color")}, {2, N_("Portrait")}, {3, N_("Landscape")}, - {4, N_("Sunset")}, {5, N_("Night View/Portrait")}, {6, N_("Black & White")}, {7, N_("AdobeRGB")}, - {12, N_("Neutral")}, {100, N_("Neutral")}, {101, N_("Clear")}, {102, N_("Deep")}, - {103, N_("Light")}, {104, N_("Night View")}, {105, N_("Autumn Leaves")}}; + {0, N_("Standard")}, {1, N_("Vivid Color")}, {2, N_("Portrait")}, {3, N_("Landscape")}, + {4, N_("Sunset")}, {5, N_("Night View/Portrait")}, {6, N_("Black & White")}, {7, N_("AdobeRGB")}, + {12, N_("Neutral")}, {100, N_("Neutral")}, {101, N_("Clear")}, {102, N_("Deep")}, + {103, N_("Light")}, {104, N_("Night View")}, {105, N_("Autumn Leaves")}, +}; std::ostream& printMinoltaSonyColorMode(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(minoltaSonyColorMode)(os, value, metadata); @@ -1701,7 +1909,10 @@ std::ostream& printMinoltaSonyColorMode(std::ostream& os, const Value& value, co // ---------------------------------------------------------------------------------------------------- //! Lookup table to translate Minolta/Sony bool function values to readable labels -constexpr TagDetails minoltaSonyBoolFunction[] = {{0, N_("Off")}, {1, N_("On")}}; +constexpr TagDetails minoltaSonyBoolFunction[] = { + {0, N_("Off")}, + {1, N_("On")}, +}; std::ostream& printMinoltaSonyBoolValue(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(minoltaSonyBoolFunction)(os, value, metadata); @@ -1710,7 +1921,10 @@ std::ostream& printMinoltaSonyBoolValue(std::ostream& os, const Value& value, co // ---------------------------------------------------------------------------------------------------- //! Lookup table to translate Minolta/Sony bool inverse function values to readable labels -constexpr TagDetails minoltaSonyBoolInverseFunction[] = {{0, N_("On")}, {1, N_("Off")}}; +constexpr TagDetails minoltaSonyBoolInverseFunction[] = { + {0, N_("On")}, + {1, N_("Off")}, +}; std::ostream& printMinoltaSonyBoolInverseValue(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(minoltaSonyBoolInverseFunction)(os, value, metadata); @@ -1719,7 +1933,11 @@ std::ostream& printMinoltaSonyBoolInverseValue(std::ostream& os, const Value& va // ---------------------------------------------------------------------------------------------------- //! Lookup table to translate Sony camera settings focus mode values to readable labels -constexpr TagDetails minoltaSonyAFAreaMode[] = {{0, N_("Wide")}, {1, N_("Local")}, {2, N_("Spot")}}; +constexpr TagDetails minoltaSonyAFAreaMode[] = { + {0, N_("Wide")}, + {1, N_("Local")}, + {2, N_("Spot")}, +}; std::ostream& printMinoltaSonyAFAreaMode(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(minoltaSonyAFAreaMode)(os, value, metadata); @@ -1731,7 +1949,8 @@ std::ostream& printMinoltaSonyAFAreaMode(std::ostream& os, const Value& value, c constexpr TagDetails minoltaSonyLocalAFAreaPoint[] = { {1, N_("Center")}, {2, N_("Top")}, {3, N_("Top-Right")}, {4, N_("Right")}, {5, N_("Bottom-Right")}, {6, N_("Bottom")}, {7, N_("Bottom-Left")}, {8, N_("Left")}, - {9, N_("Top-Left")}, {10, N_("Far-Right")}, {11, N_("Far-Left")}}; + {9, N_("Top-Left")}, {10, N_("Far-Right")}, {11, N_("Far-Left")}, +}; std::ostream& printMinoltaSonyLocalAFAreaPoint(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(minoltaSonyLocalAFAreaPoint)(os, value, metadata); @@ -1741,7 +1960,8 @@ std::ostream& printMinoltaSonyLocalAFAreaPoint(std::ostream& os, const Value& va //! Lookup table to translate Sony camera settings dynamic range optimizer mode values to readable labels constexpr TagDetails minoltaSonyDynamicRangeOptimizerMode[] = { - {0, N_("Off")}, {1, N_("Standard")}, {2, N_("Advanced Auto")}, {3, N_("Advanced Level")}, {4097, N_("Auto")}}; + {0, N_("Off")}, {1, N_("Standard")}, {2, N_("Advanced Auto")}, {3, N_("Advanced Level")}, {4097, N_("Auto")}, +}; std::ostream& printMinoltaSonyDynamicRangeOptimizerMode(std::ostream& os, const Value& value, const ExifData* metadata) { @@ -1751,7 +1971,10 @@ std::ostream& printMinoltaSonyDynamicRangeOptimizerMode(std::ostream& os, const // ---------------------------------------------------------------------------------------------------- //! Lookup table to translate Sony camera settings priority setup shutter release values to readable labels -constexpr TagDetails minoltaSonyPrioritySetupShutterRelease[] = {{0, N_("AF")}, {1, N_("Release")}}; +constexpr TagDetails minoltaSonyPrioritySetupShutterRelease[] = { + {0, N_("AF")}, + {1, N_("Release")}, +}; std::ostream& printMinoltaSonyPrioritySetupShutterRelease(std::ostream& os, const Value& value, const ExifData* metadata) { @@ -1761,9 +1984,10 @@ std::ostream& printMinoltaSonyPrioritySetupShutterRelease(std::ostream& os, cons // ---------------------------------------------------------------------------------------------------- //! Lookup table to translate Sony camera settings quality values to readable labels -constexpr TagDetails minoltaSonyQualityCs[] = {{0, N_("RAW")}, {2, N_("CRAW")}, {16, N_("Extra Fine")}, - {32, N_("Fine")}, {34, N_("RAW+JPEG")}, {35, N_("CRAW+JPEG")}, - {48, N_("Standard")}}; +constexpr TagDetails minoltaSonyQualityCs[] = { + {0, N_("RAW")}, {2, N_("CRAW")}, {16, N_("Extra Fine")}, {32, N_("Fine")}, + {34, N_("RAW+JPEG")}, {35, N_("CRAW+JPEG")}, {48, N_("Standard")}, +}; std::ostream& printMinoltaSonyQualityCs(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(minoltaSonyQualityCs)(os, value, metadata); @@ -1773,7 +1997,10 @@ std::ostream& printMinoltaSonyQualityCs(std::ostream& os, const Value& value, co //! Lookup table to translate Sony camera settings rotation values to readable labels constexpr TagDetails minoltaSonyRotation[] = { - {0, N_("Horizontal (normal)")}, {1, N_("Rotate 90 CW")}, {2, N_("Rotate 270 CW")}}; + {0, N_("Horizontal (normal)")}, + {1, N_("Rotate 90 CW")}, + {2, N_("Rotate 270 CW")}, +}; std::ostream& printMinoltaSonyRotation(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(minoltaSonyRotation)(os, value, metadata); @@ -1817,15 +2044,17 @@ std::ostream& printMinoltaSonySceneMode(std::ostream& os, const Value& value, co // ---------------------------------------------------------------------------------------------------- //! Lookup table to translate Sony/Minolta teleconverter model values to readable labels -constexpr TagDetails minoltaSonyTeleconverterModel[] = {{0x00, N_("None")}, - {0x04, N_("Minolta/Sony AF 1.4x APO (D) (0x04)")}, - {0x05, N_("Minolta/Sony AF 2x APO (D) (0x05)")}, - {0x48, N_("Minolta/Sony AF 2x APO (D)")}, - {0x50, N_("Minolta AF 2x APO II")}, - {0x60, N_("Minolta AF 2x APO")}, - {0x88, N_("Minolta/Sony AF 1.4x APO (D)")}, - {0x90, N_("Minolta AF 1.4x APO II")}, - {0xa0, N_("Minolta AF 1.4x APO")}}; +constexpr TagDetails minoltaSonyTeleconverterModel[] = { + {0x00, N_("None")}, + {0x04, N_("Minolta/Sony AF 1.4x APO (D) (0x04)")}, + {0x05, N_("Minolta/Sony AF 2x APO (D) (0x05)")}, + {0x48, N_("Minolta/Sony AF 2x APO (D)")}, + {0x50, N_("Minolta AF 2x APO II")}, + {0x60, N_("Minolta AF 2x APO")}, + {0x88, N_("Minolta/Sony AF 1.4x APO (D)")}, + {0x90, N_("Minolta AF 1.4x APO II")}, + {0xa0, N_("Minolta AF 1.4x APO")}, +}; std::ostream& printMinoltaSonyTeleconverterModel(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(minoltaSonyTeleconverterModel)(os, value, metadata); @@ -1834,7 +2063,11 @@ std::ostream& printMinoltaSonyTeleconverterModel(std::ostream& os, const Value& // ---------------------------------------------------------------------------------------------------- //! Lookup table to translate Sony/Minolta zone matching values to readable labels -constexpr TagDetails minoltaSonyZoneMatching[] = {{0, N_("ISO Setting Used")}, {1, N_("High Key")}, {2, N_("Low Key")}}; +constexpr TagDetails minoltaSonyZoneMatching[] = { + {0, N_("ISO Setting Used")}, + {1, N_("High Key")}, + {2, N_("Low Key")}, +}; std::ostream& printMinoltaSonyZoneMatching(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(minoltaSonyZoneMatching)(os, value, metadata); diff --git a/src/nikonmn_int.cpp b/src/nikonmn_int.cpp index 949023d00e..dc2d5d6319 100644 --- a/src/nikonmn_int.cpp +++ b/src/nikonmn_int.cpp @@ -54,59 +54,79 @@ constexpr auto nikonFocuspoints = std::array{ //! Shutter Modes (credits to exiftool) constexpr TagDetails nikonShutterModes[] = { {0, "Mechanical"}, {16, "Electronic"}, {48, "Electronic Front Curtain"}, - {64, "Electronic (Movie)"}, {80, "Auto (Mechanical)"}, {81, "Auto (Electronic Front Curtain)"}}; + {64, "Electronic (Movie)"}, {80, "Auto (Mechanical)"}, {81, "Auto (Electronic Front Curtain)"}, +}; //! FlashComp, tag 0x0012 constexpr TagDetails nikonFlashComp[] = { // From the PHP JPEG Metadata Toolkit {0x06, "+1.0 EV"}, {0x04, "+0.7 EV"}, {0x03, "+0.5 EV"}, {0x02, "+0.3 EV"}, {0x00, "0.0 EV"}, {0xfe, "-0.3 EV"}, {0xfd, "-0.5 EV"}, {0xfc, "-0.7 EV"}, {0xfa, "-1.0 EV"}, {0xf8, "-1.3 EV"}, {0xf7, "-1.5 EV"}, {0xf6, "-1.7 EV"}, - {0xf4, "-2.0 EV"}, {0xf2, "-2.3 EV"}, {0xf1, "-2.5 EV"}, {0xf0, "-2.7 EV"}, {0xee, "-3.0 EV"}}; + {0xf4, "-2.0 EV"}, {0xf2, "-2.3 EV"}, {0xf1, "-2.5 EV"}, {0xf0, "-2.7 EV"}, {0xee, "-3.0 EV"}, +}; //! ColorSpace, tag 0x001e -constexpr TagDetails nikonColorSpace[] = {{1, N_("sRGB")}, {2, N_("Adobe RGB")}}; +constexpr TagDetails nikonColorSpace[] = { + {1, N_("sRGB")}, + {2, N_("Adobe RGB")}, +}; //! FlashMode, tag 0x0087 constexpr TagDetails nikonFlashMode[] = { {0, N_("Did not fire")}, {1, N_("Fire, manual")}, {3, N_("Not ready")}, {6, N_("Off")}, - {7, N_("Fire, external")}, {8, N_("Fire, commander mode")}, {9, N_("Fire, TTL mode")}, {18, N_("LED Light")}}; + {7, N_("Fire, external")}, {8, N_("Fire, commander mode")}, {9, N_("Fire, TTL mode")}, {18, N_("LED Light")}, +}; //! ShootingMode, tag 0x0089 -constexpr TagDetailsBitmask nikonShootingMode[] = {{0x0001, N_("Continuous")}, - {0x0002, N_("Delay")}, - {0x0004, N_("PC Control")}, - {0x0008, N_("Self-timer")}, - {0x0010, N_("Exposure Bracketing")}, - {0x0020, N_("Auto ISO")}, - {0x0040, N_("White-Balance Bracketing")}, - {0x0080, N_("IR Control")}, - {0x0100, N_("D-Lighting Bracketing")}}; +constexpr TagDetailsBitmask nikonShootingMode[] = { + {0x0001, N_("Continuous")}, + {0x0002, N_("Delay")}, + {0x0004, N_("PC Control")}, + {0x0008, N_("Self-timer")}, + {0x0010, N_("Exposure Bracketing")}, + {0x0020, N_("Auto ISO")}, + {0x0040, N_("White-Balance Bracketing")}, + {0x0080, N_("IR Control")}, + {0x0100, N_("D-Lighting Bracketing")}, +}; //! ShootingMode D70, tag 0x0089 -constexpr TagDetailsBitmask nikonShootingModeD70[] = {{0x0001, N_("Continuous")}, - {0x0002, N_("Delay")}, - {0x0004, N_("PC control")}, - {0x0010, N_("Exposure bracketing")}, - {0x0020, N_("Unused LE-NR slowdown")}, - {0x0040, N_("White balance bracketing")}, - {0x0080, N_("IR control")}}; +constexpr TagDetailsBitmask nikonShootingModeD70[] = { + {0x0001, N_("Continuous")}, + {0x0002, N_("Delay")}, + {0x0004, N_("PC control")}, + {0x0010, N_("Exposure bracketing")}, + {0x0020, N_("Unused LE-NR slowdown")}, + {0x0040, N_("White balance bracketing")}, + {0x0080, N_("IR control")}, +}; //! AutoBracketRelease, tag 0x008a -constexpr TagDetails nikonAutoBracketRelease[] = {{0, N_("None")}, {1, N_("Auto release")}, {2, N_("Manual release")}}; +constexpr TagDetails nikonAutoBracketRelease[] = { + {0, N_("None")}, + {1, N_("Auto release")}, + {2, N_("Manual release")}, +}; //! NEFCompression, tag 0x0093 constexpr TagDetails nikonNefCompression[] = { - {1, N_("Lossy (type 1)")}, {2, N_("Uncompressed")}, {3, N_("Lossless")}, {4, N_("Lossy (type 2)")}}; + {1, N_("Lossy (type 1)")}, + {2, N_("Uncompressed")}, + {3, N_("Lossless")}, + {4, N_("Lossy (type 2)")}, +}; //! RetouchHistory, tag 0x009e constexpr TagDetails nikonRetouchHistory[] = { {0, N_("None")}, {3, N_("B & W")}, {4, N_("Sepia")}, {5, N_("Trim")}, {6, N_("Small picture")}, {7, N_("D-Lighting")}, {8, N_("Red eye")}, {9, N_("Cyanotype")}, - {10, N_("Sky light")}, {11, N_("Warm tone")}, {12, N_("Color custom")}, {13, N_("Image overlay")}}; + {10, N_("Sky light")}, {11, N_("Warm tone")}, {12, N_("Color custom")}, {13, N_("Image overlay")}, +}; //! HighISONoiseReduction, tag 0x00b1 constexpr TagDetails nikonHighISONoiseReduction[] = { - {0, N_("Off")}, {1, N_("Minimal")}, {2, N_("Low")}, {4, N_("Normal")}, {6, N_("High")}}; + {0, N_("Off")}, {1, N_("Minimal")}, {2, N_("Low")}, {4, N_("Normal")}, {6, N_("High")}, +}; // Nikon1 MakerNote Tag Info constexpr TagInfo Nikon1MakerNote::tagInfo_[] = { @@ -292,23 +312,35 @@ std::ostream& Nikon1MakerNote::print0x0088(std::ostream& os, const Value& value, } //! Quality, tag 0x0003 -constexpr TagDetails nikon2Quality[] = {{1, N_("VGA Basic")}, {2, N_("VGA Normal")}, {3, N_("VGA Fine")}, - {4, N_("SXGA Basic")}, {5, N_("SXGA Normal")}, {6, N_("SXGA Fine")}}; +constexpr TagDetails nikon2Quality[] = { + {1, N_("VGA Basic")}, {2, N_("VGA Normal")}, {3, N_("VGA Fine")}, + {4, N_("SXGA Basic")}, {5, N_("SXGA Normal")}, {6, N_("SXGA Fine")}, +}; //! ColorMode, tag 0x0004 -constexpr TagDetails nikon2ColorMode[] = {{1, N_("Color")}, {2, N_("Monochrome")}}; +constexpr TagDetails nikon2ColorMode[] = { + {1, N_("Color")}, + {2, N_("Monochrome")}, +}; //! ImageAdjustment, tag 0x0005 constexpr TagDetails nikon2ImageAdjustment[] = { - {0, N_("Normal")}, {1, N_("Bright+")}, {2, N_("Bright-")}, {3, N_("Contrast+")}, {4, N_("Contrast-")}}; + {0, N_("Normal")}, {1, N_("Bright+")}, {2, N_("Bright-")}, {3, N_("Contrast+")}, {4, N_("Contrast-")}, +}; //! ISOSpeed, tag 0x0006 -constexpr TagDetails nikon2IsoSpeed[] = {{0, "80"}, {2, "160"}, {4, "320"}, {5, "100"}}; +constexpr TagDetails nikon2IsoSpeed[] = { + {0, "80"}, + {2, "160"}, + {4, "320"}, + {5, "100"}, +}; //! WhiteBalance, tag 0x0007 -constexpr TagDetails nikon2WhiteBalance[] = {{0, N_("Auto")}, {1, N_("Preset")}, {2, N_("Daylight")}, - {3, N_("Incandescent")}, {4, N_("Fluorescent")}, {5, N_("Cloudy")}, - {6, N_("Speedlight")}}; +constexpr TagDetails nikon2WhiteBalance[] = { + {0, N_("Auto")}, {1, N_("Preset")}, {2, N_("Daylight")}, {3, N_("Incandescent")}, + {4, N_("Fluorescent")}, {5, N_("Cloudy")}, {6, N_("Speedlight")}, +}; // Nikon2 MakerNote Tag Info constexpr TagInfo Nikon2MakerNote::tagInfo_[] = { @@ -551,13 +583,23 @@ const TagInfo* Nikon3MakerNote::tagList() { } //! YesNo, used for DaylightSavings, tag index 2, et al. -constexpr TagDetails nikonYesNo[] = {{0, N_("No")}, {1, N_("Yes")}}; +constexpr TagDetails nikonYesNo[] = { + {0, N_("No")}, + {1, N_("Yes")}, +}; //! DateDisplayFormat, tag index 3 -constexpr TagDetails nikonDateDisplayFormat[] = {{0, N_("Y/M/D")}, {1, N_("M/D/Y")}, {2, N_("D/M/Y")}}; +constexpr TagDetails nikonDateDisplayFormat[] = { + {0, N_("Y/M/D")}, + {1, N_("M/D/Y")}, + {2, N_("D/M/Y")}, +}; //! OnOff -constexpr TagDetails nikonOnOff[] = {{1, N_("On")}, {2, N_("Off")}}; +constexpr TagDetails nikonOnOff[] = { + {1, N_("On")}, + {2, N_("Off")}, +}; // Nikon3 Vibration Reduction Tag Info constexpr TagInfo Nikon3MakerNote::tagInfoVr_[] = { @@ -575,17 +617,24 @@ const TagInfo* Nikon3MakerNote::tagListVr() { } //! Adjust -constexpr TagDetails nikonAdjust[] = {{0, N_("Default Settings")}, {1, N_("Quick Adjust")}, {2, N_("Full Control")}}; +constexpr TagDetails nikonAdjust[] = { + {0, N_("Default Settings")}, + {1, N_("Quick Adjust")}, + {2, N_("Full Control")}, +}; //! FilterEffect -constexpr TagDetails nikonFilterEffect[] = {{0x80, N_("Off")}, {0x81, N_("Yellow")}, {0x82, N_("Orange")}, - {0x83, N_("Red")}, {0x84, N_("Green")}, {0xff, N_("n/a")}}; +constexpr TagDetails nikonFilterEffect[] = { + {0x80, N_("Off")}, {0x81, N_("Yellow")}, {0x82, N_("Orange")}, + {0x83, N_("Red")}, {0x84, N_("Green")}, {0xff, N_("n/a")}, +}; //! ToningEffect -constexpr TagDetails nikonToningEffect[] = {{0x80, N_("B&W")}, {0x81, N_("Sepia")}, {0x82, N_("Cyanotype")}, - {0x83, N_("Red")}, {0x84, N_("Yellow")}, {0x85, N_("Green")}, - {0x86, N_("Blue-green")}, {0x87, N_("Blue")}, {0x88, N_("Purple-blue")}, - {0x89, N_("Red-purple")}, {0xff, N_("n/a")}}; +constexpr TagDetails nikonToningEffect[] = { + {0x80, N_("B&W")}, {0x81, N_("Sepia")}, {0x82, N_("Cyanotype")}, {0x83, N_("Red")}, + {0x84, N_("Yellow")}, {0x85, N_("Green")}, {0x86, N_("Blue-green")}, {0x87, N_("Blue")}, + {0x88, N_("Purple-blue")}, {0x89, N_("Red-purple")}, {0xff, N_("n/a")}, +}; // Nikon3 Picture Control Tag Info constexpr TagInfo Nikon3MakerNote::tagInfoPc_[] = { @@ -623,7 +672,11 @@ const TagInfo* Nikon3MakerNote::tagListPc() { } //! OnOff -constexpr TagDetails aftOnOff[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("On")}}; +constexpr TagDetails aftOnOff[] = { + {0, N_("Off")}, + {1, N_("On")}, + {2, N_("On")}, +}; // Nikon3 AF Fine Tune constexpr TagInfo Nikon3MakerNote::tagInfoAFT_[] = { @@ -665,7 +718,8 @@ constexpr TagDetails nikonIsoExpansion[] = { {0x105, N_("Hi 1.3")}, {0x106, N_("Hi 1.5")}, {0x107, N_("Hi 1.7")}, {0x108, N_("Hi 2.0")}, {0x109, N_("Hi 2.3")}, {0x10a, N_("Hi 2.5")}, {0x10b, N_("Hi 2.7")}, {0x10c, N_("Hi 3.0")}, {0x10d, N_("Hi 3.3")}, {0x10e, N_("Hi 3.5")}, {0x10f, N_("Hi 3.7")}, {0x110, N_("Hi 4.0")}, {0x111, N_("Hi 4.3")}, {0x112, N_("Hi 4.5")}, {0x113, N_("Hi 4.7")}, - {0x114, N_("Hi 5.0")}, {0x201, N_("Lo 0.3")}, {0x202, N_("Lo 0.5")}, {0x203, N_("Lo 0.7")}, {0x204, N_("Lo 1.0")}}; + {0x114, N_("Hi 5.0")}, {0x201, N_("Lo 0.3")}, {0x202, N_("Lo 0.5")}, {0x203, N_("Lo 0.7")}, {0x204, N_("Lo 1.0")}, +}; // Nikon3 ISO Info Tag Info constexpr TagInfo Nikon3MakerNote::tagInfoIi_[] = { @@ -687,19 +741,22 @@ const TagInfo* Nikon3MakerNote::tagListIi() { //! AfAreaMode constexpr TagDetails nikonAfAreaMode[] = { {0, N_("Single Area")}, {1, N_("Dynamic Area")}, {2, N_("Dynamic Area, Closest Subject")}, - {3, N_("Group Dynamic")}, {4, N_("Single Area (wide)")}, {5, N_("Dynamic Area (wide)")}}; + {3, N_("Group Dynamic")}, {4, N_("Single Area (wide)")}, {5, N_("Dynamic Area (wide)")}, +}; //! AfPoint -constexpr TagDetails nikonAfPoint[] = {{0, N_("Center")}, {1, N_("Top")}, {2, N_("Bottom")}, - {3, N_("Mid-left")}, {4, N_("Mid-right")}, {5, N_("Upper-left")}, - {6, N_("Upper-right")}, {7, N_("Lower-left")}, {8, N_("Lower-right")}, - {9, N_("Far Left")}, {10, N_("Far Right")}}; +constexpr TagDetails nikonAfPoint[] = { + {0, N_("Center")}, {1, N_("Top")}, {2, N_("Bottom")}, {3, N_("Mid-left")}, + {4, N_("Mid-right")}, {5, N_("Upper-left")}, {6, N_("Upper-right")}, {7, N_("Lower-left")}, + {8, N_("Lower-right")}, {9, N_("Far Left")}, {10, N_("Far Right")}, +}; //! AfPointsInFocus constexpr TagDetailsBitmask nikonAfPointsInFocus[] = { {0x0001, N_("Center")}, {0x0002, N_("Top")}, {0x0004, N_("Bottom")}, {0x0008, N_("Mid-left")}, {0x0010, N_("Mid-right")}, {0x0020, N_("Upper-left")}, {0x0040, N_("Upper-right")}, {0x0080, N_("Lower-left")}, - {0x0100, N_("Lower-right")}, {0x0200, N_("Far Left")}, {0x0400, N_("Far Right")}}; + {0x0100, N_("Lower-right")}, {0x0200, N_("Far Left")}, {0x0400, N_("Far Right")}, +}; // Nikon3 Auto Focus Tag Info constexpr TagInfo Nikon3MakerNote::tagInfoAf_[] = { @@ -817,7 +874,10 @@ const TagInfo* Nikon3MakerNote::tagListFi() { //! MultiExposureMode constexpr TagDetails nikonMultiExposureMode[] = { - {0, N_("Off")}, {1, N_("Multiple Exposure")}, {2, N_("Image Overlay")}}; + {0, N_("Off")}, + {1, N_("Multiple Exposure")}, + {2, N_("Image Overlay")}, +}; // Nikon3 Multi Exposure Tag Info constexpr TagInfo Nikon3MakerNote::tagInfoMe_[] = { @@ -839,28 +899,34 @@ const TagInfo* Nikon3MakerNote::tagListMe() { } //! FlashSource -constexpr TagDetails nikonFlashSource[] = {{0, N_("None")}, {1, N_("External")}, {2, N_("Internal")}}; +constexpr TagDetails nikonFlashSource[] = { + {0, N_("None")}, + {1, N_("External")}, + {2, N_("Internal")}, +}; //! FlashFirmware -constexpr TagDetails nikonFlashFirmware[] = {{0x0000, N_("n/a")}, - {0x0101, N_("1.01 (SB-800 or Metz 58 AF-1)")}, - {0x0103, "1.03 (SB-800)"}, - {0x0201, "2.01 (SB-800)"}, - {0x0204, "2.04 (SB-600)"}, - {0x0205, "2.05 (SB-600)"}, - {0x0301, "3.01 (SU-800 Remote Commander)"}, - {0x0401, "4.01 (SB-400)"}, - {0x0402, "4.02 (SB-400)"}, - {0x0404, "4.04 (SB-400)"}, - {0x0501, "5.01 (SB-900)"}, - {0x0502, "5.02 (SB-900)"}, - {0x0601, "6.01 (SB-700)"}, - {0x0701, "7.01 (SB-910)"}, - {0x0800, "8.01 (SB-N5)"}, - {0x0a00, "10.00 (SB-N7)"}, - {0x0b00, "11.00 (SB-300)"}, - {0x0d00, "13.00 (SB-500)"}, - {0x0e00, "14.00 (SB-5000)"}}; +constexpr TagDetails nikonFlashFirmware[] = { + {0x0000, N_("n/a")}, + {0x0101, N_("1.01 (SB-800 or Metz 58 AF-1)")}, + {0x0103, "1.03 (SB-800)"}, + {0x0201, "2.01 (SB-800)"}, + {0x0204, "2.04 (SB-600)"}, + {0x0205, "2.05 (SB-600)"}, + {0x0301, "3.01 (SU-800 Remote Commander)"}, + {0x0401, "4.01 (SB-400)"}, + {0x0402, "4.02 (SB-400)"}, + {0x0404, "4.04 (SB-400)"}, + {0x0501, "5.01 (SB-900)"}, + {0x0502, "5.02 (SB-900)"}, + {0x0601, "6.01 (SB-700)"}, + {0x0701, "7.01 (SB-910)"}, + {0x0800, "8.01 (SB-N5)"}, + {0x0a00, "10.00 (SB-N7)"}, + {0x0b00, "11.00 (SB-300)"}, + {0x0d00, "13.00 (SB-500)"}, + {0x0e00, "14.00 (SB-5000)"}, +}; //! FlashGNDistance constexpr TagDetails nikonFlashGNDistance[] = { @@ -877,7 +943,8 @@ constexpr TagDetails nikonFlashGNDistance[] = { {148, "10.0 ft"}, {149, "12.0 ft"}, {150, "13.0 ft"}, {151, "15.0 ft"}, {152, "17.0 ft"}, {153, "19.0 ft"}, {154, "21.0 ft"}, {155, "23.0 ft"}, {156, "26.0 ft"}, {157, "29.0 ft"}, {158, "33.0 ft"}, {159, "37.0 ft"}, {160, "42.0 ft"}, {161, "47.0 ft"}, {162, "52.0 ft"}, {163, "59.0 ft"}, {164, "66.0 ft"}, {165, "74.0 ft"}, - {166, "83.0 ft"}, {167, "94.0 ft"}, {255, N_("n/a")}}; + {166, "83.0 ft"}, {167, "94.0 ft"}, {255, N_("n/a")}, +}; //! FlashControlMode constexpr TagDetails nikonFlashControlMode[] = { @@ -896,36 +963,52 @@ static constexpr bool flashModeUsesManualScale(const int64_t mode) { //! ExternalFlashFlags constexpr TagDetails nikonExternalFlashFlags[] = { - {0, N_("Fired")}, {2, N_("Bounce Flash")}, {4, N_("Wide Flash Adapter")}}; + {0, N_("Fired")}, + {2, N_("Bounce Flash")}, + {4, N_("Wide Flash Adapter")}, +}; //! FlashColorFilter -constexpr TagDetails nikonFlashColorFilter[] = {{0, N_("None")}, - {1, N_("FL-GL1 (for fluorescent light)")}, - {2, N_("FL-GL2 (for fluorescent light)")}, - {9, N_("TN-A1 (for incandescent light)")}, - {10, N_("TN-A2 (for incandescent light)")}, - {65, N_("Red")}, - {66, N_("Blue")}, - {67, N_("Yellow")}, - {68, N_("Amber")}, - {79, N_("Other")}}; +constexpr TagDetails nikonFlashColorFilter[] = { + {0, N_("None")}, + {1, N_("FL-GL1 (for fluorescent light)")}, + {2, N_("FL-GL2 (for fluorescent light)")}, + {9, N_("TN-A1 (for incandescent light)")}, + {10, N_("TN-A2 (for incandescent light)")}, + {65, N_("Red")}, + {66, N_("Blue")}, + {67, N_("Yellow")}, + {68, N_("Amber")}, + {79, N_("Other")}, +}; //! FlashWirelessOptions constexpr TagDetails nikonFlashAWLMode[] = { - {0, N_("AWL Off")}, {1, N_("Optical AWL")}, {2, N_("Optical/Radio AWL")}, {3, N_("Radio AWL")}}; + {0, N_("AWL Off")}, + {1, N_("Optical AWL")}, + {2, N_("Optical/Radio AWL")}, + {3, N_("Radio AWL")}, +}; //! FlashExposureComp -constexpr TagDetails nikonFlashExposureComp[] = {{0, N_("Exposure Comp.: Entire frame")}, - {4, N_("Exposure Comp.: Background Only")}}; +constexpr TagDetails nikonFlashExposureComp[] = { + {0, N_("Exposure Comp.: Entire frame")}, + {4, N_("Exposure Comp.: Background Only")}, +}; //! FlashIlluminationPattern -constexpr TagDetails nikonFlashIlluminationPat[] = {{0, N_("Illumination Pat.: Standard")}, - {1, N_("Illumination Pat.: Center-weighted")}, - {2, N_("Illumination Pat.: Even")}}; +constexpr TagDetails nikonFlashIlluminationPat[] = { + {0, N_("Illumination Pat.: Standard")}, + {1, N_("Illumination Pat.: Center-weighted")}, + {2, N_("Illumination Pat.: Even")}, +}; //! FlashAdaptors constexpr TagDetailsBitmask nikonFlashAdaptors[] = { - {0x04, N_("Bounce Flash adaptor")}, {0x10, N_("Wide Flash adaptor")}, {0x20, N_("Nikon Diffusion Dome")}}; + {0x04, N_("Bounce Flash adaptor")}, + {0x10, N_("Wide Flash adaptor")}, + {0x20, N_("Nikon Diffusion Dome")}, +}; static void printFlashCompensationValue(std::ostream& os, const unsigned char value, const bool manualScale) { std::ios::fmtflags f(os.flags()); @@ -1309,7 +1392,8 @@ constexpr TagDetails nikonAfFineTuneAdj1[] = { {0x30c2, "-19"}, {0x403c, "+5"}, {0x403d, "+10"}, {0x403e, "+20"}, {0x40c2, "-20"}, {0x40c3, "-10"}, {0x40c4, "-5"}, {0x603d, "+11"}, {0x60c3, "-11"}, {0x803b, "+3"}, {0x803c, "+6"}, {0x803d, "+12"}, {0x80c3, "-12"}, {0x80c4, "-6"}, {0x80c5, "-3"}, {0xa03d, "+13"}, {0xa0c3, "-13"}, {0xc03c, "+7"}, - {0xc03d, "+14"}, {0xc0c3, "-14"}, {0xc0c4, "-7"}, {0xe03d, "+15"}, {0xe0c3, "-15"}}; + {0xc03d, "+14"}, {0xc0c3, "-14"}, {0xc0c4, "-7"}, {0xe03d, "+15"}, {0xe0c3, "-15"}, +}; // Nikon3 Shot Info D300 (a) Tag Info constexpr TagInfo Nikon3MakerNote::tagInfoSi3_[] = { @@ -1337,7 +1421,8 @@ constexpr TagDetails nikonAfFineTuneAdj2[] = { {0x40c6, "-1"}, {0x543e, "+17"}, {0x54c2, "-17"}, {0x683d, "+9"}, {0x683e, "+18"}, {0x68c2, "-18"}, {0x68c3, "-9"}, {0x7c3e, "+19"}, {0x7cc2, "-19"}, {0x903c, "+5"}, {0x903d, "+10"}, {0x903e, "+20"}, {0x90c2, "-20"}, {0x90c3, "-10"}, {0x90c4, "-5"}, {0xb83d, "+11"}, {0xb8c3, "-11"}, {0xe03b, "+3"}, - {0xe03c, "+6"}, {0xe03d, "+12"}, {0xe0c3, "-12"}, {0xe0c4, "-6"}, {0xe0c5, "-3"}}; + {0xe03c, "+6"}, {0xe03d, "+12"}, {0xe0c3, "-12"}, {0xe0c4, "-6"}, {0xe0c5, "-3"}, +}; // Nikon3 Shot Info D300 (b) Tag Info constexpr TagInfo Nikon3MakerNote::tagInfoSi4_[] = { @@ -1358,10 +1443,19 @@ const TagInfo* Nikon3MakerNote::tagListSi4() { } //! VibrationReduction -constexpr TagDetails nikonOffOn2[] = {{0, N_("Off")}, {1, N_("On (1)")}, {2, N_("On (2)")}, {3, N_("On (3)")}}; +constexpr TagDetails nikonOffOn2[] = { + {0, N_("Off")}, + {1, N_("On (1)")}, + {2, N_("On (2)")}, + {3, N_("On (3)")}, +}; //! VibrationReduction2 -constexpr TagDetails nikonOffOn3[] = {{0x0, N_("n/a")}, {0xc, N_("Off")}, {0xf, N_("On")}}; +constexpr TagDetails nikonOffOn3[] = { + {0x0, N_("n/a")}, + {0xc, N_("Off")}, + {0xf, N_("On")}, +}; // Nikon3 Shot Info Tag Info constexpr TagInfo Nikon3MakerNote::tagInfoSi5_[] = { diff --git a/src/olympusmn_int.cpp b/src/olympusmn_int.cpp index ea0f600481..66c8d4e88e 100644 --- a/src/olympusmn_int.cpp +++ b/src/olympusmn_int.cpp @@ -17,88 +17,127 @@ // class member definitions namespace Exiv2::Internal { //! OffOn, multiple tags -constexpr TagDetails olympusOffOn[] = {{0, N_("Off")}, {1, N_("On")}}; +constexpr TagDetails olympusOffOn[] = { + {0, N_("Off")}, + {1, N_("On")}, +}; //! NoYes, multiple tags -constexpr TagDetails olympusNoYes[] = {{0, N_("No")}, {1, N_("Yes")}}; +constexpr TagDetails olympusNoYes[] = { + {0, N_("No")}, + {1, N_("Yes")}, +}; //! Quality, tag 0x0201 -constexpr TagDetails olympusQuality[] = {{1, N_("Standard Quality (SQ)")}, - {2, N_("High Quality (HQ)")}, - {3, N_("Super High Quality (SHQ)")}, - {6, N_("Raw")}}; +constexpr TagDetails olympusQuality[] = { + {1, N_("Standard Quality (SQ)")}, + {2, N_("High Quality (HQ)")}, + {3, N_("Super High Quality (SHQ)")}, + {6, N_("Raw")}, +}; //! Macro, tag 0x0202 -constexpr TagDetails olympusMacro[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Super macro")}}; +constexpr TagDetails olympusMacro[] = { + {0, N_("Off")}, + {1, N_("On")}, + {2, N_("Super macro")}, +}; //! OneTouchWB, tag 0x0302 -constexpr TagDetails olympusOneTouchWb[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("On (preset)")}}; +constexpr TagDetails olympusOneTouchWb[] = { + {0, N_("Off")}, + {1, N_("On")}, + {2, N_("On (preset)")}, +}; //! SceneMode, tag 0x403 and CameraSettings tag 0x509 -constexpr TagDetails olympusSceneMode[] = {{0, N_("Standard")}, - {6, N_("Auto")}, - {7, N_("Sport")}, - {8, N_("Portrait")}, - {9, N_("Landscape+Portrait")}, - {10, N_("Landscape")}, - {11, N_("Night Scene")}, - {12, N_("Self Portrait")}, - {13, N_("Panorama")}, - {14, N_("2 in 1")}, - {15, N_("Movie")}, - {16, N_("Landscape+Portrait")}, - {17, N_("Night+Portrait")}, - {18, N_("Indoor")}, - {19, N_("Fireworks")}, - {20, N_("Sunset")}, - {22, N_("Macro")}, - {23, N_("Super Macro")}, - {24, N_("Food")}, - {25, N_("Documents")}, - {26, N_("Museum")}, - {27, N_("Shoot & Select")}, - {28, N_("Beach & Snow")}, - {29, N_("Self Portrait+Timer")}, - {30, N_("Candle")}, - {31, N_("Available Light")}, - {32, N_("Behind Glass")}, - {33, N_("My Mode")}, - {34, N_("Pet")}, - {35, N_("Underwater Wide1")}, - {36, N_("Underwater Macro")}, - {37, N_("Shoot & Select1")}, - {38, N_("Shoot & Select2")}, - {39, N_("High Key")}, - {40, N_("Digital Image Stabilization")}, - {41, N_("Auction")}, - {42, N_("Beach")}, - {43, N_("Snow")}, - {44, N_("Underwater Wide2")}, - {45, N_("Low Key")}, - {46, N_("Children")}, - {47, N_("Vivid")}, - {48, N_("Nature Macro")}, - {49, N_("Underwater Snapshot")}, - {50, N_("Shooting Guide")}}; +constexpr TagDetails olympusSceneMode[] = { + {0, N_("Standard")}, + {6, N_("Auto")}, + {7, N_("Sport")}, + {8, N_("Portrait")}, + {9, N_("Landscape+Portrait")}, + {10, N_("Landscape")}, + {11, N_("Night Scene")}, + {12, N_("Self Portrait")}, + {13, N_("Panorama")}, + {14, N_("2 in 1")}, + {15, N_("Movie")}, + {16, N_("Landscape+Portrait")}, + {17, N_("Night+Portrait")}, + {18, N_("Indoor")}, + {19, N_("Fireworks")}, + {20, N_("Sunset")}, + {22, N_("Macro")}, + {23, N_("Super Macro")}, + {24, N_("Food")}, + {25, N_("Documents")}, + {26, N_("Museum")}, + {27, N_("Shoot & Select")}, + {28, N_("Beach & Snow")}, + {29, N_("Self Portrait+Timer")}, + {30, N_("Candle")}, + {31, N_("Available Light")}, + {32, N_("Behind Glass")}, + {33, N_("My Mode")}, + {34, N_("Pet")}, + {35, N_("Underwater Wide1")}, + {36, N_("Underwater Macro")}, + {37, N_("Shoot & Select1")}, + {38, N_("Shoot & Select2")}, + {39, N_("High Key")}, + {40, N_("Digital Image Stabilization")}, + {41, N_("Auction")}, + {42, N_("Beach")}, + {43, N_("Snow")}, + {44, N_("Underwater Wide2")}, + {45, N_("Low Key")}, + {46, N_("Children")}, + {47, N_("Vivid")}, + {48, N_("Nature Macro")}, + {49, N_("Underwater Snapshot")}, + {50, N_("Shooting Guide")}, +}; //! FlashDevice, tag 0x1005 constexpr TagDetails olympusFlashDevice[] = { - {0, N_("None")}, {1, N_("Internal")}, {4, N_("External")}, {5, N_("Internal + External")}}; + {0, N_("None")}, + {1, N_("Internal")}, + {4, N_("External")}, + {5, N_("Internal + External")}, +}; //! FocusRange, tag 0x100a -constexpr TagDetails olympusFocusRange[] = {{0, N_("Normal")}, {1, N_("Macro")}}; +constexpr TagDetails olympusFocusRange[] = { + {0, N_("Normal")}, + {1, N_("Macro")}, +}; //! FocusMode, tag 0x100b -constexpr TagDetails olympusFocusMode[] = {{0, N_("Auto")}, {1, N_("Manual")}}; +constexpr TagDetails olympusFocusMode[] = { + {0, N_("Auto")}, + {1, N_("Manual")}, +}; //! Sharpness, tag 0x100f -constexpr TagDetails olympusSharpness[] = {{0, N_("Normal")}, {1, N_("Hard")}, {2, N_("Soft")}}; +constexpr TagDetails olympusSharpness[] = { + {0, N_("Normal")}, + {1, N_("Hard")}, + {2, N_("Soft")}, +}; //! Contrast, tag 0x1029 -constexpr TagDetails olympusContrast[] = {{0, N_("High")}, {1, N_("Normal")}, {2, N_("Low")}}; +constexpr TagDetails olympusContrast[] = { + {0, N_("High")}, + {1, N_("Normal")}, + {2, N_("Low")}, +}; //! CCDScanMode, tag 0x1039 -constexpr TagDetails olympusCCDScanMode[] = {{0, N_("Interlaced")}, {1, N_("Progressive")}}; +constexpr TagDetails olympusCCDScanMode[] = { + {0, N_("Interlaced")}, + {1, N_("Progressive")}, +}; // Olympus Tag Info constexpr TagInfo OlympusMakerNote::tagInfo_[] = { @@ -287,124 +326,156 @@ const TagInfo* OlympusMakerNote::tagList() { // Olympus CameraSettings Tags //! ExposureMode, tag 0x0200 -constexpr TagDetails olympusExposureMode[] = {{1, N_("Manual")}, - {2, N_("Program")}, - {3, N_("Aperture-priority AE")}, - {4, N_("Shutter speed priority AE")}, - {5, N_("Program-shift")}}; +constexpr TagDetails olympusExposureMode[] = { + {1, N_("Manual")}, {2, N_("Program")}, {3, N_("Aperture-priority AE")}, {4, N_("Shutter speed priority AE")}, + {5, N_("Program-shift")}, +}; //! MeteringMode, tag 0x0202 -constexpr TagDetails olympusMeteringMode[] = {{2, N_("Center-weighted average")}, - {3, N_("Spot")}, - {5, N_("ESP")}, - {261, N_("Pattern+AF")}, - {515, N_("Spot+Highlight control")}, - {1027, N_("Spot+Shadow control")}}; +constexpr TagDetails olympusMeteringMode[] = { + {2, N_("Center-weighted average")}, + {3, N_("Spot")}, + {5, N_("ESP")}, + {261, N_("Pattern+AF")}, + {515, N_("Spot+Highlight control")}, + {1027, N_("Spot+Shadow control")}, +}; //! MacroMode, tag 0x0300 -constexpr TagDetails olympusMacroMode[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Super Macro")}}; +constexpr TagDetails olympusMacroMode[] = { + {0, N_("Off")}, + {1, N_("On")}, + {2, N_("Super Macro")}, +}; //! FocusMode, tag 0x0301 -[[maybe_unused]] constexpr TagDetails olympusCsFocusMode[] = {{0, N_("Single AF")}, - {1, N_("Sequential shooting AF")}, - {2, N_("Continuous AF")}, - {3, N_("Multi AF")}, - {10, N_("MF")}}; +[[maybe_unused]] constexpr TagDetails olympusCsFocusMode[] = { + {0, N_("Single AF")}, {1, N_("Sequential shooting AF")}, {2, N_("Continuous AF")}, {3, N_("Multi AF")}, + {10, N_("MF")}, +}; //! FocusProcess, tag 0x0302 -constexpr TagDetails olympusFocusProcess[] = {{0, N_("AF Not Used")}, {1, N_("AF Used")}}; +constexpr TagDetails olympusFocusProcess[] = { + {0, N_("AF Not Used")}, + {1, N_("AF Used")}, +}; //! AFSearch, tag 0x0303 -constexpr TagDetails olympusAFSearch[] = {{0, N_("Not Ready")}, {1, N_("Ready")}}; +constexpr TagDetails olympusAFSearch[] = { + {0, N_("Not Ready")}, + {1, N_("Ready")}, +}; //! FlashMode, tag 0x0400 constexpr TagDetailsBitmask olympusFlashMode[] = { - {0x0000, N_("Off")}, {0x0001, N_("On")}, {0x0002, N_("Fill-in")}, {0x0004, N_("Red-eye")}, - {0x0008, N_("Slow-sync")}, {0x0010, N_("Forced On")}, {0x0020, N_("2nd Curtain")}}; + {0x0000, N_("Off")}, {0x0001, N_("On")}, {0x0002, N_("Fill-in")}, {0x0004, N_("Red-eye")}, + {0x0008, N_("Slow-sync")}, {0x0010, N_("Forced On")}, {0x0020, N_("2nd Curtain")}, +}; //! FlashRemoteControl, tag 0x0403 -constexpr TagDetails olympusFlashRemoteControl[] = {{0x0, N_("Off")}, - {0x1, N_("Channel 1, Low")}, - {0x2, N_("Channel 2, Low")}, - {0x3, N_("Channel 3, Low")}, - {0x4, N_("Channel 4, Low")}, - {0x9, N_("Channel 1, Mid")}, - {0xa, N_("Channel 2, Mid")}, - {0xb, N_("Channel 3, Mid")}, - {0xc, N_("Channel 4, Mid")}, - {0x11, N_("Channel 1, High")}, - {0x12, N_("Channel 2, High")}, - {0x13, N_("Channel 3, High")}, - {0x14, N_("Channel 4, High")}}; +constexpr TagDetails olympusFlashRemoteControl[] = { + {0x0, N_("Off")}, + {0x1, N_("Channel 1, Low")}, + {0x2, N_("Channel 2, Low")}, + {0x3, N_("Channel 3, Low")}, + {0x4, N_("Channel 4, Low")}, + {0x9, N_("Channel 1, Mid")}, + {0xa, N_("Channel 2, Mid")}, + {0xb, N_("Channel 3, Mid")}, + {0xc, N_("Channel 4, Mid")}, + {0x11, N_("Channel 1, High")}, + {0x12, N_("Channel 2, High")}, + {0x13, N_("Channel 3, High")}, + {0x14, N_("Channel 4, High")}, +}; //! FlashControlMode, tag 0x0404 -constexpr TagDetails olympusFlashControlMode[] = {{0, N_("Off")}, {3, N_("TTL")}, {4, N_("Auto")}, {5, N_("Manual")}}; +constexpr TagDetails olympusFlashControlMode[] = { + {0, N_("Off")}, + {3, N_("TTL")}, + {4, N_("Auto")}, + {5, N_("Manual")}, +}; //! WhiteBalance, tag 0x0500 -constexpr TagDetails olympusWhiteBalance[] = {{0, N_("Auto")}, - {1, N_("Auto (Keep Warm Color Off)")}, - {16, N_("7500K (Fine Weather with Shade)")}, - {17, N_("6000K (Cloudy)")}, - {18, N_("5300K (Fine Weather)")}, - {20, N_("3000K (Tungsten light)")}, - {21, N_("3600K (Tungsten light-like)")}, - {22, N_("Auto Setup")}, - {23, N_("5500K (Flash)")}, - {33, N_("6600K (Daylight fluorescent)")}, - {34, N_("4500K (Neutral white fluorescent)")}, - {35, N_("4000K (Cool white fluorescent)")}, - {36, N_("White Fluorescent")}, - {48, N_("3600K (Tungsten light-like)")}, - {67, N_("Underwater")}, - {256, N_("One Touch WB 1")}, - {257, N_("One Touch WB 2")}, - {258, N_("One Touch WB 3")}, - {259, N_("One Touch WB 4")}, - {512, N_("Custom WB 1")}, - {513, N_("Custom WB 2")}, - {514, N_("Custom WB 3")}, - {515, N_("Custom WB 4")}}; +constexpr TagDetails olympusWhiteBalance[] = { + {0, N_("Auto")}, + {1, N_("Auto (Keep Warm Color Off)")}, + {16, N_("7500K (Fine Weather with Shade)")}, + {17, N_("6000K (Cloudy)")}, + {18, N_("5300K (Fine Weather)")}, + {20, N_("3000K (Tungsten light)")}, + {21, N_("3600K (Tungsten light-like)")}, + {22, N_("Auto Setup")}, + {23, N_("5500K (Flash)")}, + {33, N_("6600K (Daylight fluorescent)")}, + {34, N_("4500K (Neutral white fluorescent)")}, + {35, N_("4000K (Cool white fluorescent)")}, + {36, N_("White Fluorescent")}, + {48, N_("3600K (Tungsten light-like)")}, + {67, N_("Underwater")}, + {256, N_("One Touch WB 1")}, + {257, N_("One Touch WB 2")}, + {258, N_("One Touch WB 3")}, + {259, N_("One Touch WB 4")}, + {512, N_("Custom WB 1")}, + {513, N_("Custom WB 2")}, + {514, N_("Custom WB 3")}, + {515, N_("Custom WB 4")}, +}; //! ModifiedSaturation, tag 0x0504 -constexpr TagDetails olympusModifiedSaturation[] = {{0, N_("Off")}, - {1, N_("CM1 (Red Enhance)")}, - {2, N_("CM2 (Green Enhance)")}, - {3, N_("CM3 (Blue Enhance)")}, - {4, N_("CM4 (Skin Tones)")}}; +constexpr TagDetails olympusModifiedSaturation[] = { + {0, N_("Off")}, + {1, N_("CM1 (Red Enhance)")}, + {2, N_("CM2 (Green Enhance)")}, + {3, N_("CM3 (Blue Enhance)")}, + {4, N_("CM4 (Skin Tones)")}, +}; //! ColorSpace, tag 0x0507 -constexpr TagDetails olympusColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}, {2, N_("Pro Photo RGB")}}; +constexpr TagDetails olympusColorSpace[] = { + {0, N_("sRGB")}, + {1, N_("Adobe RGB")}, + {2, N_("Pro Photo RGB")}, +}; //! NoiseReduction, tag 0x050a -constexpr TagDetailsBitmask olympusNoiseReduction[] = {{0x0001, N_("Noise Reduction")}, - {0x0002, N_("Noise Filter")}, - {0x0004, N_("Noise Filter (ISO Boost)")}, - {0x0008, N_("Auto")}}; +constexpr TagDetailsBitmask olympusNoiseReduction[] = { + {0x0001, N_("Noise Reduction")}, + {0x0002, N_("Noise Filter")}, + {0x0004, N_("Noise Filter (ISO Boost)")}, + {0x0008, N_("Auto")}, +}; //! PictureMode, tag 0x0520 -constexpr TagDetails olympusPictureMode[] = {{1, N_("Vivid")}, - {2, N_("Natural")}, - {3, N_("Muted")}, - {4, N_("Portrait")}, - {5, N_("i-Enhance")}, - {6, N_("e-Portrait")}, - {7, N_("Color Creator")}, - {9, N_("Color Profile 1")}, - {10, N_("Color Profile 2")}, - {11, N_("Color Profile 3")}, - {12, N_("Monochrome Profile 1")}, - {13, N_("Monochrome Profile 2")}, - {14, N_("Monochrome Profile 3")}, - {256, N_("Monotone")}, - {512, N_("Sepia")}}; +constexpr TagDetails olympusPictureMode[] = { + {1, N_("Vivid")}, + {2, N_("Natural")}, + {3, N_("Muted")}, + {4, N_("Portrait")}, + {5, N_("i-Enhance")}, + {6, N_("e-Portrait")}, + {7, N_("Color Creator")}, + {9, N_("Color Profile 1")}, + {10, N_("Color Profile 2")}, + {11, N_("Color Profile 3")}, + {12, N_("Monochrome Profile 1")}, + {13, N_("Monochrome Profile 2")}, + {14, N_("Monochrome Profile 3")}, + {256, N_("Monotone")}, + {512, N_("Sepia")}, +}; //! PictureModeBWFilter, tag 0x0525 -constexpr TagDetails olympusPictureModeBWFilter[] = {{0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Yellow")}, - {3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")}}; +constexpr TagDetails olympusPictureModeBWFilter[] = { + {0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Yellow")}, {3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")}, +}; //! PictureModeTone, tag 0x0526 -constexpr TagDetails olympusPictureModeTone[] = {{0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Sepia")}, - {3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")}}; +constexpr TagDetails olympusPictureModeTone[] = { + {0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Sepia")}, {3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")}, +}; constexpr TagDetails artFilters[] = { {0, N_("Off")}, @@ -448,11 +519,17 @@ constexpr TagDetails artFilters[] = { }; //! OlympusCs Quality, tag 0x0603 -constexpr TagDetails olympusCsQuality[] = {{1, N_("SQ")}, {2, N_("HQ")}, {3, N_("SHQ")}, {4, N_("RAW")}}; +constexpr TagDetails olympusCsQuality[] = { + {1, N_("SQ")}, + {2, N_("HQ")}, + {3, N_("SHQ")}, + {4, N_("RAW")}, +}; //! Olympus ImageStabilization, tag 0x0604 static constexpr TagDetails olympusImageStabilization[] = { - {0, N_("Off")}, {1, N_("S-IS 1")}, {2, N_("S-IS 2")}, {3, N_("S-IS 3")}, {4, N_("S-IS AUTO")}}; + {0, N_("Off")}, {1, N_("S-IS 1")}, {2, N_("S-IS 2")}, {3, N_("S-IS 3")}, {4, N_("S-IS AUTO")}, +}; constexpr TagInfo OlympusMakerNote::tagInfoCs_[] = { {0x0000, "CameraSettingsVersion", N_("Camera Settings Version"), N_("Camera settings version"), IfdId::olympusCsId, @@ -573,7 +650,11 @@ const TagInfo* OlympusMakerNote::tagListCs() { } //! OlympusEq FlashType, tag 0x1000 -constexpr TagDetails olympusEqFlashType[] = {{0, N_("None")}, {2, N_("Simple E-System")}, {3, N_("E-System")}}; +constexpr TagDetails olympusEqFlashType[] = { + {0, N_("None")}, + {2, N_("Simple E-System")}, + {3, N_("E-System")}, +}; //! OlympusEq FlashModel, tag 0x1001 constexpr TagDetails olympusEqFlashModel[] = { @@ -642,21 +723,34 @@ const TagInfo* OlympusMakerNote::tagListEq() { } //! OlympusRd ColorSpace, tag 0x0108 -constexpr TagDetails olympusRdColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}, {2, N_("Pro Photo RGB")}}; +constexpr TagDetails olympusRdColorSpace[] = { + {0, N_("sRGB")}, + {1, N_("Adobe RGB")}, + {2, N_("Pro Photo RGB")}, +}; //! OlympusRd Engine, tag 0x0109 constexpr TagDetails olympusRdEngine[] = { - {0, N_("High Speed")}, {1, N_("High Function")}, {2, N_("Advanced High Speed")}, {3, N_("Advanced High Function")}}; + {0, N_("High Speed")}, + {1, N_("High Function")}, + {2, N_("Advanced High Speed")}, + {3, N_("Advanced High Function")}, +}; //! OlympusRd EditStatus, tag 0x010b constexpr TagDetails olympusRdEditStatus[] = { - {0, N_("Original")}, {1, N_("Edited (Landscape)")}, {6, N_("Edited (Portrait)")}, {8, N_("Edited (Portrait)")}}; + {0, N_("Original")}, + {1, N_("Edited (Landscape)")}, + {6, N_("Edited (Portrait)")}, + {8, N_("Edited (Portrait)")}, +}; //! OlympusRd Settings, tag 0x010c -constexpr TagDetailsBitmask olympusRdSettings[] = {{0x0001, N_("WB Color Temp")}, {0x0004, N_("WB Gray Point")}, - {0x0008, N_("Saturation")}, {0x0010, N_("Contrast")}, - {0x0020, N_("Sharpness")}, {0x0040, N_("Color Space")}, - {0x0080, N_("High Function")}, {0x0100, N_("Noise Reduction")}}; +constexpr TagDetailsBitmask olympusRdSettings[] = { + {0x0001, N_("WB Color Temp")}, {0x0004, N_("WB Gray Point")}, {0x0008, N_("Saturation")}, + {0x0010, N_("Contrast")}, {0x0020, N_("Sharpness")}, {0x0040, N_("Color Space")}, + {0x0080, N_("High Function")}, {0x0100, N_("Noise Reduction")}, +}; constexpr TagInfo OlympusMakerNote::tagInfoRd_[] = { {0x0000, "RawDevVersion", N_("Raw Development Version"), N_("Raw development version"), IfdId::olympusRdId, @@ -697,25 +791,38 @@ const TagInfo* OlympusMakerNote::tagListRd() { } //! OlympusRd2 WhiteBalance, tag 0x0101 -constexpr TagDetails olympusRd2WhiteBalance[] = {{1, N_("Color Temperature")}, {2, N_("Gray Point")}}; +constexpr TagDetails olympusRd2WhiteBalance[] = { + {1, N_("Color Temperature")}, + {2, N_("Gray Point")}, +}; //! OlympusRd2 ColorSpace, tag 0x0109 -constexpr TagDetails olympusRd2ColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}, {2, N_("Pro Photo RGB")}}; +constexpr TagDetails olympusRd2ColorSpace[] = { + {0, N_("sRGB")}, + {1, N_("Adobe RGB")}, + {2, N_("Pro Photo RGB")}, +}; //! OlympusRd2 Engine, tag 0x010b -constexpr TagDetails olympusRd2Engine[] = {{0, N_("High Speed")}, {1, N_("High Function")}}; +constexpr TagDetails olympusRd2Engine[] = { + {0, N_("High Speed")}, + {1, N_("High Function")}, +}; //! OlympusRd2 PictureMode, tag 0x010c constexpr TagDetails olympusRd2PictureMode[] = { - {1, N_("Vivid")}, {2, N_("Natural")}, {3, N_("Muted")}, {256, N_("Monotone")}, {512, N_("Sepia")}}; + {1, N_("Vivid")}, {2, N_("Natural")}, {3, N_("Muted")}, {256, N_("Monotone")}, {512, N_("Sepia")}, +}; //! OlympusRd2 PM_BWFilter, tag 0x0110 constexpr TagDetails olympusRd2PM_BWFilter[] = { - {1, N_("Neutral")}, {2, N_("Yellow")}, {3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")}}; + {1, N_("Neutral")}, {2, N_("Yellow")}, {3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")}, +}; //! OlympusRd2 PMPictureTone, tag 0x0111 constexpr TagDetails olympusRd2PMPictureTone[] = { - {1, N_("Neutral")}, {2, N_("Sepia")}, {3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")}}; + {1, N_("Neutral")}, {2, N_("Sepia")}, {3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")}, +}; constexpr TagInfo OlympusMakerNote::tagInfoRd2_[] = { {0x0000, "RawDev2Version", N_("Raw Development 2 Version"), N_("Raw development 2 version"), IfdId::olympusRd2Id, @@ -775,11 +882,15 @@ const TagInfo* OlympusMakerNote::tagListRd2() { //! OlympusIp MultipleExposureMode, tag 0x101c constexpr TagDetails olympusIpMultipleExposureMode[] = { - {0, N_("Off")}, {2, N_("On (2 frames)")}, {3, N_("On (3 frames)")}}; + {0, N_("Off")}, + {2, N_("On (2 frames)")}, + {3, N_("On (3 frames)")}, +}; //! OlympusIp olympusIpAspectRatio, tag 0x101c -constexpr TagDetails olympusIpAspectRatio[] = {{1, "4:3"}, {2, "3:2"}, {3, "16:9"}, {4, "6:6"}, {5, "5:4"}, - {6, "7:6"}, {7, "6:5"}, {8, "7:5"}, {9, "3:4"}}; +constexpr TagDetails olympusIpAspectRatio[] = { + {1, "4:3"}, {2, "3:2"}, {3, "16:9"}, {4, "6:6"}, {5, "5:4"}, {6, "7:6"}, {7, "6:5"}, {8, "7:5"}, {9, "3:4"}, +}; constexpr TagInfo OlympusMakerNote::tagInfoIp_[] = { {0x0000, "ImageProcessingVersion", N_("Image Processing Version"), N_("Image processing version"), @@ -894,7 +1005,10 @@ const TagInfo* OlympusMakerNote::tagListIp() { } //! OlympusFi ExternalFlashBounce, tag 0x1204 -constexpr TagDetails olympusFiExternalFlashBounce[] = {{0, N_("Bounce or Off")}, {1, N_("Direct")}}; +constexpr TagDetails olympusFiExternalFlashBounce[] = { + {0, N_("Bounce or Off")}, + {1, N_("Direct")}, +}; constexpr TagInfo OlympusMakerNote::tagInfoFi_[] = { {0x0000, "FocusInfoVersion", N_("Focus Info Version"), N_("Focus info version"), IfdId::olympusFiId, @@ -957,18 +1071,20 @@ const TagInfo* OlympusMakerNote::tagListFe() { } //! OlympusRi LightSource, tag 0x1000 -constexpr TagDetails olympusRiLightSource[] = {{0, N_("Unknown")}, - {16, N_("Shade")}, - {17, N_("Cloudy")}, - {18, N_("Fine Weather")}, - {20, N_("Tungsten (incandescent)")}, - {22, N_("Evening Sunlight")}, - {33, N_("Daylight Fluorescent (D 5700 - 7100K)")}, - {34, N_("Day White Fluorescent (N 4600 - 5400K)")}, - {35, N_("Cool White Fluorescent (W 3900 - 4500K)")}, - {36, N_("White Fluorescent (WW 3200 - 3700K)")}, - {256, N_("One Touch White Balance")}, - {512, N_("Custom 1-4")}}; +constexpr TagDetails olympusRiLightSource[] = { + {0, N_("Unknown")}, + {16, N_("Shade")}, + {17, N_("Cloudy")}, + {18, N_("Fine Weather")}, + {20, N_("Tungsten (incandescent)")}, + {22, N_("Evening Sunlight")}, + {33, N_("Daylight Fluorescent (D 5700 - 7100K)")}, + {34, N_("Day White Fluorescent (N 4600 - 5400K)")}, + {35, N_("Cool White Fluorescent (W 3900 - 4500K)")}, + {36, N_("White Fluorescent (WW 3200 - 3700K)")}, + {256, N_("One Touch White Balance")}, + {512, N_("Custom 1-4")}, +}; constexpr TagInfo OlympusMakerNote::tagInfoRi_[] = { {0x0000, "RawInfoVersion", N_("Raw Info Version"), N_("Raw info version"), IfdId::olympusRiId, SectionId::makerTags, diff --git a/src/panasonicmn_int.cpp b/src/panasonicmn_int.cpp index 71dfa8bc89..a4f6788904 100644 --- a/src/panasonicmn_int.cpp +++ b/src/panasonicmn_int.cpp @@ -39,96 +39,111 @@ constexpr TagDetails panasonicImageStabilizer[] = { //! Macro, tag 0x001c constexpr TagDetails panasonicMacro[] = { - {1, N_("On")}, {2, N_("Off")}, {257, N_("Tele-macro")}, {513, N_("Macro-zoom")}}; + {1, N_("On")}, + {2, N_("Off")}, + {257, N_("Tele-macro")}, + {513, N_("Macro-zoom")}, +}; //! ShootingMode, tag 0x001f and SceneMode, tag 0x8001 -constexpr TagDetails panasonicShootingMode[] = {{0, N_("Off")}, // only SceneMode - {1, N_("Normal")}, - {2, N_("Portrait")}, - {3, N_("Scenery")}, - {4, N_("Sports")}, - {5, N_("Night portrait")}, - {6, N_("Program")}, - {7, N_("Aperture priority")}, - {8, N_("Shutter-speed priority")}, - {9, N_("Macro")}, - {10, N_("Spot")}, - {11, N_("Manual")}, - {12, N_("Movie preview")}, - {13, N_("Panning")}, - {14, N_("Simple")}, - {15, N_("Color effects")}, - {16, N_("Self Portrait")}, - {17, N_("Economy")}, - {18, N_("Fireworks")}, - {19, N_("Party")}, - {20, N_("Snow")}, - {21, N_("Night scenery")}, - {22, N_("Food")}, - {23, N_("Baby")}, - {24, N_("Soft skin")}, - {25, N_("Candlelight")}, - {26, N_("Starry night")}, - {27, N_("High sensitivity")}, - {28, N_("Panorama assist")}, - {29, N_("Underwater")}, - {30, N_("Beach")}, - {31, N_("Aerial photo")}, - {32, N_("Sunset")}, - {33, N_("Pet")}, - {34, N_("Intelligent ISO")}, - {35, N_("Clipboard")}, - {36, N_("High speed continuous shooting")}, - {37, N_("Intelligent auto")}, - {39, N_("Multi-aspect")}, - {41, N_("Transform")}, - {42, N_("Flash Burst")}, - {43, N_("Pin Hole")}, - {44, N_("Film Grain")}, - {45, N_("My Color")}, - {46, N_("Photo Frame")}, - {51, N_("HDR")}, - {55, N_("Handheld Night Shot")}, - {57, N_("3D")}, - {59, N_("Creative Control")}, - {62, N_("Panorama")}, - {63, N_("Glass Through")}, - {64, N_("HDR")}, - {66, N_("Digital Filter")}, - {67, N_("Clear Portrait")}, - {68, N_("Silky Skin")}, - {69, N_("Backlit Softness")}, - {70, N_("Clear in Backlight")}, - {71, N_("Relaxing Tone")}, - {72, N_("Sweet Child's Face")}, - {73, N_("Distinct Scenery")}, - {74, N_("Bright Blue Sky")}, - {75, N_("Romantic Sunset Glow")}, - {76, N_("Vivid Sunset Glow")}, - {77, N_("Glistening Water")}, - {78, N_("Clear Nightscape")}, - {79, N_("Cool Night Sky")}, - {80, N_("Warm Glowing Nightscape")}, - {81, N_("Artistic Nightscape")}, - {82, N_("Glittering Illuminations")}, - {83, N_("Clear Night Portrait")}, - {84, N_("Soft Image of a Flower")}, - {85, N_("Appetizing Food")}, - {86, N_("Cute Desert")}, - {87, N_("Freeze Animal Motion")}, - {88, N_("Clear Sports Shot")}, - {89, N_("Monochrome")}, - {90, N_("Creative Control")}}; +constexpr TagDetails panasonicShootingMode[] = { + {0, N_("Off")}, // only SceneMode + {1, N_("Normal")}, + {2, N_("Portrait")}, + {3, N_("Scenery")}, + {4, N_("Sports")}, + {5, N_("Night portrait")}, + {6, N_("Program")}, + {7, N_("Aperture priority")}, + {8, N_("Shutter-speed priority")}, + {9, N_("Macro")}, + {10, N_("Spot")}, + {11, N_("Manual")}, + {12, N_("Movie preview")}, + {13, N_("Panning")}, + {14, N_("Simple")}, + {15, N_("Color effects")}, + {16, N_("Self Portrait")}, + {17, N_("Economy")}, + {18, N_("Fireworks")}, + {19, N_("Party")}, + {20, N_("Snow")}, + {21, N_("Night scenery")}, + {22, N_("Food")}, + {23, N_("Baby")}, + {24, N_("Soft skin")}, + {25, N_("Candlelight")}, + {26, N_("Starry night")}, + {27, N_("High sensitivity")}, + {28, N_("Panorama assist")}, + {29, N_("Underwater")}, + {30, N_("Beach")}, + {31, N_("Aerial photo")}, + {32, N_("Sunset")}, + {33, N_("Pet")}, + {34, N_("Intelligent ISO")}, + {35, N_("Clipboard")}, + {36, N_("High speed continuous shooting")}, + {37, N_("Intelligent auto")}, + {39, N_("Multi-aspect")}, + {41, N_("Transform")}, + {42, N_("Flash Burst")}, + {43, N_("Pin Hole")}, + {44, N_("Film Grain")}, + {45, N_("My Color")}, + {46, N_("Photo Frame")}, + {51, N_("HDR")}, + {55, N_("Handheld Night Shot")}, + {57, N_("3D")}, + {59, N_("Creative Control")}, + {62, N_("Panorama")}, + {63, N_("Glass Through")}, + {64, N_("HDR")}, + {66, N_("Digital Filter")}, + {67, N_("Clear Portrait")}, + {68, N_("Silky Skin")}, + {69, N_("Backlit Softness")}, + {70, N_("Clear in Backlight")}, + {71, N_("Relaxing Tone")}, + {72, N_("Sweet Child's Face")}, + {73, N_("Distinct Scenery")}, + {74, N_("Bright Blue Sky")}, + {75, N_("Romantic Sunset Glow")}, + {76, N_("Vivid Sunset Glow")}, + {77, N_("Glistening Water")}, + {78, N_("Clear Nightscape")}, + {79, N_("Cool Night Sky")}, + {80, N_("Warm Glowing Nightscape")}, + {81, N_("Artistic Nightscape")}, + {82, N_("Glittering Illuminations")}, + {83, N_("Clear Night Portrait")}, + {84, N_("Soft Image of a Flower")}, + {85, N_("Appetizing Food")}, + {86, N_("Cute Desert")}, + {87, N_("Freeze Animal Motion")}, + {88, N_("Clear Sports Shot")}, + {89, N_("Monochrome")}, + {90, N_("Creative Control")}, +}; //! Audio, tag 0x0020 -constexpr TagDetails panasonicAudio[] = {{1, N_("Yes")}, {2, N_("No")}, {3, N_("Stereo")}}; +constexpr TagDetails panasonicAudio[] = { + {1, N_("Yes")}, + {2, N_("No")}, + {3, N_("Stereo")}, +}; //! ColorEffect, tag 0x0028 constexpr TagDetails panasonicColorEffect[] = { - {1, N_("Off")}, {2, N_("Warm")}, {3, N_("Cool")}, {4, N_("Black and white")}, {5, N_("Sepia")}, {6, N_("Happy")}}; + {1, N_("Off")}, {2, N_("Warm")}, {3, N_("Cool")}, {4, N_("Black and white")}, {5, N_("Sepia")}, {6, N_("Happy")}, +}; //! BustMode, tag 0x002a -constexpr TagDetails panasonicBurstMode[] = {{0, N_("Off")}, {1, N_("Low/High quality")}, {2, N_("Infinite")}}; +constexpr TagDetails panasonicBurstMode[] = { + {0, N_("Off")}, + {1, N_("Low/High quality")}, + {2, N_("Infinite")}, +}; //! Contrast, tag 0x002c constexpr TagDetails panasonicContrast[] = { @@ -138,26 +153,45 @@ constexpr TagDetails panasonicContrast[] = { //! NoiseReduction, tag 0x002d constexpr TagDetails panasonicNoiseReduction[] = { - {0, N_("Standard")}, {1, N_("Low (-1)")}, {2, N_("High (+1)")}, {3, N_("Lowest (-2)")}, {4, N_("Highest (+2)")}}; + {0, N_("Standard")}, {1, N_("Low (-1)")}, {2, N_("High (+1)")}, {3, N_("Lowest (-2)")}, {4, N_("Highest (+2)")}, +}; //! SelfTimer, tag 0x002e -constexpr TagDetails panasonicSelfTimer[] = {{1, N_("Off")}, {2, "10 s"}, {3, "2 s"}, {4, "10 s / 3 pictures"}}; +constexpr TagDetails panasonicSelfTimer[] = { + {1, N_("Off")}, + {2, "10 s"}, + {3, "2 s"}, + {4, "10 s / 3 pictures"}, +}; //! Rotation, tag 0x0030 constexpr TagDetails panasonicRotation[] = { - {1, N_("Horizontal (normal)")}, {3, N_("Rotate 180")}, {6, N_("Rotate 90 CW")}, {8, N_("Rotate 270 CW")}}; + {1, N_("Horizontal (normal)")}, + {3, N_("Rotate 180")}, + {6, N_("Rotate 90 CW")}, + {8, N_("Rotate 270 CW")}, +}; //! AFAssistLamp, tag 0x0031 -constexpr TagDetails panasonicAFAssistLamp[] = {{1, N_("Fired")}, - {2, N_("Enabled but Not Used")}, - {3, N_("Disabled but Required")}, - {4, N_("Disabled and Not Required")}}; +constexpr TagDetails panasonicAFAssistLamp[] = { + {1, N_("Fired")}, + {2, N_("Enabled but Not Used")}, + {3, N_("Disabled but Required")}, + {4, N_("Disabled and Not Required")}, +}; //! ColorMode, tag 0x0032 -constexpr TagDetails panasonicColorMode[] = {{0, N_("Normal")}, {1, N_("Natural")}, {2, N_("Vivid")}}; +constexpr TagDetails panasonicColorMode[] = { + {0, N_("Normal")}, + {1, N_("Natural")}, + {2, N_("Vivid")}, +}; //! OpticalZoomMode, tag 0x0034 -constexpr TagDetails panasonicOpticalZoomMode[] = {{1, N_("Standard")}, {2, N_("EX optics")}}; +constexpr TagDetails panasonicOpticalZoomMode[] = { + {1, N_("Standard")}, + {2, N_("EX optics")}, +}; //! ConversionLens, tag 0x0035 constexpr TagDetails panasonicConversionLens[] = { @@ -169,91 +203,141 @@ constexpr TagDetails panasonicConversionLens[] = { }; //! WorldTimeLocation, tag 0x003a -constexpr TagDetails panasonicWorldTimeLocation[] = {{1, N_("Home")}, {2, N_("Destination")}}; +constexpr TagDetails panasonicWorldTimeLocation[] = { + {1, N_("Home")}, + {2, N_("Destination")}, +}; //! TextStamp, tag 0x003b, 0x003e, 000x8008 and 0x8009 -constexpr TagDetails panasonicTextStamp[] = {{1, N_("Off")}, {2, N_("On")}}; +constexpr TagDetails panasonicTextStamp[] = { + {1, N_("Off")}, + {2, N_("On")}, +}; //! FilmMode, tag 0x0042 constexpr TagDetails panasonicFilmMode[] = { {1, N_("Standard (color)")}, {2, N_("Dynamic (color)")}, {3, N_("Nature (color)")}, {4, N_("Smooth (color)")}, {5, N_("Standard (B&W)")}, {6, N_("Dynamic (B&W)")}, - {7, N_("Smooth (B&W)")}, {10, N_("Nostalgic")}, {11, N_("Vibrant")}}; + {7, N_("Smooth (B&W)")}, {10, N_("Nostalgic")}, {11, N_("Vibrant")}, +}; //! Bracket Settings, tag 0x0045 -constexpr TagDetails panasonicBracketSettings[] = {{0, N_("No Bracket")}, - {1, N_("3 images, Sequence 0/-/+")}, - {2, N_("3 images, Sequence -/0/+")}, - {3, N_("5 images, Sequence 0/-/+")}, - {4, N_("5 images, Sequence -/0/+")}, - {5, N_("7 images, Sequence 0/-/+")}, - {6, N_("7 images, Sequence -/0/+")}}; +constexpr TagDetails panasonicBracketSettings[] = { + {0, N_("No Bracket")}, + {1, N_("3 images, Sequence 0/-/+")}, + {2, N_("3 images, Sequence -/0/+")}, + {3, N_("5 images, Sequence 0/-/+")}, + {4, N_("5 images, Sequence -/0/+")}, + {5, N_("7 images, Sequence 0/-/+")}, + {6, N_("7 images, Sequence -/0/+")}, +}; //! Flash curtain, tag 0x0048 -constexpr TagDetails panasonicFlashCurtain[] = {{0, N_("n/a")}, {1, N_("1st")}, {2, N_("2nd")}}; +constexpr TagDetails panasonicFlashCurtain[] = { + {0, N_("n/a")}, + {1, N_("1st")}, + {2, N_("2nd")}, +}; //! Long Shutter Noise Reduction, tag 0x0049 -constexpr TagDetails panasonicLongShutterNoiseReduction[] = {{1, N_("Off")}, {2, N_("On")}}; +constexpr TagDetails panasonicLongShutterNoiseReduction[] = { + {1, N_("Off")}, + {2, N_("On")}, +}; //! Intelligent exposure, tag 0x005d constexpr TagDetails panasonicIntelligentExposure[] = { - {0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}}; + {0, N_("Off")}, + {1, N_("Low")}, + {2, N_("Standard")}, + {3, N_("High")}, +}; //! Flash warning, tag 0x0062 -constexpr TagDetails panasonicFlashWarning[] = {{0, N_("No")}, {1, N_("Yes (flash required but disabled")}}; +constexpr TagDetails panasonicFlashWarning[] = { + {0, N_("No")}, + {1, N_("Yes (flash required but disabled")}, +}; //! Intelligent resolution, tag 0x0070 constexpr TagDetails panasonicIntelligentResolution[] = { - {0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}, {4, N_("Extended")}}; + {0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}, {4, N_("Extended")}, +}; //! Intelligent D-Range, tag 0x0079 constexpr TagDetails panasonicIntelligentDRange[] = { - {0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}}; + {0, N_("Off")}, + {1, N_("Low")}, + {2, N_("Standard")}, + {3, N_("High")}, +}; //! Clear Retouch, tag 0x007c -constexpr TagDetails panasonicClearRetouch[] = {{0, N_("Off")}, {1, N_("On")}}; +constexpr TagDetails panasonicClearRetouch[] = { + {0, N_("Off")}, + {1, N_("On")}, +}; //! Photo Style, tag 0x0089 -constexpr TagDetails panasonicPhotoStyle[] = {{0, N_("NoAuto")}, {1, N_("Standard or Custom")}, {2, N_("Vivid")}, - {3, N_("Natural")}, {4, N_("Monochrome")}, {5, N_("Scenery")}, - {6, N_("Portrait")}}; +constexpr TagDetails panasonicPhotoStyle[] = { + {0, N_("NoAuto")}, {1, N_("Standard or Custom")}, {2, N_("Vivid")}, {3, N_("Natural")}, {4, N_("Monochrome")}, + {5, N_("Scenery")}, {6, N_("Portrait")}, +}; //! Shading compensation, tag 0x008a -constexpr TagDetails panasonicShadingCompensation[] = {{0, N_("Off")}, {1, N_("On")}}; +constexpr TagDetails panasonicShadingCompensation[] = { + {0, N_("Off")}, + {1, N_("On")}, +}; //! Camera orientation, tag 0x008f -constexpr TagDetails panasonicCameraOrientation[] = {{0, N_("Normal")}, {1, N_("Rotate CW")}, - {2, N_("Rotate 180")}, {3, N_("Rotate CCW")}, - {4, N_("Tilt upwards")}, {5, N_("Tilt downwards")}}; +constexpr TagDetails panasonicCameraOrientation[] = { + {0, N_("Normal")}, {1, N_("Rotate CW")}, {2, N_("Rotate 180")}, + {3, N_("Rotate CCW")}, {4, N_("Tilt upwards")}, {5, N_("Tilt downwards")}, +}; //! Sweep panorama direction, tag 0x0093 -constexpr TagDetails panasonicSweepPanoramaDirection[] = {{0, N_("Off")}, - {1, N_("Left to Right")}, - {2, N_("Right to Left")}, - {3, N_("Top to Bottom")}, - {4, N_("Bottom to Top")}}; +constexpr TagDetails panasonicSweepPanoramaDirection[] = { + {0, N_("Off")}, {1, N_("Left to Right")}, {2, N_("Right to Left")}, + {3, N_("Top to Bottom")}, {4, N_("Bottom to Top")}, +}; //! Timer recording, tag 0x0096 constexpr TagDetails panasonicTimerRecording[] = { - {0, N_("Off")}, {1, N_("Time Lapse")}, {2, N_("Stop-Motion Animation")}}; + {0, N_("Off")}, + {1, N_("Time Lapse")}, + {2, N_("Stop-Motion Animation")}, +}; //! HDR, tag 0x009e -constexpr TagDetails panasonicHDR[] = {{0, N_("Off")}, - {100, N_("1 EV")}, - {200, N_("2 EV")}, - {300, N_("3 EV")}, - {32868, N_("1 EV (Auto)")}, - {32968, N_("2 EV (Auto)")}, - {33068, N_("3 EV (Auto)")}}; +constexpr TagDetails panasonicHDR[] = { + {0, N_("Off")}, + {100, N_("1 EV")}, + {200, N_("2 EV")}, + {300, N_("3 EV")}, + {32868, N_("1 EV (Auto)")}, + {32968, N_("2 EV (Auto)")}, + {33068, N_("3 EV (Auto)")}, +}; //! Shutter Type, tag 0x009f -constexpr TagDetails panasonicShutterType[] = {{0, N_("Mechanical")}, {1, N_("Electronic")}, {2, N_("Hybrid")}}; +constexpr TagDetails panasonicShutterType[] = { + {0, N_("Mechanical")}, + {1, N_("Electronic")}, + {2, N_("Hybrid")}, +}; //! Touch AE, tag 0x00ab -constexpr TagDetails panasonicTouchAE[] = {{0, N_("Off")}, {1, N_("On")}}; +constexpr TagDetails panasonicTouchAE[] = { + {0, N_("Off")}, + {1, N_("On")}, +}; //! Flash Fired, tag 0x8007 -constexpr TagDetails panasonicFlashFired[] = {{1, N_("No")}, {2, N_("Yes")}}; +constexpr TagDetails panasonicFlashFired[] = { + {1, N_("No")}, + {2, N_("Yes")}, +}; // Panasonic MakerNote Tag Info constexpr TagInfo PanasonicMakerNote::tagInfo_[] = { diff --git a/src/pentaxmn_int.cpp b/src/pentaxmn_int.cpp index db92fd5c4a..be45919407 100644 --- a/src/pentaxmn_int.cpp +++ b/src/pentaxmn_int.cpp @@ -463,9 +463,10 @@ constexpr TagDetails pentaxCities[] = { //! ImageProcessing, combi-tag 0x0032 (4 bytes) constexpr TagDetails pentaxImageProcessing[] = { - {0x00000000, N_("Unprocessed")}, {0x00000004, N_("Digital Filter")}, {0x01000000, N_("Resized")}, - {0x02000000, N_("Cropped")}, {0x04000000, N_("Color Filter")}, {0x06000000, N_("Digital Filter 6")}, - {0x10000000, N_("Frame Synthesis?")}}; + {0x00000000, N_("Unprocessed")}, {0x00000004, N_("Digital Filter")}, {0x01000000, N_("Resized")}, + {0x02000000, N_("Cropped")}, {0x04000000, N_("Color Filter")}, {0x06000000, N_("Digital Filter 6")}, + {0x10000000, N_("Frame Synthesis?")}, +}; //! PictureMode, combi-tag 0x0033 (3 bytes) constexpr TagDetails pentaxPictureMode[] = { diff --git a/src/preview.cpp b/src/preview.cpp index 18fe6122bb..e341610d04 100644 --- a/src/preview.cpp +++ b/src/preview.cpp @@ -283,7 +283,8 @@ const Loader::LoaderList Loader::loaderList_[] = { {nullptr, createLoaderExifJpeg, 2}, {nullptr, createLoaderExifJpeg, 3}, {nullptr, createLoaderExifJpeg, 4}, {nullptr, createLoaderExifJpeg, 5}, {nullptr, createLoaderExifJpeg, 6}, {"image/x-canon-cr2", createLoaderExifJpeg, 7}, - {nullptr, createLoaderExifJpeg, 8}, {nullptr, createLoaderXmpJpeg, 0}}; + {nullptr, createLoaderExifJpeg, 8}, {nullptr, createLoaderXmpJpeg, 0}, +}; const LoaderExifJpeg::Param LoaderExifJpeg::param_[] = { {"Exif.Image.JPEGInterchangeFormat", "Exif.Image.JPEGInterchangeFormatLength", nullptr}, // 0 diff --git a/src/properties.cpp b/src/properties.cpp index f606e58aa2..512552ae31 100644 --- a/src/properties.cpp +++ b/src/properties.cpp @@ -3969,7 +3969,8 @@ const XmpPropertyInfo xmpVideoInfo[] = { {"Year", N_("Year"), "Integer", xmpText, xmpExternal, N_("Year in which the video was made.")}, {"YResolution", N_("Y Resolution"), "Rational", xmpText, xmpInternal, N_("Vertical resolution in pixels per unit.")}, - {nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}}; + {nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}, +}; const XmpPropertyInfo xmpAudioInfo[] = { {"AvgBytePerSec", N_("Average Bytes Per Second"), "Integer", xmpText, xmpExternal, @@ -4821,7 +4822,8 @@ const XmpPropertyInfo xmpDwCInfo[] = { {"measurementRemarks", N_("Measurement Remarks"), "Text", xmpText, xmpExternal, N_("Comments or notes accompanying the MeasurementOrFact.")}, // End of list marker - {nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}}; + {nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}, +}; const XmpPropertyInfo xmpAcdseeInfo[] = { {"caption", N_("Caption"), "Text", xmpText, xmpExternal, N_("A brief description of the file")}, @@ -4834,7 +4836,8 @@ const XmpPropertyInfo xmpAcdseeInfo[] = { {"categories", N_("Categories"), "Text", xmpText, xmpExternal, N_("Catalog of hierarchical keywords and groups")}, // End of list marker - {nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}}; + {nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}, +}; const XmpPrintInfo xmpPrintInfo[] = { {"Xmp.crs.CropUnits", EXV_PRINT_TAG(crsCropUnits)}, @@ -4902,7 +4905,8 @@ const XmpPrintInfo xmpPrintInfo[] = { {"Xmp.plus.MinorModelAgeDisclosure", EXV_PRINT_VOCABULARY(plusMinorModelAgeDisclosure)}, {"Xmp.plus.ModelReleaseStatus", EXV_PRINT_VOCABULARY(plusModelReleaseStatus)}, {"Xmp.plus.PropertyReleaseStatus", EXV_PRINT_VOCABULARY(plusPropertyReleaseStatus)}, - {"Xmp.plus.Reuse", EXV_PRINT_VOCABULARY(plusReuse)}}; + {"Xmp.plus.Reuse", EXV_PRINT_VOCABULARY(plusReuse)}, +}; bool XmpNsInfo::operator==(const XmpNsInfo::Ns& ns) const { return ns_ == ns.ns_; diff --git a/src/riffvideo.cpp b/src/riffvideo.cpp index 2b55ed281f..578424ad84 100644 --- a/src/riffvideo.cpp +++ b/src/riffvideo.cpp @@ -16,90 +16,92 @@ namespace Exiv2::Internal { -const std::map infoTags = {{"AGES", "Xmp.video.Rated"}, - {"CMNT", "Xmp.video.Comment"}, - {"CODE", "Xmp.video.EncodedBy"}, - {"COMM", "Xmp.video.Comment"}, - {"DIRC", "Xmp.video.Director"}, - {"DISP", "Xmp.audio.SchemeTitle"}, - {"DTIM", "Xmp.video.DateTimeOriginal"}, - {"GENR", "Xmp.video.Genre"}, - {"IARL", "Xmp.video.ArchivalLocation"}, - {"IART", "Xmp.video.Artist"}, - {"IAS1", "Xmp.video.Edit1"}, - {"IAS2", "Xmp.video.Edit2"}, - {"IAS3", "Xmp.video.Edit3"}, - {"IAS4", "Xmp.video.Edit4"}, - {"IAS5", "Xmp.video.Edit5"}, - {"IAS6", "Xmp.video.Edit6"}, - {"IAS7", "Xmp.video.Edit7"}, - {"IAS8", "Xmp.video.Edit8"}, - {"IAS9", "Xmp.video.Edit9"}, - {"IBSU", "Xmp.video.BaseURL"}, - {"ICAS", "Xmp.audio.DefaultStream"}, - {"ICDS", "Xmp.video.CostumeDesigner"}, - {"ICMS", "Xmp.video.Commissioned"}, - {"ICMT", "Xmp.video.Comment"}, - {"ICNM", "Xmp.video.Cinematographer"}, - {"ICNT", "Xmp.video.Country"}, - {"ICOP", "Xmp.video.Copyright"}, - {"ICRD", "Xmp.video.DateTimeDigitized"}, - {"ICRP", "Xmp.video.Cropped"}, - {"IDIM", "Xmp.video.Dimensions"}, - {"IDPI", "Xmp.video.DotsPerInch"}, - {"IDST", "Xmp.video.DistributedBy"}, - {"IEDT", "Xmp.video.EditedBy"}, - {"IENC", "Xmp.video.EncodedBy"}, - {"IENG", "Xmp.video.Engineer"}, - {"IGNR", "Xmp.video.Genre"}, - {"IKEY", "Xmp.video.PerformerKeywords"}, - {"ILGT", "Xmp.video.Lightness"}, - {"ILGU", "Xmp.video.LogoURL"}, - {"ILIU", "Xmp.video.LogoIconURL"}, - {"ILNG", "Xmp.video.Language"}, - {"IMBI", "Xmp.video.InfoBannerImage"}, - {"IMBU", "Xmp.video.InfoBannerURL"}, - {"IMED", "Xmp.video.Medium"}, - {"IMIT", "Xmp.video.InfoText"}, - {"IMIU", "Xmp.video.InfoURL"}, - {"IMUS", "Xmp.video.MusicBy"}, - {"INAM", "Xmp.video.Title"}, - {"IPDS", "Xmp.video.ProductionDesigner"}, - {"IPLT", "Xmp.video.NumOfColors"}, - {"IPRD", "Xmp.video.Product"}, - {"IPRO", "Xmp.video.ProducedBy"}, - {"IRIP", "Xmp.video.RippedBy"}, - {"IRTD", "Xmp.video.Rating"}, - {"ISBJ", "Xmp.video.Subject"}, - {"ISFT", "Xmp.video.Software"}, - {"ISGN", "Xmp.video.SecondaryGenre"}, - {"ISHP", "Xmp.video.Sharpness"}, - {"ISRC", "Xmp.video.Source"}, - {"ISRF", "Xmp.video.SourceForm"}, - {"ISTD", "Xmp.video.ProductionStudio"}, - {"ISTR", "Xmp.video.Starring"}, - {"ITCH", "Xmp.video.Technician"}, - {"IWMU", "Xmp.video.WatermarkURL"}, - {"IWRI", "Xmp.video.WrittenBy"}, - {"LANG", "Xmp.video.Language"}, - {"LOCA", "Xmp.video.LocationInfo"}, - {"PRT1", "Xmp.video.Part"}, - {"PRT2", "Xmp.video.NumOfParts"}, - {"RATE", "Xmp.video.Rate"}, - {"STAR", "Xmp.video.Starring"}, - {"STAT", "Xmp.video.Statistics"}, - {"TAPE", "Xmp.video.TapeName"}, - {"TCDO", "Xmp.video.EndTimecode"}, - {"TCOD", "Xmp.video.StartTimecode"}, - {"TITL", "Xmp.video.Title"}, - {"TLEN", "Xmp.video.Length"}, - {"TORG", "Xmp.video.Organization"}, - {"TRCK", "Xmp.video.TrackNumber"}, - {"TURL", "Xmp.video.URL"}, - {"TVER", "Xmp.video.SoftwareVersion"}, - {"VMAJ", "Xmp.video.VegasVersionMajor"}, - {"VMIN", "Xmp.video.VegasVersionMinor"}, - {"YEAR", "Xmp.video.Year"}}; +const std::map infoTags = { + {"AGES", "Xmp.video.Rated"}, + {"CMNT", "Xmp.video.Comment"}, + {"CODE", "Xmp.video.EncodedBy"}, + {"COMM", "Xmp.video.Comment"}, + {"DIRC", "Xmp.video.Director"}, + {"DISP", "Xmp.audio.SchemeTitle"}, + {"DTIM", "Xmp.video.DateTimeOriginal"}, + {"GENR", "Xmp.video.Genre"}, + {"IARL", "Xmp.video.ArchivalLocation"}, + {"IART", "Xmp.video.Artist"}, + {"IAS1", "Xmp.video.Edit1"}, + {"IAS2", "Xmp.video.Edit2"}, + {"IAS3", "Xmp.video.Edit3"}, + {"IAS4", "Xmp.video.Edit4"}, + {"IAS5", "Xmp.video.Edit5"}, + {"IAS6", "Xmp.video.Edit6"}, + {"IAS7", "Xmp.video.Edit7"}, + {"IAS8", "Xmp.video.Edit8"}, + {"IAS9", "Xmp.video.Edit9"}, + {"IBSU", "Xmp.video.BaseURL"}, + {"ICAS", "Xmp.audio.DefaultStream"}, + {"ICDS", "Xmp.video.CostumeDesigner"}, + {"ICMS", "Xmp.video.Commissioned"}, + {"ICMT", "Xmp.video.Comment"}, + {"ICNM", "Xmp.video.Cinematographer"}, + {"ICNT", "Xmp.video.Country"}, + {"ICOP", "Xmp.video.Copyright"}, + {"ICRD", "Xmp.video.DateTimeDigitized"}, + {"ICRP", "Xmp.video.Cropped"}, + {"IDIM", "Xmp.video.Dimensions"}, + {"IDPI", "Xmp.video.DotsPerInch"}, + {"IDST", "Xmp.video.DistributedBy"}, + {"IEDT", "Xmp.video.EditedBy"}, + {"IENC", "Xmp.video.EncodedBy"}, + {"IENG", "Xmp.video.Engineer"}, + {"IGNR", "Xmp.video.Genre"}, + {"IKEY", "Xmp.video.PerformerKeywords"}, + {"ILGT", "Xmp.video.Lightness"}, + {"ILGU", "Xmp.video.LogoURL"}, + {"ILIU", "Xmp.video.LogoIconURL"}, + {"ILNG", "Xmp.video.Language"}, + {"IMBI", "Xmp.video.InfoBannerImage"}, + {"IMBU", "Xmp.video.InfoBannerURL"}, + {"IMED", "Xmp.video.Medium"}, + {"IMIT", "Xmp.video.InfoText"}, + {"IMIU", "Xmp.video.InfoURL"}, + {"IMUS", "Xmp.video.MusicBy"}, + {"INAM", "Xmp.video.Title"}, + {"IPDS", "Xmp.video.ProductionDesigner"}, + {"IPLT", "Xmp.video.NumOfColors"}, + {"IPRD", "Xmp.video.Product"}, + {"IPRO", "Xmp.video.ProducedBy"}, + {"IRIP", "Xmp.video.RippedBy"}, + {"IRTD", "Xmp.video.Rating"}, + {"ISBJ", "Xmp.video.Subject"}, + {"ISFT", "Xmp.video.Software"}, + {"ISGN", "Xmp.video.SecondaryGenre"}, + {"ISHP", "Xmp.video.Sharpness"}, + {"ISRC", "Xmp.video.Source"}, + {"ISRF", "Xmp.video.SourceForm"}, + {"ISTD", "Xmp.video.ProductionStudio"}, + {"ISTR", "Xmp.video.Starring"}, + {"ITCH", "Xmp.video.Technician"}, + {"IWMU", "Xmp.video.WatermarkURL"}, + {"IWRI", "Xmp.video.WrittenBy"}, + {"LANG", "Xmp.video.Language"}, + {"LOCA", "Xmp.video.LocationInfo"}, + {"PRT1", "Xmp.video.Part"}, + {"PRT2", "Xmp.video.NumOfParts"}, + {"RATE", "Xmp.video.Rate"}, + {"STAR", "Xmp.video.Starring"}, + {"STAT", "Xmp.video.Statistics"}, + {"TAPE", "Xmp.video.TapeName"}, + {"TCDO", "Xmp.video.EndTimecode"}, + {"TCOD", "Xmp.video.StartTimecode"}, + {"TITL", "Xmp.video.Title"}, + {"TLEN", "Xmp.video.Length"}, + {"TORG", "Xmp.video.Organization"}, + {"TRCK", "Xmp.video.TrackNumber"}, + {"TURL", "Xmp.video.URL"}, + {"TVER", "Xmp.video.SoftwareVersion"}, + {"VMAJ", "Xmp.video.VegasVersionMajor"}, + {"VMIN", "Xmp.video.VegasVersionMinor"}, + {"YEAR", "Xmp.video.Year"}, +}; const std::map audioEncodingValues = { {0x1, "Microsoft PCM"}, @@ -344,7 +346,8 @@ const std::map audioEncodingValues = { {0xe708, "Unknown -"}, {0xf1ac, "Free Lossless Audio Codec FLAC"}, {0xfffe, "Extensible"}, - {0xffff, "Development"}}; + {0xffff, "Development"}, +}; } // namespace Exiv2::Internal // ***************************************************************************** diff --git a/src/samsungmn_int.cpp b/src/samsungmn_int.cpp index 138c99286d..3f6865de2f 100644 --- a/src/samsungmn_int.cpp +++ b/src/samsungmn_int.cpp @@ -15,30 +15,38 @@ // class member definitions namespace Exiv2::Internal { //! LensType, tag 0xa003 -constexpr TagDetails samsung2LensType[] = {{0, N_("Built-in")}, - {1, "Samsung NX 30mm F2 Pancake"}, - {2, "Samsung NX 18-55mm F3.5-5.6 OIS"}, - {3, "Samsung NX 50-200mm F4-5.6 ED OIS"}, - {4, "Samsung NX 20-50mm F3.5-5.6 ED"}, - {5, "Samsung NX 20mm F2.8 Pancake"}, - {6, "Samsung NX 18-200mm F3.5-6.3 ED OIS"}, - {7, "Samsung NX 60mm F2.8 Macro ED OIS SSA"}, - {8, "Samsung NX 16mm F2.4 Pancake"}, - {9, "Samsung NX 85mm F1.4 ED SSA"}, - {10, "Samsung NX 45mm F1.8"}, - {11, "Samsung NX 45mm F1.8 2D/3D"}, - {12, "Samsung NX 12-24mm F4-5.6 ED"}, - {13, "Samsung NX 16-50mm F2-2.8 S ED OIS"}, - {14, "Samsung NX 10mm F3.5 Fisheye"}, - {15, "Samsung NX 16-50mm F3.5-5.6 Power Zoom ED OIS"}, - {20, "Samsung NX 50-150mm F2.8 S ED OIS"}, - {21, "Samsung NX 300mm F2.8 ED OIS"}}; +constexpr TagDetails samsung2LensType[] = { + {0, N_("Built-in")}, + {1, "Samsung NX 30mm F2 Pancake"}, + {2, "Samsung NX 18-55mm F3.5-5.6 OIS"}, + {3, "Samsung NX 50-200mm F4-5.6 ED OIS"}, + {4, "Samsung NX 20-50mm F3.5-5.6 ED"}, + {5, "Samsung NX 20mm F2.8 Pancake"}, + {6, "Samsung NX 18-200mm F3.5-6.3 ED OIS"}, + {7, "Samsung NX 60mm F2.8 Macro ED OIS SSA"}, + {8, "Samsung NX 16mm F2.4 Pancake"}, + {9, "Samsung NX 85mm F1.4 ED SSA"}, + {10, "Samsung NX 45mm F1.8"}, + {11, "Samsung NX 45mm F1.8 2D/3D"}, + {12, "Samsung NX 12-24mm F4-5.6 ED"}, + {13, "Samsung NX 16-50mm F2-2.8 S ED OIS"}, + {14, "Samsung NX 10mm F3.5 Fisheye"}, + {15, "Samsung NX 16-50mm F3.5-5.6 Power Zoom ED OIS"}, + {20, "Samsung NX 50-150mm F2.8 S ED OIS"}, + {21, "Samsung NX 300mm F2.8 ED OIS"}, +}; //! ColorSpace, tag 0xa011 -constexpr TagDetails samsung2ColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}}; +constexpr TagDetails samsung2ColorSpace[] = { + {0, N_("sRGB")}, + {1, N_("Adobe RGB")}, +}; //! SmartRange, tag 0xa012 -constexpr TagDetails samsung2SmartRange[] = {{0, N_("Off")}, {1, N_("On")}}; +constexpr TagDetails samsung2SmartRange[] = { + {0, N_("Off")}, + {1, N_("On")}, +}; //! Print the camera temperature static std::ostream& printCameraTemperature(std::ostream& os, const Value& value, const ExifData*) { @@ -138,10 +146,11 @@ const TagInfo* Samsung2MakerNote::tagList() { } //! PictureWizard Mode -constexpr TagDetails samsungPwMode[] = {{0, N_("Standard")}, {1, N_("Vivid")}, {2, N_("Portrait")}, - {3, N_("Landscape")}, {4, N_("Forest")}, {5, N_("Retro")}, - {6, N_("Cool")}, {7, N_("Calm")}, {8, N_("Classic")}, - {9, N_("Custom1")}, {10, N_("Custom2")}, {11, N_("Custom3")}}; +constexpr TagDetails samsungPwMode[] = { + {0, N_("Standard")}, {1, N_("Vivid")}, {2, N_("Portrait")}, {3, N_("Landscape")}, + {4, N_("Forest")}, {5, N_("Retro")}, {6, N_("Cool")}, {7, N_("Calm")}, + {8, N_("Classic")}, {9, N_("Custom1")}, {10, N_("Custom2")}, {11, N_("Custom3")}, +}; //! Print the PictureWizard Color tag value static std::ostream& printPwColor(std::ostream& os, const Value& value, const ExifData*) { diff --git a/src/sonymn_int.cpp b/src/sonymn_int.cpp index fb1fc14afc..0042ca46e6 100644 --- a/src/sonymn_int.cpp +++ b/src/sonymn_int.cpp @@ -20,122 +20,161 @@ namespace Exiv2::Internal { // -- Standard Sony Makernotes tags --------------------------------------------------------------- //! Lookup table to translate Sony image quality values to readable labels -constexpr TagDetails sonyImageQuality[] = {{0, N_("RAW")}, - {1, N_("Super Fine")}, - {2, N_("Fine")}, - {3, N_("Standard")}, - {4, N_("Economy")}, - {5, N_("Extra Fine")}, - {6, N_("RAW + JPEG/HEIF")}, - {7, N_("Compressed RAW")}, - {8, N_("Compressed RAW + JPEG")}, - {9, N_("Light")}, - {0xffffffff, N_("n/a")}}; +constexpr TagDetails sonyImageQuality[] = { + {0, N_("RAW")}, + {1, N_("Super Fine")}, + {2, N_("Fine")}, + {3, N_("Standard")}, + {4, N_("Economy")}, + {5, N_("Extra Fine")}, + {6, N_("RAW + JPEG/HEIF")}, + {7, N_("Compressed RAW")}, + {8, N_("Compressed RAW + JPEG")}, + {9, N_("Light")}, + {0xffffffff, N_("n/a")}, +}; //! Lookup table to translate Sony white balance (main group) values to readable labels -constexpr TagDetails sonyWhiteBalanceStd[] = {{0x00, N_("Auto")}, {0x01, N_("Color Temperature/Color Filter")}, - {0x10, N_("Daylight")}, {0x20, N_("Cloudy")}, - {0x30, N_("Shade")}, {0x40, N_("Tungsten")}, - {0x50, N_("Flash")}, {0x60, N_("Fluorescent")}, - {0x70, N_("Custom")}, {0x80, N_("Underwater")}}; +constexpr TagDetails sonyWhiteBalanceStd[] = { + {0x00, N_("Auto")}, {0x01, N_("Color Temperature/Color Filter")}, + {0x10, N_("Daylight")}, {0x20, N_("Cloudy")}, + {0x30, N_("Shade")}, {0x40, N_("Tungsten")}, + {0x50, N_("Flash")}, {0x60, N_("Fluorescent")}, + {0x70, N_("Custom")}, {0x80, N_("Underwater")}, +}; //! Lookup table to translate Sony auto HDR (part 1) values to readable labels -constexpr TagDetails sonyHDRStdPart1[] = {{0x00, N_("Off")}, {0x01, N_("Auto")}, {0x10, "1.0 EV"}, {0x11, "1.5 EV"}, - {0x12, "2.0 EV"}, {0x13, "2.5 EV"}, {0x14, "3.0 EV"}, {0x15, "3.5 EV"}, - {0x16, "4.0 EV"}, {0x17, "4.5 EV"}, {0x18, "5.0 EV"}, {0x19, "5.5 EV"}, - {0x1a, "6.0 EV"}}; +constexpr TagDetails sonyHDRStdPart1[] = { + {0x00, N_("Off")}, {0x01, N_("Auto")}, {0x10, "1.0 EV"}, {0x11, "1.5 EV"}, {0x12, "2.0 EV"}, + {0x13, "2.5 EV"}, {0x14, "3.0 EV"}, {0x15, "3.5 EV"}, {0x16, "4.0 EV"}, {0x17, "4.5 EV"}, + {0x18, "5.0 EV"}, {0x19, "5.5 EV"}, {0x1a, "6.0 EV"}, +}; //! Lookup table to translate Sony auto HDR (part 2) values to readable labels constexpr TagDetails sonyHDRStdPart2[] = { - {0, N_("Uncorrected image")}, {1, N_("HDR image (good)")}, {2, N_("HDR (fail 1)")}, {3, N_("HDR (fail 2)")}}; + {0, N_("Uncorrected image")}, + {1, N_("HDR image (good)")}, + {2, N_("HDR (fail 1)")}, + {3, N_("HDR (fail 2)")}, +}; //! Lookup table to translate Sony off/on/(n/a) (1) values to readable labels -constexpr TagDetails sonyOffOnNA1[] = {{0, N_("Off")}, {1, N_("On")}, {256, N_("n/a")}}; +constexpr TagDetails sonyOffOnNA1[] = { + {0, N_("Off")}, + {1, N_("On")}, + {256, N_("n/a")}, +}; //! Lookup table to translate Sony off/on/(n/a) (2) values to readable labels -constexpr TagDetails sonyOffOnNA2[] = {{0, N_("Off")}, {1, N_("On")}, {0xffffffff, N_("n/a")}}; +constexpr TagDetails sonyOffOnNA2[] = { + {0, N_("Off")}, + {1, N_("On")}, + {0xffffffff, N_("n/a")}, +}; //! Lookup table to translate Sony no/yes values to readable labels -constexpr TagDetails sonyNoYes[] = {{0, N_("No")}, {1, N_("Yes")}}; +constexpr TagDetails sonyNoYes[] = { + {0, N_("No")}, + {1, N_("Yes")}, +}; //! Lookup table to translate Sony picture effect values to readable labels -constexpr TagDetails sonyPictureEffect[] = {{0, N_("Off")}, - {1, N_("Toy Camera")}, - {2, N_("Pop Color")}, - {3, N_("Posterization")}, - {4, N_("Posterization B/W")}, - {5, N_("Retro Photo")}, - {6, N_("Soft High Key")}, - {7, N_("Partial Color (red)")}, - {8, N_("Partial Color (green)")}, - {9, N_("Partial Color (blue)")}, - {10, N_("Partial Color (yellow)")}, - {13, N_("High Contrast Monochrome")}, - {16, N_("Toy Camera (normal)")}, - {17, N_("Toy Camera (cool)")}, - {18, N_("Toy Camera (warm)")}, - {19, N_("Toy Camera (green)")}, - {20, N_("Toy Camera (magenta)")}, - {32, N_("Soft Focus (low)")}, - {33, N_("Soft Focus")}, - {34, N_("Soft Focus (high)")}, - {48, N_("Miniature (auto)")}, - {49, N_("Miniature (top)")}, - {50, N_("Miniature (middle horizontal)")}, - {51, N_("Miniature (bottom)")}, - {52, N_("Miniature (left)")}, - {53, N_("Miniature (middle vertical)")}, - {54, N_("Miniature (right)")}, - {64, N_("HDR Painting (low)")}, - {65, N_("HDR Painting")}, - {66, N_("HDR Painting (high)")}, - {80, N_("Rich-tone Monochrome")}, - {97, N_("Watercolor")}, - {98, N_("Watercolor 2")}, - {112, N_("Illustration (low)")}, - {113, N_("Illustration")}, - {114, N_("Illustration (high)")}}; +constexpr TagDetails sonyPictureEffect[] = { + {0, N_("Off")}, + {1, N_("Toy Camera")}, + {2, N_("Pop Color")}, + {3, N_("Posterization")}, + {4, N_("Posterization B/W")}, + {5, N_("Retro Photo")}, + {6, N_("Soft High Key")}, + {7, N_("Partial Color (red)")}, + {8, N_("Partial Color (green)")}, + {9, N_("Partial Color (blue)")}, + {10, N_("Partial Color (yellow)")}, + {13, N_("High Contrast Monochrome")}, + {16, N_("Toy Camera (normal)")}, + {17, N_("Toy Camera (cool)")}, + {18, N_("Toy Camera (warm)")}, + {19, N_("Toy Camera (green)")}, + {20, N_("Toy Camera (magenta)")}, + {32, N_("Soft Focus (low)")}, + {33, N_("Soft Focus")}, + {34, N_("Soft Focus (high)")}, + {48, N_("Miniature (auto)")}, + {49, N_("Miniature (top)")}, + {50, N_("Miniature (middle horizontal)")}, + {51, N_("Miniature (bottom)")}, + {52, N_("Miniature (left)")}, + {53, N_("Miniature (middle vertical)")}, + {54, N_("Miniature (right)")}, + {64, N_("HDR Painting (low)")}, + {65, N_("HDR Painting")}, + {66, N_("HDR Painting (high)")}, + {80, N_("Rich-tone Monochrome")}, + {97, N_("Watercolor")}, + {98, N_("Watercolor 2")}, + {112, N_("Illustration (low)")}, + {113, N_("Illustration")}, + {114, N_("Illustration (high)")}, +}; //! Lookup table to translate Sony soft skin effect values to readable labels constexpr TagDetails sonySoftSkinEffect[] = { - {0, N_("Off")}, {1, N_("Low")}, {2, N_("Mid")}, {3, N_("High")}, {0xffffffff, N_("n/a")}}; + {0, N_("Off")}, {1, N_("Low")}, {2, N_("Mid")}, {3, N_("High")}, {0xffffffff, N_("n/a")}, +}; //! Lookup table to translate Sony vignetting correction values to readable labels -constexpr TagDetails sonyVignettingCorrection[] = {{0, N_("Off")}, {2, N_("Auto")}, {0xffffffff, N_("n/a")}}; +constexpr TagDetails sonyVignettingCorrection[] = { + {0, N_("Off")}, + {2, N_("Auto")}, + {0xffffffff, N_("n/a")}, +}; //! Lookup table to translate Sony lateral chromatic aberration values to readable labels -constexpr TagDetails sonyLateralChromaticAberration[] = {{0, N_("Off")}, {2, N_("Auto")}, {0xffffffff, N_("n/a")}}; +constexpr TagDetails sonyLateralChromaticAberration[] = { + {0, N_("Off")}, + {2, N_("Auto")}, + {0xffffffff, N_("n/a")}, +}; //! Lookup table to translate Sony distortion correction settings values to readable labels -constexpr TagDetails sonyDistortionCorrectionSettings[] = {{0, N_("Off")}, {2, N_("Auto")}, {0xffffffff, N_("n/a")}}; +constexpr TagDetails sonyDistortionCorrectionSettings[] = { + {0, N_("Off")}, + {2, N_("Auto")}, + {0xffffffff, N_("n/a")}, +}; //! Lookup table to translate Sony flash action values to readable labels -constexpr TagDetails sonyFlashAction[] = {{0, N_("Did not fire")}, - {1, N_("Flash fired")}, - {2, N_("External flash fired")}, - {3, N_("Wireless controlled flash fired")}}; +constexpr TagDetails sonyFlashAction[] = { + {0, N_("Did not fire")}, + {1, N_("Flash fired")}, + {2, N_("External flash fired")}, + {3, N_("Wireless controlled flash fired")}, +}; //! Lookup table to translate Sony auto focus point selected (set 1) values to readable labels -constexpr TagDetails sonyAFPointSelectedSet1[] = {{0, N_("Auto")}, - {1, N_("Center")}, - {2, N_("Top")}, - {3, N_("Upper-right")}, - {4, N_("Right")}, - {5, N_("Lower-right")}, - {6, N_("Bottom")}, - {7, N_("Lower-left")}, - {8, N_("Left")}, - {9, N_("Upper-left")}, - {10, N_("Far Right")}, - {11, N_("Far Left")}, - {12, N_("Upper-middle")}, - {13, N_("Near Right")}, - {14, N_("Lower-middle")}, - {15, N_("Near Left")}, - {16, N_("Upper Far Right")}, - {17, N_("Lower Far Right")}, - {18, N_("Lower Far Left")}, - {19, N_("Upper Far Left")}}; +constexpr TagDetails sonyAFPointSelectedSet1[] = { + {0, N_("Auto")}, + {1, N_("Center")}, + {2, N_("Top")}, + {3, N_("Upper-right")}, + {4, N_("Right")}, + {5, N_("Lower-right")}, + {6, N_("Bottom")}, + {7, N_("Lower-left")}, + {8, N_("Left")}, + {9, N_("Upper-left")}, + {10, N_("Far Right")}, + {11, N_("Far Left")}, + {12, N_("Upper-middle")}, + {13, N_("Near Right")}, + {14, N_("Lower-middle")}, + {15, N_("Near Left")}, + {16, N_("Upper Far Right")}, + {17, N_("Lower Far Right")}, + {18, N_("Lower Far Left")}, + {19, N_("Upper Far Left")}, +}; //! Lookup table to translate Sony auto focus point selected (set 2) values to readable labels constexpr TagDetails sonyAFPointSelectedSet2[] = { @@ -154,113 +193,120 @@ constexpr TagDetails sonyAFPointSelectedSet2[] = { {60, "G5"}, {61, "G6"}, {62, "G7"}, {63, "G8"}, {64, "G9"}, {65, "G10"}, {66, "G11"}, {67, "H2"}, {68, "H3"}, {69, "H4"}, {70, "H5"}, {71, "H6"}, {72, "H7"}, {73, "H8"}, {74, "H9"}, - {75, "H10"}, {76, "I5"}, {77, "I6"}, {78, "I7"}, {128, N_("Auto")}}; + {75, "H10"}, {76, "I5"}, {77, "I6"}, {78, "I7"}, {128, N_("Auto")}, +}; //! Lookup table to translate Sony auto focus point selected (set 3) values to readable labels -constexpr TagDetails sonyAFPointSelectedSet3[] = {{0, N_("Auto")}, - {93, "A5"}, - {94, "A6"}, - {95, "A7"}, - {106, "B2"}, - {107, "B3"}, - {108, "B4"}, - {110, "B5"}, - {111, "B6"}, - {112, "B7"}, - {114, "B8"}, - {115, "B9"}, - {116, "B10"}, - {122, "C1"}, - {123, "C2"}, - {124, "C3"}, - {215, "C4"}, - {127, "C5"}, - {128, "C6"}, - {129, "C7"}, - {131, "C8"}, - {132, "C9"}, - {133, "C10"}, - {134, "C11"}, - {139, "D1"}, - {140, "D2"}, - {141, "D3"}, - {142, "D4"}, - {144, "D5"}, - {145, "D6"}, - {146, "D7"}, - {148, "D8"}, - {149, "D9"}, - {150, "D10"}, - {151, "D11"}, - {156, "E1"}, - {157, "E2"}, - {158, "E3"}, - {159, "E4"}, - {161, "E5"}, - {162, N_("E6 (Center")}, - {163, "E7"}, - {165, "E8"}, - {166, "E9"}, - {167, "E10"}, - {168, "E11"}, - {173, "F1"}, - {174, "F2"}, - {175, "F3"}, - {176, "F4"}, - {178, "F5"}, - {179, "F6"}, - {180, "F7"}, - {182, "F8"}, - {183, "F9"}, - {184, "F10"}, - {185, "F11"}, - {190, "G1"}, - {191, "G2"}, - {192, "G3"}, - {193, "G4"}, - {195, "G5"}, - {196, "G6"}, - {197, "G7"}, - {199, "G8"}, - {200, "G9"}, - {201, "G10"}, - {202, "G11"}, - {208, "H2"}, - {209, "H3"}, - {210, "H4"}, - {212, "H5"}, - {213, "H6"}, - {214, "H7"}, - {216, "H8"}, - {217, "H9"}, - {218, "H10"}, - {229, "I5"}, - {230, "I6"}, - {231, "I7"}}; +constexpr TagDetails sonyAFPointSelectedSet3[] = { + {0, N_("Auto")}, + {93, "A5"}, + {94, "A6"}, + {95, "A7"}, + {106, "B2"}, + {107, "B3"}, + {108, "B4"}, + {110, "B5"}, + {111, "B6"}, + {112, "B7"}, + {114, "B8"}, + {115, "B9"}, + {116, "B10"}, + {122, "C1"}, + {123, "C2"}, + {124, "C3"}, + {215, "C4"}, + {127, "C5"}, + {128, "C6"}, + {129, "C7"}, + {131, "C8"}, + {132, "C9"}, + {133, "C10"}, + {134, "C11"}, + {139, "D1"}, + {140, "D2"}, + {141, "D3"}, + {142, "D4"}, + {144, "D5"}, + {145, "D6"}, + {146, "D7"}, + {148, "D8"}, + {149, "D9"}, + {150, "D10"}, + {151, "D11"}, + {156, "E1"}, + {157, "E2"}, + {158, "E3"}, + {159, "E4"}, + {161, "E5"}, + {162, N_("E6 (Center")}, + {163, "E7"}, + {165, "E8"}, + {166, "E9"}, + {167, "E10"}, + {168, "E11"}, + {173, "F1"}, + {174, "F2"}, + {175, "F3"}, + {176, "F4"}, + {178, "F5"}, + {179, "F6"}, + {180, "F7"}, + {182, "F8"}, + {183, "F9"}, + {184, "F10"}, + {185, "F11"}, + {190, "G1"}, + {191, "G2"}, + {192, "G3"}, + {193, "G4"}, + {195, "G5"}, + {196, "G6"}, + {197, "G7"}, + {199, "G8"}, + {200, "G9"}, + {201, "G10"}, + {202, "G11"}, + {208, "H2"}, + {209, "H3"}, + {210, "H4"}, + {212, "H5"}, + {213, "H6"}, + {214, "H7"}, + {216, "H8"}, + {217, "H9"}, + {218, "H10"}, + {229, "I5"}, + {230, "I6"}, + {231, "I7"}, +}; //! Lookup table to translate Sony auto focus point selected (set 4) values to readable labels constexpr TagDetails sonyAFPointSelectedSet4[] = { - {0, N_("n/a")}, {1, N_("Top Left Zone")}, {2, N_("Top Zone")}, {3, N_("Top Right Zone")}, - {4, N_("Left Zone")}, {5, N_("Center Zone")}, {6, N_("Right Zone")}, {7, N_("Bottom Left Zone")}, - {8, N_("Bottom Zone")}, {9, N_("Bottom Right Zone")}}; + {0, N_("n/a")}, {1, N_("Top Left Zone")}, {2, N_("Top Zone")}, {3, N_("Top Right Zone")}, + {4, N_("Left Zone")}, {5, N_("Center Zone")}, {6, N_("Right Zone")}, {7, N_("Bottom Left Zone")}, + {8, N_("Bottom Zone")}, {9, N_("Bottom Right Zone")}, +}; //! Lookup table to translate Sony auto focus point selected (set 5) values to readable labels constexpr TagDetails sonyAFPointSelectedSet5[] = { - {0, N_("n/a")}, {1, N_("Center Zone")}, {2, N_("Top Zone")}, {3, N_("Right Zone")}, - {4, N_("Left Zone")}, {5, N_("Bottom Zone")}, {6, N_("Bottom Right Zone")}, {7, N_("Bottom Left Zone")}, - {8, N_("Top Left Zone")}, {9, N_("Top Right Zone")}}; + {0, N_("n/a")}, {1, N_("Center Zone")}, {2, N_("Top Zone")}, {3, N_("Right Zone")}, + {4, N_("Left Zone")}, {5, N_("Bottom Zone")}, {6, N_("Bottom Right Zone")}, {7, N_("Bottom Left Zone")}, + {8, N_("Top Left Zone")}, {9, N_("Top Right Zone")}, +}; //! Lookup table to translate Sony auto focus points used (set 1) values to readable labels -constexpr TagDetailsBitlistSorted sonyAFPointsUsedSet1[] = {{0, N_("Center")}, {1, N_("Top")}, - {2, N_("Upper-right")}, {3, N_("Right")}, - {4, N_("Lower-right")}, {5, N_("Bottom")}, - {6, N_("Lower-left")}, {7, N_("Left")}, - {8, N_("Upper-left")}, {9, N_("Far right")}, - {10, N_("Far left")}, {11, N_("Upper-middle")}, - {12, N_("Near right")}, {13, N_("Lower-middle")}, - {14, N_("Near left")}, {15, N_("Upper far right")}, - {16, N_("Lower far right")}, {17, N_("Lower far left")}, - {18, N_("Upper far left")}}; +constexpr TagDetailsBitlistSorted sonyAFPointsUsedSet1[] = { + {0, N_("Center")}, {1, N_("Top")}, + {2, N_("Upper-right")}, {3, N_("Right")}, + {4, N_("Lower-right")}, {5, N_("Bottom")}, + {6, N_("Lower-left")}, {7, N_("Left")}, + {8, N_("Upper-left")}, {9, N_("Far right")}, + {10, N_("Far left")}, {11, N_("Upper-middle")}, + {12, N_("Near right")}, {13, N_("Lower-middle")}, + {14, N_("Near left")}, {15, N_("Upper far right")}, + {16, N_("Lower far right")}, {17, N_("Lower far left")}, + {18, N_("Upper far left")}, +}; //! Lookup table to translate Sony auto focus points used (set 2) values to readable labels constexpr TagDetailsBitlistSorted sonyAFPointsUsedSet2[] = { @@ -273,212 +319,252 @@ constexpr TagDetailsBitlistSorted sonyAFPointsUsedSet2[] = { {48, "F4"}, {49, "F5"}, {50, "F6"}, {51, "F7"}, {52, "F8"}, {53, "F9"}, {54, "F10"}, {55, "F11"}, {56, "G1"}, {57, "G2"}, {58, "G3"}, {59, "G4"}, {60, "G5"}, {61, "G6"}, {62, "G7"}, {63, "G8"}, {64, "G9"}, {65, "G10"}, {66, "G11"}, {67, "H2"}, {68, "H3"}, {69, "H4"}, {70, "H5"}, {71, "H6"}, - {72, "H7"}, {73, "H8"}, {74, "H9"}, {75, "H10"}, {76, "I5"}, {77, "I6"}, {78, "I7"}, {128, N_("Auto")}}; + {72, "H7"}, {73, "H8"}, {74, "H9"}, {75, "H10"}, {76, "I5"}, {77, "I6"}, {78, "I7"}, {128, N_("Auto")}, +}; //! Lookup table to translate Sony focus mode 2 values to readable labels -constexpr TagDetails sonyFocusMode2[] = {{0, N_("Manual")}, {2, N_("AF-S")}, {3, N_("AF-C")}, - {4, N_("AF-A")}, {6, N_("DMF")}, {7, N_("AF-D")}}; +constexpr TagDetails sonyFocusMode2[] = { + {0, N_("Manual")}, {2, N_("AF-S")}, {3, N_("AF-C")}, {4, N_("AF-A")}, {6, N_("DMF")}, {7, N_("AF-D")}, +}; //! Lookup table to translate Sony auto focus area mode setting (set 1) values to readable labels constexpr TagDetails sonyAFAreaModeSettingSet1[] = { - {0, N_("Wide")}, {4, N_("Local")}, {8, N_("Zone")}, {9, N_("Spot")}}; + {0, N_("Wide")}, + {4, N_("Local")}, + {8, N_("Zone")}, + {9, N_("Spot")}, +}; //! Lookup table to translate Sony auto focus area mode setting (set 2) values to readable labels -constexpr TagDetails sonyAFAreaModeSettingSet2[] = {{0, N_("Wide")}, - {1, N_("Center")}, - {3, N_("Flexible Spot")}, - {4, N_("Flexible Spot (LA-EA4)")}, - {9, N_("Center (LA-EA4)")}, - {11, N_("Zone")}, - {12, N_("Expanded flexible spot")}}; +constexpr TagDetails sonyAFAreaModeSettingSet2[] = { + {0, N_("Wide")}, + {1, N_("Center")}, + {3, N_("Flexible Spot")}, + {4, N_("Flexible Spot (LA-EA4)")}, + {9, N_("Center (LA-EA4)")}, + {11, N_("Zone")}, + {12, N_("Expanded flexible spot")}, +}; //! Lookup table to translate Sony auto focus area mode setting (set 3) values to readable labels constexpr TagDetails sonyAFAreaModeSettingSet3[] = { - {0, N_("Wide")}, {4, N_("Flexible spot")}, {8, N_("Zone")}, {9, N_("Center")}, {12, N_("Expanded flexible spot")}}; + {0, N_("Wide")}, {4, N_("Flexible spot")}, {8, N_("Zone")}, {9, N_("Center")}, {12, N_("Expanded flexible spot")}, +}; //! Lookup table to translate Sony auto focus tracking values to readable labels -constexpr TagDetails sonyAFTracking[] = {{0, N_("Off")}, {1, N_("Face tracking")}, {2, N_("Lock on AF")}}; +constexpr TagDetails sonyAFTracking[] = { + {0, N_("Off")}, + {1, N_("Face tracking")}, + {2, N_("Lock on AF")}, +}; //! Lookup table to translate Sony multi-frame noise reduction effect values to readable labels -constexpr TagDetails sonyMultiFrameNREffect[] = {{0, N_("Normal")}, {1, N_("High")}}; +constexpr TagDetails sonyMultiFrameNREffect[] = { + {0, N_("Normal")}, + {1, N_("High")}, +}; //! Lookup table to translate Sony variable low pass filter values to readable labels constexpr StringTagDetails sonyVariableLowPassFilter[] = { - {"0 0", N_("n/a")}, {"1 0", N_("Off")}, {"1 1", N_("Standard")}, {"1 2", N_("High")}, {"65535 65535", N_("n/a")}}; + {"0 0", N_("n/a")}, {"1 0", N_("Off")}, {"1 1", N_("Standard")}, {"1 2", N_("High")}, {"65535 65535", N_("n/a")}, +}; //! Lookup table to translate Sony RAW file type values to readable labels constexpr TagDetails sonyRAWFileType[] = { - {0, N_("Compressed RAW")}, {1, N_("Uncompressed RAW")}, {2, N_("Lossless Compressed RAW")}, {0xffff, N_("n/a")}}; + {0, N_("Compressed RAW")}, + {1, N_("Uncompressed RAW")}, + {2, N_("Lossless Compressed RAW")}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony metering mode 2 values to readable labels -constexpr TagDetails sonyMeteringMode2[] = {{0x100, N_("Multi-segment")}, {0x200, N_("Center-weighted average")}, - {0x301, N_("Spot (Standard)")}, {0x302, N_("Spot (Large)")}, - {0x400, N_("Average")}, {0x500, N_("Highlight")}}; +constexpr TagDetails sonyMeteringMode2[] = { + {0x100, N_("Multi-segment")}, {0x200, N_("Center-weighted average")}, + {0x301, N_("Spot (Standard)")}, {0x302, N_("Spot (Large)")}, + {0x400, N_("Average")}, {0x500, N_("Highlight")}, +}; //! Lookup table to translate Sony priority set in automatic white balance values to readable labels -constexpr TagDetails sonyPrioritySetInAWB[] = {{0, N_("Standard")}, {1, N_("Ambience")}, {2, N_("White")}}; +constexpr TagDetails sonyPrioritySetInAWB[] = { + {0, N_("Standard")}, + {1, N_("Ambience")}, + {2, N_("White")}, +}; //! Lookup table to translate Sony quality 2 (main group) values to readable labels -constexpr StringTagDetails sonyQuality2Std[] = {{"0 0", N_("n/a")}, - {"0 1", N_("Standard")}, - {"0 2", N_("Fine")}, - {"0 3", N_("Extra fine")}, - {"0 4", N_("Light")}, - {"1 0", N_("RAW")}, - {"1 1", N_("RAW + standard")}, - {"1 2", N_("RAW + fine")}, - {"1 3", N_("RAW + extra fine")}, - {"1 4", N_("RAW + light")}}; +constexpr StringTagDetails sonyQuality2Std[] = { + {"0 0", N_("n/a")}, + {"0 1", N_("Standard")}, + {"0 2", N_("Fine")}, + {"0 3", N_("Extra fine")}, + {"0 4", N_("Light")}, + {"1 0", N_("RAW")}, + {"1 1", N_("RAW + standard")}, + {"1 2", N_("RAW + fine")}, + {"1 3", N_("RAW + extra fine")}, + {"1 4", N_("RAW + light")}, +}; //! Lookup table to translate Sony JPEG/HEIF switch values to readable labels -constexpr TagDetails sonyJPEGHEIFSwitch[] = {{0, "JPEG"}, {1, "HEIF"}, {0xffff, N_("n/a")}}; +constexpr TagDetails sonyJPEGHEIFSwitch[] = { + {0, "JPEG"}, + {1, "HEIF"}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony model ID values to readable labels // FORMAT: Uses a space before alternative models and caveats // NOTE: Keep the array format in sync with the getModel() function -constexpr TagDetails sonyModelId[] = {{0, N_("Multiple camera models")}, - {2, "DSC-R1"}, - {256, "DSLR-A100"}, - {257, "DSLR-A900"}, - {258, "DSLR-A700"}, - {259, "DSLR-A200"}, - {260, "DSLR-A350"}, - {261, "DSLR-A300"}, - {262, "DSLR-A900 (APS-C mode)"}, - {263, "DSLR-A380 / DSLR-A390"}, - {264, "DSLR-A330"}, - {265, "DSLR-A230"}, - {266, "DSLR-A290"}, - {269, "DSLR-A850"}, - {270, "DSLR-A850 (APS-C mode)"}, - {273, "DSLR-A550"}, - {274, "DSLR-A500"}, - {275, "DSLR-A450"}, - {278, "NEX-5"}, - {279, "NEX-3"}, - {280, "SLT-A33"}, - {281, "SLT-A55 / SLT-A55V"}, - {282, "DSLR-A560"}, - {283, "DSLR-A580"}, - {284, "NEX-C3"}, - {285, "SLT-A35"}, - {286, "SLT-A65 / SLT-A65V"}, - {287, "SLT-A77 / SLT-A77V"}, - {288, "NEX-5N"}, - {289, "NEX-7"}, - {290, "NEX-VG20E"}, - {291, "SLT-A37"}, - {292, "SLT-A57"}, - {293, "NEX-F3"}, - {294, "SLT-A99 / SLT-A99V"}, - {295, "NEX-6"}, - {296, "NEX-5R"}, - {297, "DSC-RX100"}, - {298, "DSC-RX1"}, - {299, "NEX-VG900"}, - {300, "NEX-VG30E"}, - {302, "ILCE-3000 / ILCE-3500"}, - {303, "SLT-A58"}, - {305, "NEX-3N"}, - {306, "ILCE-7"}, - {307, "NEX-5T"}, - {308, "DSC-RX100M2"}, - {309, "DSC-RX10"}, - {310, "DSC-RX1R"}, - {311, "ILCE-7R"}, - {312, "ILCE-6000"}, - {313, "ILCE-5000"}, - {317, "DSC-RX100M3"}, - {318, "ILCE-7S"}, - {319, "ILCA-77M2"}, - {339, "ILCE-5100"}, - {340, "ILCE-7M2"}, - {341, "DSC-RX100M4"}, - {342, "DSC-RX10M2"}, - {344, "DSC-RX1RM2"}, - {346, "ILCE-QX1"}, - {347, "ILCE-7RM2"}, - {350, "ILCE-7SM2"}, - {353, "ILCA-68"}, - {354, "ILCA-99M2"}, - {355, "DSC-RX10M3"}, - {356, "DSC-RX100M5"}, - {357, "ILCE-6300"}, - {358, "ILCE-9"}, - {360, "ILCE-6500"}, - {362, "ILCE-7RM3"}, - {363, "ILCE-7M3"}, - {364, "DSC-RX0"}, - {365, "DSC-RX10M4"}, - {366, "DSC-RX100M6"}, - {367, "DSC-HX99"}, - {369, "DSC-RX100M5A"}, - {371, "ILCE-6400"}, - {372, "DSC-RX0M2"}, - {374, "DSC-RX100M7"}, - {375, "ILCE-7RM4"}, - {376, "ILCE-9M2"}, - {378, "ILCE-6600"}, - {379, "ILCE-6100"}, - {380, "ZV-1"}, - {381, "ILCE-7C"}, - {382, "ZV-E10"}, - {383, "ILCE-7SM3"}, - {384, "ILCE-1"}, - {385, "ILME-FX3"}, - {386, "ILCE-7RM3A"}, - {387, "ILCE-7RM4A"}, - {388, "ILCE-7M4"}, - {389, "ZV-1F"}, - {390, "ILCE-7RM5"}, - {391, "ILME-FX30"}, - {393, "ZV-E1"}, - {394, "ILCE-6700"}, - {395, "ZV-1M2"}}; +constexpr TagDetails sonyModelId[] = { + {0, N_("Multiple camera models")}, + {2, "DSC-R1"}, + {256, "DSLR-A100"}, + {257, "DSLR-A900"}, + {258, "DSLR-A700"}, + {259, "DSLR-A200"}, + {260, "DSLR-A350"}, + {261, "DSLR-A300"}, + {262, "DSLR-A900 (APS-C mode)"}, + {263, "DSLR-A380 / DSLR-A390"}, + {264, "DSLR-A330"}, + {265, "DSLR-A230"}, + {266, "DSLR-A290"}, + {269, "DSLR-A850"}, + {270, "DSLR-A850 (APS-C mode)"}, + {273, "DSLR-A550"}, + {274, "DSLR-A500"}, + {275, "DSLR-A450"}, + {278, "NEX-5"}, + {279, "NEX-3"}, + {280, "SLT-A33"}, + {281, "SLT-A55 / SLT-A55V"}, + {282, "DSLR-A560"}, + {283, "DSLR-A580"}, + {284, "NEX-C3"}, + {285, "SLT-A35"}, + {286, "SLT-A65 / SLT-A65V"}, + {287, "SLT-A77 / SLT-A77V"}, + {288, "NEX-5N"}, + {289, "NEX-7"}, + {290, "NEX-VG20E"}, + {291, "SLT-A37"}, + {292, "SLT-A57"}, + {293, "NEX-F3"}, + {294, "SLT-A99 / SLT-A99V"}, + {295, "NEX-6"}, + {296, "NEX-5R"}, + {297, "DSC-RX100"}, + {298, "DSC-RX1"}, + {299, "NEX-VG900"}, + {300, "NEX-VG30E"}, + {302, "ILCE-3000 / ILCE-3500"}, + {303, "SLT-A58"}, + {305, "NEX-3N"}, + {306, "ILCE-7"}, + {307, "NEX-5T"}, + {308, "DSC-RX100M2"}, + {309, "DSC-RX10"}, + {310, "DSC-RX1R"}, + {311, "ILCE-7R"}, + {312, "ILCE-6000"}, + {313, "ILCE-5000"}, + {317, "DSC-RX100M3"}, + {318, "ILCE-7S"}, + {319, "ILCA-77M2"}, + {339, "ILCE-5100"}, + {340, "ILCE-7M2"}, + {341, "DSC-RX100M4"}, + {342, "DSC-RX10M2"}, + {344, "DSC-RX1RM2"}, + {346, "ILCE-QX1"}, + {347, "ILCE-7RM2"}, + {350, "ILCE-7SM2"}, + {353, "ILCA-68"}, + {354, "ILCA-99M2"}, + {355, "DSC-RX10M3"}, + {356, "DSC-RX100M5"}, + {357, "ILCE-6300"}, + {358, "ILCE-9"}, + {360, "ILCE-6500"}, + {362, "ILCE-7RM3"}, + {363, "ILCE-7M3"}, + {364, "DSC-RX0"}, + {365, "DSC-RX10M4"}, + {366, "DSC-RX100M6"}, + {367, "DSC-HX99"}, + {369, "DSC-RX100M5A"}, + {371, "ILCE-6400"}, + {372, "DSC-RX0M2"}, + {374, "DSC-RX100M7"}, + {375, "ILCE-7RM4"}, + {376, "ILCE-9M2"}, + {378, "ILCE-6600"}, + {379, "ILCE-6100"}, + {380, "ZV-1"}, + {381, "ILCE-7C"}, + {382, "ZV-E10"}, + {383, "ILCE-7SM3"}, + {384, "ILCE-1"}, + {385, "ILME-FX3"}, + {386, "ILCE-7RM3A"}, + {387, "ILCE-7RM4A"}, + {388, "ILCE-7M4"}, + {389, "ZV-1F"}, + {390, "ILCE-7RM5"}, + {391, "ILME-FX30"}, + {393, "ZV-E1"}, + {394, "ILCE-6700"}, + {395, "ZV-1M2"}, +}; //! Lookup table to translate Sony creative style (main group) values to readable labels -constexpr StringTagDetails sonyCreativeStyleStd[] = {{"AdobeRGB", N_("Adobe RGB")}, - {"Autumnleaves", N_("Autumn leaves")}, - {"BW", N_("Black and White")}, - {"Clear", N_("Clear")}, - {"Deep", N_("Deep")}, - {"FL", N_("FL")}, - {"IN", "IN"}, - {"Landscape", N_("Landscape")}, - {"Light", N_("Light")}, - {"Neutral", N_("Neutral")}, - {"None", N_("None")}, - {"Portrait", N_("Portrait")}, - {"Real", N_("Real")}, - {"SH", N_("SH")}, - {"Sepia", N_("Sepia")}, - {"Standard", N_("Standard")}, - {"Sunset", N_("Sunset")}, - {"Vivid", N_("Vivid")}, - {"VV2", N_("VV2")}}; +constexpr StringTagDetails sonyCreativeStyleStd[] = { + {"AdobeRGB", N_("Adobe RGB")}, + {"Autumnleaves", N_("Autumn leaves")}, + {"BW", N_("Black and White")}, + {"Clear", N_("Clear")}, + {"Deep", N_("Deep")}, + {"FL", N_("FL")}, + {"IN", "IN"}, + {"Landscape", N_("Landscape")}, + {"Light", N_("Light")}, + {"Neutral", N_("Neutral")}, + {"None", N_("None")}, + {"Portrait", N_("Portrait")}, + {"Real", N_("Real")}, + {"SH", N_("SH")}, + {"Sepia", N_("Sepia")}, + {"Standard", N_("Standard")}, + {"Sunset", N_("Sunset")}, + {"Vivid", N_("Vivid")}, + {"VV2", N_("VV2")}, +}; //! Lookup table to translate Sony file format values to readable labels constexpr StringTagDetails sonyFileFormat[] = { {"0 0 0 2", "JPEG"}, {"1 0 0 0", "SR2 1.0"}, {"2 0 0 0", "ARW 1.0"}, {"3 0 0 0", "ARW 2.0"}, {"3 1 0 0", "ARW 2.1"}, {"3 2 0 0", "ARW 2.2"}, {"3 3 0 0", "ARW 2.3"}, {"3 3 1 0", "ARW 2.3.1"}, {"3 3 2 0", "ARW 2.3.2"}, {"3 3 3 0", "ARW 2.3.3"}, {"3 3 5 0", "ARW 2.3.5"}, {"4 0 0 0", "ARW 4.0"}, - {"4 0 1 0", "ARW 4.0.1"}}; + {"4 0 1 0", "ARW 4.0.1"}, +}; //! Lookup table to translate Sony dynamic range optimizer values to readable labels -constexpr TagDetails print0xb025[] = {{0, N_("Off")}, - {1, N_("Standard")}, - {2, N_("Advanced Auto")}, - {3, N_("Auto")}, - {8, N_("Advanced Lv1")}, - {9, N_("Advanced Lv2")}, - {10, N_("Advanced Lv3")}, - {11, N_("Advanced Lv4")}, - {12, N_("Advanced Lv5")}, - {16, "Lv1"}, - {17, "Lv2"}, - {18, "Lv3"}, - {19, "Lv4"}, - {20, "Lv5"}}; +constexpr TagDetails print0xb025[] = { + {0, N_("Off")}, + {1, N_("Standard")}, + {2, N_("Advanced Auto")}, + {3, N_("Auto")}, + {8, N_("Advanced Lv1")}, + {9, N_("Advanced Lv2")}, + {10, N_("Advanced Lv3")}, + {11, N_("Advanced Lv4")}, + {12, N_("Advanced Lv5")}, + {16, "Lv1"}, + {17, "Lv2"}, + {18, "Lv3"}, + {19, "Lv4"}, + {20, "Lv5"}, +}; //! Lookup table to translate Sony color mode values to readable labels constexpr TagDetails sonyColorMode[] = { @@ -490,154 +576,204 @@ constexpr TagDetails sonyColorMode[] = { {19, N_("Vivid 2")}, {20, N_("IN")}, {21, N_("SH")}, {100, N_("Neutral")}, {101, N_("Clear")}, {102, N_("Deep")}, {103, N_("Light")}, {104, N_("Night view")}, {105, N_("Autumn leaves")}, - {255, N_("Off")}, {0xffffffff, N_("n/a")}}; + {255, N_("Off")}, {0xffffffff, N_("n/a")}, +}; //! Lookup table to translate Sony exposure mode values to readable labels -constexpr TagDetails sonyExposureMode[] = {{0, N_("Program AE")}, - {1, N_("Portrait")}, - {2, N_("Beach")}, - {3, N_("Sports")}, - {4, N_("Snow")}, - {5, N_("Landscape")}, - {6, N_("Auto")}, - {7, N_("Aperture-priority AE")}, - {8, N_("Shutter speed priority AE")}, - {9, N_("Night Scene/Twilight")}, - {10, N_("Hi-Speed Shutter")}, - {11, N_("Twilight Portrait")}, - {12, N_("Soft Snap/Portrait")}, - {13, N_("Fireworks")}, - {14, N_("Smile Shutter")}, - {15, N_("Manual")}, - {18, N_("High Sensitivity")}, - {19, N_("Macro")}, - {20, N_("Advanced Sports Shooting")}, - {29, N_("Underwater")}, - {33, N_("Food")}, - {34, N_("Sweep Panorama")}, - {35, N_("Handheld Night Shot")}, - {36, N_("Anti Motion Blur")}, - {37, N_("Pet")}, - {38, N_("Backlight Correction HDR")}, - {39, N_("Superior Auto")}, - {40, N_("Background Defocus")}, - {41, N_("Soft Skin")}, - {42, N_("3D Image")}, - {0xffff, N_("n/a")}}; +constexpr TagDetails sonyExposureMode[] = { + {0, N_("Program AE")}, + {1, N_("Portrait")}, + {2, N_("Beach")}, + {3, N_("Sports")}, + {4, N_("Snow")}, + {5, N_("Landscape")}, + {6, N_("Auto")}, + {7, N_("Aperture-priority AE")}, + {8, N_("Shutter speed priority AE")}, + {9, N_("Night Scene/Twilight")}, + {10, N_("Hi-Speed Shutter")}, + {11, N_("Twilight Portrait")}, + {12, N_("Soft Snap/Portrait")}, + {13, N_("Fireworks")}, + {14, N_("Smile Shutter")}, + {15, N_("Manual")}, + {18, N_("High Sensitivity")}, + {19, N_("Macro")}, + {20, N_("Advanced Sports Shooting")}, + {29, N_("Underwater")}, + {33, N_("Food")}, + {34, N_("Sweep Panorama")}, + {35, N_("Handheld Night Shot")}, + {36, N_("Anti Motion Blur")}, + {37, N_("Pet")}, + {38, N_("Backlight Correction HDR")}, + {39, N_("Superior Auto")}, + {40, N_("Background Defocus")}, + {41, N_("Soft Skin")}, + {42, N_("3D Image")}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony JPEG quality values to readable labels constexpr TagDetails sonyJPEGQuality[] = { - {0, N_("Standard")}, {1, N_("Fine")}, {2, N_("Extra Fine")}, {0xffff, N_("n/a")}}; + {0, N_("Standard")}, + {1, N_("Fine")}, + {2, N_("Extra Fine")}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony anti-blur values to readable labels constexpr TagDetails sonyAntiBlur[] = { - {0, N_("Off")}, {1, N_("On (Continuous)")}, {2, N_("On (Shooting)")}, {0xffff, N_("n/a")}}; + {0, N_("Off")}, + {1, N_("On (Continuous)")}, + {2, N_("On (Shooting)")}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony dynamic range optimizer 2 values to readable labels -constexpr TagDetails print0xb04f[] = {{0, N_("Off")}, {1, N_("Standard")}, {2, N_("Plus")}}; +constexpr TagDetails print0xb04f[] = { + {0, N_("Off")}, + {1, N_("Standard")}, + {2, N_("Plus")}, +}; //! Lookup table to translate Sony intelligent auto values to readable labels -constexpr TagDetails sonyIntelligentAuto[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Advanced")}}; +constexpr TagDetails sonyIntelligentAuto[] = { + {0, N_("Off")}, + {1, N_("On")}, + {2, N_("Advanced")}, +}; //! Lookup table to translate Sony white balance 2 values to readable labels -constexpr TagDetails sonyWhiteBalance2[] = {{0, N_("Auto")}, - {4, N_("Manual")}, - {5, N_("Daylight")}, - {6, N_("Cloudy")}, - {7, N_("Cool White Fluorescent")}, - {8, N_("Day White Fluorescent")}, - {9, N_("Daylight Fluorescent")}, - {10, N_("Incandescent2")}, - {11, N_("Warm White Fluorescent")}, - {14, N_("Incandescent")}, - {15, N_("Flash")}, - {17, N_("Underwater 1 (Blue Water)")}, - {18, N_("Underwater 2 (Green Water)")}, - {19, N_("Underwater Auto")}}; +constexpr TagDetails sonyWhiteBalance2[] = { + {0, N_("Auto")}, + {4, N_("Manual")}, + {5, N_("Daylight")}, + {6, N_("Cloudy")}, + {7, N_("Cool White Fluorescent")}, + {8, N_("Day White Fluorescent")}, + {9, N_("Daylight Fluorescent")}, + {10, N_("Incandescent2")}, + {11, N_("Warm White Fluorescent")}, + {14, N_("Incandescent")}, + {15, N_("Flash")}, + {17, N_("Underwater 1 (Blue Water)")}, + {18, N_("Underwater 2 (Green Water)")}, + {19, N_("Underwater Auto")}, +}; //! Lookup table to translate Sony focus mode values to readable labels -constexpr TagDetails sonyFocusMode[] = {{1, "AF-S"}, {2, "AF-C"}, {4, N_("Permanent-AF")}, {0xffff, N_("n/a")}}; +constexpr TagDetails sonyFocusMode[] = { + {1, "AF-S"}, + {2, "AF-C"}, + {4, N_("Permanent-AF")}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony auto focus mode (set 1) values to readable labels -constexpr TagDetails sonyAFModeSet1[] = {{0, N_("Default")}, {1, N_("Multi")}, {2, N_("Center")}, - {3, N_("Spot")}, {4, N_("Flexible Spot")}, {6, N_("Touch")}, - {14, N_("Tracking")}, {15, N_("Face Detected")}, {0xffff, N_("n/a")}}; +constexpr TagDetails sonyAFModeSet1[] = { + {0, N_("Default")}, {1, N_("Multi")}, {2, N_("Center")}, {3, N_("Spot")}, {4, N_("Flexible Spot")}, + {6, N_("Touch")}, {14, N_("Tracking")}, {15, N_("Face Detected")}, {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony auto focus mode (set 2) values to readable labels -constexpr TagDetails sonyAFModeSet2[] = {{0, N_("Multi")}, - {1, N_("Center")}, - {2, N_("Spot")}, - {3, N_("Flexible spot")}, - {10, N_("Selective (for miniature effect)")}, - {14, N_("Tracking")}, - {15, N_("Face tracking")}, - {255, N_("Manual")}}; +constexpr TagDetails sonyAFModeSet2[] = { + {0, N_("Multi")}, + {1, N_("Center")}, + {2, N_("Spot")}, + {3, N_("Flexible spot")}, + {10, N_("Selective (for miniature effect)")}, + {14, N_("Tracking")}, + {15, N_("Face tracking")}, + {255, N_("Manual")}, +}; //! Lookup table to translate Sony auto focus illuminator values to readable labels -constexpr TagDetails sonyAFIlluminator[] = {{0, N_("Off")}, {1, N_("Auto")}, {0xffff, N_("n/a")}}; +constexpr TagDetails sonyAFIlluminator[] = { + {0, N_("Off")}, + {1, N_("Auto")}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony macro values to readable labels -constexpr TagDetails sonyMacro[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Close Focus")}, {0xffff, N_("n/a")}}; +constexpr TagDetails sonyMacro[] = { + {0, N_("Off")}, + {1, N_("On")}, + {2, N_("Close Focus")}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony flash level values to readable labels constexpr TagDetails sonyFlashLevel[] = { - {-32768, N_("Low")}, {-9, "-3.0 EV"}, {-8, "-2.7 EV"}, {-7, "-2.3 EV"}, {-6, "-2.0 EV"}, {-5, "-1.7 EV"}, - {-4, "-1.3 EV"}, {-3, "-1.0 EV"}, {-2, "-0.7 EV"}, {-1, "-0.3 EV"}, {0, N_("Normal")}, {1, "+0.3 EV"}, - {2, "+0.7 EV"}, {3, "+1.0 EV"}, {4, "+1.3 EV"}, {5, "+1.7 EV"}, {6, "+2.0 EV"}, {7, "+2.3 EV"}, - {8, "+2.7 EV"}, {9, "+3.0 EV"}, {128, N_("n/a")}, {32767, N_("High")}}; + {-32768, N_("Low")}, {-9, "-3.0 EV"}, {-8, "-2.7 EV"}, {-7, "-2.3 EV"}, {-6, "-2.0 EV"}, {-5, "-1.7 EV"}, + {-4, "-1.3 EV"}, {-3, "-1.0 EV"}, {-2, "-0.7 EV"}, {-1, "-0.3 EV"}, {0, N_("Normal")}, {1, "+0.3 EV"}, + {2, "+0.7 EV"}, {3, "+1.0 EV"}, {4, "+1.3 EV"}, {5, "+1.7 EV"}, {6, "+2.0 EV"}, {7, "+2.3 EV"}, + {8, "+2.7 EV"}, {9, "+3.0 EV"}, {128, N_("n/a")}, {32767, N_("High")}, +}; //! Lookup table to translate Sony release mode values to readable labels -constexpr TagDetails sonyReleaseMode[] = {{0, N_("Normal")}, - {2, N_("Continuous")}, - {5, N_("Exposure Bracketing")}, - {6, N_("White Balance Bracketing")}, - {8, N_("DRO Bracketing")}, - {0xffff, N_("n/a")}}; +constexpr TagDetails sonyReleaseMode[] = { + {0, N_("Normal")}, + {2, N_("Continuous")}, + {5, N_("Exposure Bracketing")}, + {6, N_("White Balance Bracketing")}, + {8, N_("DRO Bracketing")}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony sequence number values to readable labels -constexpr TagDetails sonySequenceNumber[] = {{0, N_("Single")}, {0xffff, N_("n/a")}}; +constexpr TagDetails sonySequenceNumber[] = { + {0, N_("Single")}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony focus mode 3 values to readable labels constexpr TagDetails sonyFocusMode3[] = { - {0, N_("Manual")}, {2, N_("AF-S")}, {3, N_("AF-C")}, {5, N_("Semi-manual")}, {6, N_("DMF")}}; + {0, N_("Manual")}, {2, N_("AF-S")}, {3, N_("AF-C")}, {5, N_("Semi-manual")}, {6, N_("DMF")}, +}; //! Lookup table to translate Sony high ISO noise reduction 2 values to readable labels constexpr TagDetails sonyHighISONoiseReduction2[] = { - {0, N_("Normal")}, {1, N_("High")}, {2, N_("Low")}, {3, N_("Off")}, {0xffff, N_("n/a")}}; + {0, N_("Normal")}, {1, N_("High")}, {2, N_("Low")}, {3, N_("Off")}, {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony release mode 2 values to readable labels -constexpr TagDetails sonyReleaseMode2[] = {{0, N_("Normal")}, - {1, N_("Continuous")}, - {2, N_("Continuous - Exposure Bracketing")}, - {3, N_("DRO or White Balance Bracketing")}, - {5, N_("Continuous - Burst")}, - {6, N_("Single Frame - Capture During Movie")}, - {7, N_("Continuous - Sweep Panorama")}, - {8, N_("Continuous - Anti-Motion Blur, Hand-held Twilight")}, - {9, N_("Continuous - HDR")}, - {10, N_("Continuous - Background defocus")}, - {13, N_("Continuous - 3D Sweep Panorama")}, - {15, N_("Continuous - High Resolution Sweep Panorama")}, - {16, N_("Continuous - 3D Image")}, - {17, N_("Continuous - Burst 2")}, - {18, N_("Normal - iAuto+")}, - {19, N_("Continuous - Speed/Advance Priority")}, - {20, N_("Continuous - Multi-Frame NR")}, - {23, N_("Single-frame - Exposure Bracketing")}, - {26, N_("Continuous Low")}, - {27, N_("Continuous - High Sensitivity")}, - {28, N_("Smile Shutter")}, - {29, N_("Continuous - Tele-zoom Advance Priority")}, - {146, N_("Single Frame - Movie Capture")}}; +constexpr TagDetails sonyReleaseMode2[] = { + {0, N_("Normal")}, + {1, N_("Continuous")}, + {2, N_("Continuous - Exposure Bracketing")}, + {3, N_("DRO or White Balance Bracketing")}, + {5, N_("Continuous - Burst")}, + {6, N_("Single Frame - Capture During Movie")}, + {7, N_("Continuous - Sweep Panorama")}, + {8, N_("Continuous - Anti-Motion Blur, Hand-held Twilight")}, + {9, N_("Continuous - HDR")}, + {10, N_("Continuous - Background defocus")}, + {13, N_("Continuous - 3D Sweep Panorama")}, + {15, N_("Continuous - High Resolution Sweep Panorama")}, + {16, N_("Continuous - 3D Image")}, + {17, N_("Continuous - Burst 2")}, + {18, N_("Normal - iAuto+")}, + {19, N_("Continuous - Speed/Advance Priority")}, + {20, N_("Continuous - Multi-Frame NR")}, + {23, N_("Single-frame - Exposure Bracketing")}, + {26, N_("Continuous Low")}, + {27, N_("Continuous - High Sensitivity")}, + {28, N_("Smile Shutter")}, + {29, N_("Continuous - Tele-zoom Advance Priority")}, + {146, N_("Single Frame - Movie Capture")}, +}; //! Lookup table to translate Sony long exposure noise reduction values to readable labels constexpr TagDetails sonyLongExposureNoiseReduction[] = { {0x00000000, N_("Off")}, {0x00000001, N_("On (unused)")}, {0x00010001, N_("On (dark subtracted)")}, - {0xffff0000, N_("Off (65535)")}, {0xffff0001, N_("On (65535)")}, {0xffffffff, N_("n/a")}}; + {0xffff0000, N_("Off (65535)")}, {0xffff0001, N_("On (65535)")}, {0xffffffff, N_("n/a")}, +}; //! Lookup table to translate Sony high ISO Noise reduction values to readable labels -constexpr TagDetails sonyHighISONoiseReductionStd[] = {{0, N_("Off")}, {1, N_("Low")}, {2, N_("Normal")}, - {3, N_("High")}, {256, N_("Auto")}, {0xffff, N_("n/a")}}; +constexpr TagDetails sonyHighISONoiseReductionStd[] = { + {0, N_("Off")}, {1, N_("Low")}, {2, N_("Normal")}, {3, N_("High")}, {256, N_("Auto")}, {0xffff, N_("n/a")}, +}; static auto getModel(const ExifData* metadata, std::string& val) { auto pos = metadata->findKey(ExifKey("Exif.Image.Model")); @@ -1583,11 +1719,19 @@ constexpr TagDetails sonyDriveModeStd[] = { }; //! Lookup table to translate Sony camera settings focus mode values to readable labels -constexpr TagDetails sonyCSFocusMode[] = {{0, N_("Manual")}, {1, "AF-S"}, {2, "AF-C"}, {3, "AF-A"}}; +constexpr TagDetails sonyCSFocusMode[] = { + {0, N_("Manual")}, + {1, "AF-S"}, + {2, "AF-C"}, + {3, "AF-A"}, +}; //! Lookup table to translate Sony camera settings metering mode values to readable labels constexpr TagDetails sonyMeteringMode[] = { - {1, N_("Multi-segment")}, {2, N_("Center weighted average")}, {4, N_("Spot")}}; + {1, N_("Multi-segment")}, + {2, N_("Center weighted average")}, + {4, N_("Spot")}, +}; //! Lookup table to translate Sony camera settings creative style values to readable labels constexpr TagDetails sonyCreativeStyle[] = { @@ -1595,7 +1739,8 @@ constexpr TagDetails sonyCreativeStyle[] = { {4, N_("Landscape")}, {5, N_("Sunset")}, {6, N_("Night View/Portrait")}, {8, N_("Black & White")}, {9, N_("Adobe RGB")}, {11, N_("Neutral")}, {12, N_("Clear")}, {13, N_("Deep")}, {14, N_("Light")}, - {15, N_("Autumn")}, {16, N_("Sepia")}}; + {15, N_("Autumn")}, {16, N_("Sepia")}, +}; //! Lookup table to translate Sony camera settings flash mode values to readable labels constexpr TagDetails sonyFlashMode[] = { @@ -1604,39 +1749,57 @@ constexpr TagDetails sonyFlashMode[] = { }; //! Lookup table to translate Sony AF illuminator values to readable labels -constexpr TagDetails sonyAFIlluminatorCS[] = {{0, N_("Auto")}, {1, N_("Off")}, {0xffff, N_("n/a")}}; +constexpr TagDetails sonyAFIlluminatorCS[] = { + {0, N_("Auto")}, + {1, N_("Off")}, + {0xffff, N_("n/a")}, +}; //! Lookup table to translate Sony camera settings image style values to readable labels -constexpr TagDetails sonyImageStyle[] = {{1, N_("Standard")}, {2, N_("Vivid")}, {3, N_("Portrait")}, - {4, N_("Landscape")}, {5, N_("Sunset")}, {7, N_("Night View/Portrait")}, - {8, N_("B&W")}, {9, N_("Adobe RGB")}, {11, N_("Neutral")}, - {129, N_("StyleBox1")}, {130, N_("StyleBox2")}, {131, N_("StyleBox3")}, - {132, N_("StyleBox4")}, {133, N_("StyleBox5")}, {134, N_("StyleBox6")}}; +constexpr TagDetails sonyImageStyle[] = { + {1, N_("Standard")}, {2, N_("Vivid")}, {3, N_("Portrait")}, + {4, N_("Landscape")}, {5, N_("Sunset")}, {7, N_("Night View/Portrait")}, + {8, N_("B&W")}, {9, N_("Adobe RGB")}, {11, N_("Neutral")}, + {129, N_("StyleBox1")}, {130, N_("StyleBox2")}, {131, N_("StyleBox3")}, + {132, N_("StyleBox4")}, {133, N_("StyleBox5")}, {134, N_("StyleBox6")}, +}; //! Lookup table to translate Sony camera settings exposure program values to readable labels -constexpr TagDetails sonyExposureProgram[] = {{0, N_("Auto")}, - {1, N_("Manual")}, - {2, N_("Program AE")}, - {3, N_("Aperture-priority AE")}, - {4, N_("Shutter speed priority AE")}, - {8, N_("Program Shift A")}, - {9, N_("Program Shift S")}, - {16, N_("Portrait")}, - {17, N_("Sports")}, - {18, N_("Sunset")}, - {19, N_("Night Portrait")}, - {20, N_("Landscape")}, - {21, N_("Macro")}, - {35, N_("Auto No Flash")}}; +constexpr TagDetails sonyExposureProgram[] = { + {0, N_("Auto")}, + {1, N_("Manual")}, + {2, N_("Program AE")}, + {3, N_("Aperture-priority AE")}, + {4, N_("Shutter speed priority AE")}, + {8, N_("Program Shift A")}, + {9, N_("Program Shift S")}, + {16, N_("Portrait")}, + {17, N_("Sports")}, + {18, N_("Sunset")}, + {19, N_("Night Portrait")}, + {20, N_("Landscape")}, + {21, N_("Macro")}, + {35, N_("Auto No Flash")}, +}; //! Lookup table to translate Sony camera settings image size values to readable labels -constexpr TagDetails sonyImageSize[] = {{1, N_("Large")}, {2, N_("Medium")}, {3, N_("Small")}}; +constexpr TagDetails sonyImageSize[] = { + {1, N_("Large")}, + {2, N_("Medium")}, + {3, N_("Small")}, +}; //! Lookup table to translate Sony aspect ratio values to readable labels -constexpr TagDetails sonyAspectRatio[] = {{1, "3:2"}, {2, "16:9"}}; +constexpr TagDetails sonyAspectRatio[] = { + {1, "3:2"}, + {2, "16:9"}, +}; //! Lookup table to translate Sony exposure level increments values to readable labels -constexpr TagDetails sonyExposureLevelIncrements[] = {{33, "1/3 EV"}, {50, "1/2 EV"}}; +constexpr TagDetails sonyExposureLevelIncrements[] = { + {33, "1/3 EV"}, + {50, "1/2 EV"}, +}; // Sony Camera Settings Tag Info // NOTE: all are for A200, A230, A300, A350, A700, A850 and A900 Sony model excepted @@ -1768,17 +1931,19 @@ const TagInfo* SonyMakerNote::tagListCs2() { } //! Lookup table to translate Sony2Fp AF Area Mode values to readable labels -constexpr TagDetails sony2FpAFAreaMode[] = {{0, N_("Multi")}, - {1, N_("Center")}, - {2, N_("Spot")}, - {3, N_("Flexible Spot")}, - {10, N_("Selective (for Miniature effect)")}, - {11, N_("Zone")}, - {12, N_("Expanded Flexible Spot")}, - {14, N_("Tracking")}, - {15, N_("Face Tracking")}, - {20, N_("Animal Eye Tracking")}, - {255, N_("Manual")}}; +constexpr TagDetails sony2FpAFAreaMode[] = { + {0, N_("Multi")}, + {1, N_("Center")}, + {2, N_("Spot")}, + {3, N_("Flexible Spot")}, + {10, N_("Selective (for Miniature effect)")}, + {11, N_("Zone")}, + {12, N_("Expanded Flexible Spot")}, + {14, N_("Tracking")}, + {15, N_("Face Tracking")}, + {20, N_("Animal Eye Tracking")}, + {255, N_("Manual")}, +}; //! Sony Tag 9402 Sony2Fp (FocusPosition) constexpr TagInfo SonyMakerNote::tagInfoFp_[] = { @@ -1873,7 +2038,8 @@ constexpr TagInfo SonyMakerNote::tagInfoSonyMisc1_[] = { IfdId::sonyMisc1Id, SectionId::makerTags, signedByte, -1, printSonyMisc1CameraTemperature}, // End of list marker {0xffff, "(UnknownSonyMisc1Tag)", "(UnknownSonyMisc1Tag)", "(UnknownSonyMisc1Tag)", IfdId::sonyMisc1Id, - SectionId::makerTags, unsignedByte, -1, printValue}}; + SectionId::makerTags, unsignedByte, -1, printValue}, +}; const TagInfo* SonyMakerNote::tagListSonyMisc1() { return tagInfoSonyMisc1_; @@ -1892,39 +2058,41 @@ std::ostream& SonyMakerNote::printSonyMisc1CameraTemperature(std::ostream& os, c } //! Lookup table to translate Sony Exposure Program 3 values to readable labels -constexpr TagDetails sonyExposureProgram3[] = {{0, N_("Program AE")}, - {1, N_("Aperture-priority AE")}, - {2, N_("Shutter speed priority AE")}, - {3, N_("Manual")}, - {4, N_("Auto")}, - {5, N_("iAuto")}, - {6, N_("Superior Auto")}, - {7, N_("iAuto+")}, - {8, N_("Portrait")}, - {9, N_("Landscape")}, - {10, N_("Twilight")}, - {11, N_("Twilight Portrait")}, - {12, N_("Sunset")}, - {14, N_("Action (High speed)")}, - {16, N_("Sports")}, - {17, N_("Handheld Night Shot")}, - {18, N_("Anti Motion Blur")}, - {19, N_("High Sensitivity")}, - {21, N_("Beach")}, - {22, N_("Snow")}, - {23, N_("Fireworks")}, - {26, N_("Underwater")}, - {27, N_("Gourmet")}, - {28, N_("Pet")}, - {29, N_("Macro")}, - {30, N_("Backlight Correction HDR")}, - {33, N_("Sweep Panorama")}, - {36, N_("Background Defocus")}, - {37, N_("Soft Skin")}, - {42, N_("3D Image")}, - {43, N_("Cont. Priority AE")}, - {45, N_("Document")}, - {46, N_("Party")}}; +constexpr TagDetails sonyExposureProgram3[] = { + {0, N_("Program AE")}, + {1, N_("Aperture-priority AE")}, + {2, N_("Shutter speed priority AE")}, + {3, N_("Manual")}, + {4, N_("Auto")}, + {5, N_("iAuto")}, + {6, N_("Superior Auto")}, + {7, N_("iAuto+")}, + {8, N_("Portrait")}, + {9, N_("Landscape")}, + {10, N_("Twilight")}, + {11, N_("Twilight Portrait")}, + {12, N_("Sunset")}, + {14, N_("Action (High speed)")}, + {16, N_("Sports")}, + {17, N_("Handheld Night Shot")}, + {18, N_("Anti Motion Blur")}, + {19, N_("High Sensitivity")}, + {21, N_("Beach")}, + {22, N_("Snow")}, + {23, N_("Fireworks")}, + {26, N_("Underwater")}, + {27, N_("Gourmet")}, + {28, N_("Pet")}, + {29, N_("Macro")}, + {30, N_("Backlight Correction HDR")}, + {33, N_("Sweep Panorama")}, + {36, N_("Background Defocus")}, + {37, N_("Soft Skin")}, + {42, N_("3D Image")}, + {43, N_("Cont. Priority AE")}, + {45, N_("Document")}, + {46, N_("Party")}, +}; //! Sony Tag 9404b SonyMisc2b tags constexpr TagInfo SonyMakerNote::tagInfoSonyMisc2b_[] = { @@ -1938,7 +2106,8 @@ constexpr TagInfo SonyMakerNote::tagInfoSonyMisc2b_[] = { unsignedByte, -1, printSonyMisc2bFocusPosition2}, // End of list marker {0xffff, "(UnknownSonyMisc2bTag)", "(Unknown SonyMisc2b tag)", "(Unknown SonyMisc2b tag)", IfdId::sonyMisc2bId, - SectionId::makerTags, unsignedByte, -1, printValue}}; + SectionId::makerTags, unsignedByte, -1, printValue}, +}; const TagInfo* SonyMakerNote::tagListSonyMisc2b() { return tagInfoSonyMisc2b_; @@ -1987,36 +2156,49 @@ std::ostream& SonyMakerNote::printSonyMisc2bFocusPosition2(std::ostream& os, con } //! Lookup table to translate Sony camera SonyMisc3c sequence length 1 values to readable labels -constexpr TagDetails sonyMisc3cSequenceLength1[] = {{0, N_("Continuous")}, - {1, N_("1 shot")}, - {2, N_("2 shots")}, - {3, N_("3 shots")}, - {4, N_("4 shots")}, - {5, N_("5 shots")}, - {6, N_("6 shots")}, - {7, N_("7 shots")}, - {9, N_("9 shots")}, - {10, N_("10 shots")}, - {12, N_("12 shots")}, - {16, N_("16 shots")}, - {100, N_("Continuous - iSweep Panorama")}, - {200, N_("Continuous - Sweep Panorama")}}; +constexpr TagDetails sonyMisc3cSequenceLength1[] = { + {0, N_("Continuous")}, + {1, N_("1 shot")}, + {2, N_("2 shots")}, + {3, N_("3 shots")}, + {4, N_("4 shots")}, + {5, N_("5 shots")}, + {6, N_("6 shots")}, + {7, N_("7 shots")}, + {9, N_("9 shots")}, + {10, N_("10 shots")}, + {12, N_("12 shots")}, + {16, N_("16 shots")}, + {100, N_("Continuous - iSweep Panorama")}, + {200, N_("Continuous - Sweep Panorama")}, +}; //! Lookup table to translate Sony camera SonyMisc3c sequence length 2 values to readable labels -constexpr TagDetails sonyMisc3cSequenceLength2[] = {{0, N_("Continuous")}, {1, N_("1 file")}, {2, N_("2 files")}, - {3, N_("3 files")}, {5, N_("5 files")}, {7, N_("7 files")}, - {9, N_("9 files")}, {10, N_("10 files")}}; +constexpr TagDetails sonyMisc3cSequenceLength2[] = { + {0, N_("Continuous")}, {1, N_("1 file")}, {2, N_("2 files")}, {3, N_("3 files")}, + {5, N_("5 files")}, {7, N_("7 files")}, {9, N_("9 files")}, {10, N_("10 files")}, +}; //! Lookup table to translate Sony camera SonyMisc3c, camera orientation values to readable labels constexpr TagDetails sonyMisc3cCameraOrientation[] = { - {1, N_("Horizontal (normal)")}, {3, N_("Rotate 180°")}, {6, N_("Rotate 90° CW")}, {8, N_("Rotate 270° CW")}}; + {1, N_("Horizontal (normal)")}, + {3, N_("Rotate 180°")}, + {6, N_("Rotate 90° CW")}, + {8, N_("Rotate 270° CW")}, +}; //! Lookup table to translate SonyMisc3c Quality2 (a) values to readable labels constexpr TagDetails sonyMisc3cQuality2a[] = { - {1, "JPEG"}, {2, "Raw"}, {3, "Raw + JPEG"}, {4, "HEIF"}, {6, "Raw + HEIF"}}; + {1, "JPEG"}, {2, "Raw"}, {3, "Raw + JPEG"}, {4, "HEIF"}, {6, "Raw + HEIF"}, +}; //! Lookup table to translate SonyMisc3c Quality2 (b) values to readable labels -constexpr TagDetails sonyMisc3cQuality2b[] = {{0, "JPEG"}, {1, "Raw"}, {2, "Raw + JPEG"}, {3, "Raw + MPO"}}; +constexpr TagDetails sonyMisc3cQuality2b[] = { + {0, "JPEG"}, + {1, "Raw"}, + {2, "Raw + JPEG"}, + {3, "Raw + MPO"}, +}; //! SonyMisc3c tags (Tag 9400c) constexpr TagInfo SonyMakerNote::tagInfoSonyMisc3c_[] = { @@ -2179,7 +2361,8 @@ constexpr TagInfo SonyMakerNote::tagInfoSonySInfo1_[] = { // TODO: Add FaceInfo1 (72) and FaceInfo2 (94) which are sub-groups of tags. // End of list marker {0xffff, "(UnknownsonySInfo1Tag)", "(Unknown SonySInfo1 Tag)", "(Unknown SonySInfo1 Tag)", IfdId::sonySInfo1Id, - SectionId::makerTags, unsignedByte, -1, printValue}}; + SectionId::makerTags, unsignedByte, -1, printValue}, +}; const TagInfo* SonyMakerNote::tagListSonySInfo1() { return tagInfoSonySInfo1_; diff --git a/src/tags_int.cpp b/src/tags_int.cpp index 59f91d2552..be87a12a78 100644 --- a/src/tags_int.cpp +++ b/src/tags_int.cpp @@ -166,10 +166,15 @@ constexpr GroupInfo groupInfo[] = { {IfdId::sonyMisc3cId, "Makernote", "SonyMisc3c", SonyMakerNote::tagListSonyMisc3c}, {IfdId::sonySInfo1Id, "Makernote", "SonySInfo1", SonyMakerNote::tagListSonySInfo1}, {IfdId::sony2010eId, "Makernote", "Sony2010e", SonyMakerNote::tagList2010e}, - {IfdId::lastId, "(Last IFD info)", "(Last IFD item)", nullptr}}; + {IfdId::lastId, "(Last IFD info)", "(Last IFD item)", nullptr}, +}; //! Units for measuring X and Y resolution, tags 0x0128, 0xa210 -constexpr TagDetails exifUnit[] = {{1, N_("none")}, {2, N_("inch")}, {3, N_("cm")}}; +constexpr TagDetails exifUnit[] = { + {1, N_("none")}, + {2, N_("inch")}, + {3, N_("cm")}, +}; //! Orientation, tag 0x0112 constexpr TagDetails exifOrientation[] = { @@ -179,7 +184,10 @@ constexpr TagDetails exifOrientation[] = { }; //! PlanarConfiguration, tag 0x011c -constexpr TagDetails exifPlanarConfiguration[] = {{1, N_("Chunky")}, {2, N_("Planar")}}; +constexpr TagDetails exifPlanarConfiguration[] = { + {1, N_("Chunky")}, + {2, N_("Planar")}, +}; //! Predictor, tag 0x013d constexpr TagDetails exifPredictor[] = { @@ -193,7 +201,10 @@ constexpr TagDetails exifPredictor[] = { }; //! InkSet, tag 0x014c -constexpr TagDetails exifInkSet[] = {{1, N_("CMYK")}, {2, N_("not CMYK")}}; +constexpr TagDetails exifInkSet[] = { + {1, N_("CMYK")}, + {2, N_("not CMYK")}, +}; //! NewSubfileType, TIFF tag 0x00fe - this is actually a bitmask constexpr TagDetails exifNewSubfileType[] = { @@ -213,44 +224,48 @@ constexpr TagDetails exifNewSubfileType[] = { }; //! SubfileType, TIFF tag 0x00ff -constexpr TagDetails exifSubfileType[] = {{1, N_("Full-resolution image data")}, - {2, N_("Reduced-resolution image data")}, - {3, N_("A single page of a multi-page image")}}; +constexpr TagDetails exifSubfileType[] = { + {1, N_("Full-resolution image data")}, + {2, N_("Reduced-resolution image data")}, + {3, N_("A single page of a multi-page image")}, +}; //! Compression, tag 0x0103 -constexpr TagDetails exifCompression[] = {{1, N_("Uncompressed")}, - {2, N_("CCITT RLE")}, - {3, N_("T4/Group 3 Fax")}, - {4, N_("T6/Group 4 Fax")}, - {5, N_("LZW")}, - {6, N_("JPEG (old-style)")}, - {7, N_("JPEG")}, - {8, N_("Adobe Deflate")}, - {9, N_("JBIG B&W")}, - {10, N_("JBIG Color")}, - {32766, N_("Next 2-bits RLE")}, - {32767, N_("Sony ARW Compressed")}, - {32769, N_("Epson ERF Compressed")}, - {32770, N_("Samsung SRW Compressed")}, - {32771, N_("CCITT RLE 1-word")}, - {32773, N_("PackBits (Macintosh RLE)")}, - {32809, N_("Thunderscan RLE")}, - {32895, N_("IT8 CT Padding")}, - {32896, N_("IT8 Linework RLE")}, - {32897, N_("IT8 Monochrome Picture")}, - {32898, N_("IT8 Binary Lineart")}, - {32908, N_("Pixar Film (10-bits LZW)")}, - {32909, N_("Pixar Log (11-bits ZIP)")}, - {32946, N_("Pixar Deflate")}, - {32947, N_("Kodak DCS Encoding")}, - {34661, N_("ISO JBIG")}, - {34676, N_("SGI Log Luminance RLE")}, - {34677, N_("SGI Log 24-bits packed")}, - {34712, N_("Leadtools JPEG 2000")}, - {34713, N_("Nikon NEF Compressed")}, - {34892, N_("JPEG (lossy)")}, // DNG 1.4 - {65000, N_("Kodak DCR Compressed")}, - {65535, N_("Pentax PEF Compressed")}}; +constexpr TagDetails exifCompression[] = { + {1, N_("Uncompressed")}, + {2, N_("CCITT RLE")}, + {3, N_("T4/Group 3 Fax")}, + {4, N_("T6/Group 4 Fax")}, + {5, N_("LZW")}, + {6, N_("JPEG (old-style)")}, + {7, N_("JPEG")}, + {8, N_("Adobe Deflate")}, + {9, N_("JBIG B&W")}, + {10, N_("JBIG Color")}, + {32766, N_("Next 2-bits RLE")}, + {32767, N_("Sony ARW Compressed")}, + {32769, N_("Epson ERF Compressed")}, + {32770, N_("Samsung SRW Compressed")}, + {32771, N_("CCITT RLE 1-word")}, + {32773, N_("PackBits (Macintosh RLE)")}, + {32809, N_("Thunderscan RLE")}, + {32895, N_("IT8 CT Padding")}, + {32896, N_("IT8 Linework RLE")}, + {32897, N_("IT8 Monochrome Picture")}, + {32898, N_("IT8 Binary Lineart")}, + {32908, N_("Pixar Film (10-bits LZW)")}, + {32909, N_("Pixar Log (11-bits ZIP)")}, + {32946, N_("Pixar Deflate")}, + {32947, N_("Kodak DCS Encoding")}, + {34661, N_("ISO JBIG")}, + {34676, N_("SGI Log Luminance RLE")}, + {34677, N_("SGI Log 24-bits packed")}, + {34712, N_("Leadtools JPEG 2000")}, + {34713, N_("Nikon NEF Compressed")}, + {34892, N_("JPEG (lossy)")}, // DNG 1.4 + {65000, N_("Kodak DCR Compressed")}, + {65535, N_("Pentax PEF Compressed")}, +}; //! PhotometricInterpretation, tag 0x0106 constexpr TagDetails exifPhotometricInterpretation[] = { @@ -268,93 +283,103 @@ constexpr TagDetails exifPhotometricInterpretation[] = { {32844, N_("Pixar LogL")}, {32845, N_("Pixar LogLuv")}, {34892, N_("Linear Raw")}, - {51177, N_("Depth Map")}, // DNG 1.5 - {52527, N_("Semantic Mask")} // DNG 1.6 + {51177, N_("Depth Map")}, // DNG 1.5 + {52527, N_("Semantic Mask")}, // DNG 1.6 }; //! Thresholding, tag 0x0107 -constexpr TagDetails exifThresholding[] = {{1, N_("No dithering or halftoning")}, - {2, N_("Ordered dither or halftone technique")}, - {3, N_("Randomized process")}}; +constexpr TagDetails exifThresholding[] = { + {1, N_("No dithering or halftoning")}, + {2, N_("Ordered dither or halftone technique")}, + {3, N_("Randomized process")}, +}; //! SampleFormat, tag 0x0153 constexpr TagDetails exifSampleFormat[] = { - {1, N_("Unsigned integer data")}, - {2, N_("Two's complement signed integer data")}, - {3, N_("IEEE floating point data")}, - {4, N_("Undefined data format")}, - {4, N_("Undefined data format")} // To silence compiler warning + {1, N_("Unsigned integer data")}, {2, N_("Two's complement signed integer data")}, + {3, N_("IEEE floating point data")}, {4, N_("Undefined data format")}, + {4, N_("Undefined data format")}, // To silence compiler warning }; //! Indexed, tag 0x015a -constexpr TagDetails exifIndexed[] = {{0, N_("Not indexed")}, {1, N_("Indexed")}}; +constexpr TagDetails exifIndexed[] = { + {0, N_("Not indexed")}, + {1, N_("Indexed")}, +}; //! exifJpegLosslessPredictor, tag 0x0205 -constexpr TagDetails exifJpegLosslessPredictor[] = {{1, N_("A")}, {2, N_("B")}, {3, N_("C")}, - {4, N_("A+B-C")}, {5, N_("A+((B-C)/2)")}, {6, N_("B+((A-C)/2)")}, - {7, N_("(A+B)/2")}}; +constexpr TagDetails exifJpegLosslessPredictor[] = { + {1, N_("A")}, {2, N_("B")}, {3, N_("C")}, {4, N_("A+B-C")}, + {5, N_("A+((B-C)/2)")}, {6, N_("B+((A-C)/2)")}, {7, N_("(A+B)/2")}, +}; //! LightSource, tag 0x9208 -constexpr TagDetails exifLightSource[] = {{0, N_("Unknown")}, - {1, N_("Daylight")}, - {2, N_("Fluorescent")}, - {3, N_("Tungsten (incandescent light)")}, - {4, N_("Flash")}, - {9, N_("Fine weather")}, - {10, N_("Cloudy weather")}, - {11, N_("Shade")}, - {12, N_("Daylight fluorescent (D 5700 - 7100K)")}, - {13, N_("Day white fluorescent (N 4600 - 5400K)")}, - {14, N_("Cool white fluorescent (W 3900 - 4500K)")}, - {15, N_("White fluorescent (WW 3200 - 3700K)")}, - {17, N_("Standard light A")}, - {18, N_("Standard light B")}, - {19, N_("Standard light C")}, - {20, N_("D55")}, - {21, N_("D65")}, - {22, N_("D75")}, - {23, N_("D50")}, - {24, N_("ISO studio tungsten")}, - {255, N_("Other light source")}}; +constexpr TagDetails exifLightSource[] = { + {0, N_("Unknown")}, + {1, N_("Daylight")}, + {2, N_("Fluorescent")}, + {3, N_("Tungsten (incandescent light)")}, + {4, N_("Flash")}, + {9, N_("Fine weather")}, + {10, N_("Cloudy weather")}, + {11, N_("Shade")}, + {12, N_("Daylight fluorescent (D 5700 - 7100K)")}, + {13, N_("Day white fluorescent (N 4600 - 5400K)")}, + {14, N_("Cool white fluorescent (W 3900 - 4500K)")}, + {15, N_("White fluorescent (WW 3200 - 3700K)")}, + {17, N_("Standard light A")}, + {18, N_("Standard light B")}, + {19, N_("Standard light C")}, + {20, N_("D55")}, + {21, N_("D65")}, + {22, N_("D75")}, + {23, N_("D50")}, + {24, N_("ISO studio tungsten")}, + {255, N_("Other light source")}, +}; //! Flash, Exif tag 0x9209 -constexpr TagDetails exifFlash[] = {{0x00, N_("No flash")}, - {0x01, N_("Fired")}, - {0x05, N_("Fired, return light not detected")}, - {0x07, N_("Fired, return light detected")}, - {0x08, N_("Yes, did not fire")}, - {0x09, N_("Yes, compulsory")}, - {0x0d, N_("Yes, compulsory, return light not detected")}, - {0x0f, N_("Yes, compulsory, return light detected")}, - {0x10, N_("No, compulsory")}, - {0x14, N_("No, did not fire, return light not detected")}, - {0x18, N_("No, auto")}, - {0x19, N_("Yes, auto")}, - {0x1d, N_("Yes, auto, return light not detected")}, - {0x1f, N_("Yes, auto, return light detected")}, - {0x20, N_("No flash function")}, - {0x20, N_("No, no flash function")}, - {0x41, N_("Yes, red-eye reduction")}, - {0x45, N_("Yes, red-eye reduction, return light not detected")}, - {0x47, N_("Yes, red-eye reduction, return light detected")}, - {0x49, N_("Yes, compulsory, red-eye reduction")}, - {0x4d, N_("Yes, compulsory, red-eye reduction, return light not detected")}, - {0x4f, N_("Yes, compulsory, red-eye reduction, return light detected")}, - {0x50, N_("No, red-eye reduction")}, - {0x58, N_("No, auto, red-eye reduction")}, - {0x59, N_("Yes, auto, red-eye reduction")}, - {0x5d, N_("Yes, auto, red-eye reduction, return light not detected")}, - {0x5f, N_("Yes, auto, red-eye reduction, return light detected")}}; +constexpr TagDetails exifFlash[] = { + {0x00, N_("No flash")}, + {0x01, N_("Fired")}, + {0x05, N_("Fired, return light not detected")}, + {0x07, N_("Fired, return light detected")}, + {0x08, N_("Yes, did not fire")}, + {0x09, N_("Yes, compulsory")}, + {0x0d, N_("Yes, compulsory, return light not detected")}, + {0x0f, N_("Yes, compulsory, return light detected")}, + {0x10, N_("No, compulsory")}, + {0x14, N_("No, did not fire, return light not detected")}, + {0x18, N_("No, auto")}, + {0x19, N_("Yes, auto")}, + {0x1d, N_("Yes, auto, return light not detected")}, + {0x1f, N_("Yes, auto, return light detected")}, + {0x20, N_("No flash function")}, + {0x20, N_("No, no flash function")}, + {0x41, N_("Yes, red-eye reduction")}, + {0x45, N_("Yes, red-eye reduction, return light not detected")}, + {0x47, N_("Yes, red-eye reduction, return light detected")}, + {0x49, N_("Yes, compulsory, red-eye reduction")}, + {0x4d, N_("Yes, compulsory, red-eye reduction, return light not detected")}, + {0x4f, N_("Yes, compulsory, red-eye reduction, return light detected")}, + {0x50, N_("No, red-eye reduction")}, + {0x58, N_("No, auto, red-eye reduction")}, + {0x59, N_("Yes, auto, red-eye reduction")}, + {0x5d, N_("Yes, auto, red-eye reduction, return light not detected")}, + {0x5f, N_("Yes, auto, red-eye reduction, return light detected")}, +}; //! FocalPlaneResolutionUnit, TIFF/EP tag 0x9210 constexpr TagDetails tiffFocalPlaneResolutionUnit[] = { - {1, N_("inch")}, {2, N_("meter")}, {3, N_("centimeter")}, {4, N_("millimeter")}, {5, N_("micrometer")}}; + {1, N_("inch")}, {2, N_("meter")}, {3, N_("centimeter")}, {4, N_("millimeter")}, {5, N_("micrometer")}, +}; //! SensingMethod, TIFF/EP tag 0x9217 constexpr TagDetails tiffSensingMethod[] = { {0, N_("Undefined")}, {1, N_("Monochrome area")}, {2, N_("One-chip color area")}, {3, N_("Two-chip color area")}, {4, N_("Three-chip color area")}, {5, N_("Color sequential area")}, - {6, N_("Monochrome linear")}, {7, N_("Trilinear sensor")}, {8, N_("Color sequential linear")}}; + {6, N_("Monochrome linear")}, {7, N_("Trilinear sensor")}, {8, N_("Color sequential linear")}, +}; //! CFALayout, DNG tag 0xc617 constexpr TagDetails dngCfaLayout[] = { @@ -363,41 +388,68 @@ constexpr TagDetails dngCfaLayout[] = { {3, N_("Staggered layout B: even columns are offset up by 1/2 row")}, {4, N_("Staggered layout C: even rows are offset right by 1/2 column")}, {5, N_("Staggered layout D: even rows are offset left by 1/2 column")}, - {6, N_("Staggered layout E: even rows are offset up by 1/2, even columns left by 1/2")}, // DNG 1.3 - {7, N_("Staggered layout F: even rows are offset up by 1/2, even columns right by 1/2")}, // DNG 1.3 - {8, N_("Staggered layout G: even rows are offset down by 1/2, even columns left by 1/2")}, // DNG 1.3 - {9, N_("Staggered layout H: even rows are offset down by 1/2, even columns right by 1/2")} // DNG 1.3 + {6, N_("Staggered layout E: even rows are offset up by 1/2, even columns left by 1/2")}, // DNG 1.3 + {7, N_("Staggered layout F: even rows are offset up by 1/2, even columns right by 1/2")}, // DNG 1.3 + {8, N_("Staggered layout G: even rows are offset down by 1/2, even columns left by 1/2")}, // DNG 1.3 + {9, N_("Staggered layout H: even rows are offset down by 1/2, even columns right by 1/2")}, // DNG 1.3 }; //! MakerNoteSafety, DNG tag 0xc635 -constexpr TagDetails dngMakerNoteSafety[] = {{0, N_("Unsafe")}, {1, N_("Safe")}}; +constexpr TagDetails dngMakerNoteSafety[] = { + {0, N_("Unsafe")}, + {1, N_("Safe")}, +}; //! ColorimetricReference, DNG 1.2 tag 0xc6bf -constexpr TagDetails dngColorimetricReference[] = {{0, N_("XYZ values are scene-referred")}, - {1, N_("XYZ values are output-referred")}}; +constexpr TagDetails dngColorimetricReference[] = { + {0, N_("XYZ values are scene-referred")}, + {1, N_("XYZ values are output-referred")}, +}; //! ProfileEmbedPolicy, DNG 1.2 tag 0xc6fd constexpr TagDetails dngProfileEmbedPolicy[] = { - {0, N_("Allow copying")}, {1, N_("Embed if used")}, {2, N_("Embed never")}, {3, N_("No restrictions")}}; + {0, N_("Allow copying")}, + {1, N_("Embed if used")}, + {2, N_("Embed never")}, + {3, N_("No restrictions")}, +}; //! PreviewColorSpace, DNG 1.2 tag 0xc71a constexpr TagDetails dngPreviewColorSpace[] = { - {0, N_("Unknown")}, {1, N_("Gray Gamma 2.2")}, {2, N_("sRGB")}, {2, N_("Adobe RGB")}, {4, N_("ProPhoto RGB")}}; + {0, N_("Unknown")}, {1, N_("Gray Gamma 2.2")}, {2, N_("sRGB")}, {2, N_("Adobe RGB")}, {4, N_("ProPhoto RGB")}, +}; //! ProfileEncoding, DNG 1.4 tags 0xc7a3, 0xc7a4 -constexpr TagDetails dngProfileEncoding[] = {{0, N_("Linear")}, {1, N_("sRGB")}}; +constexpr TagDetails dngProfileEncoding[] = { + {0, N_("Linear")}, + {1, N_("sRGB")}, +}; //! DefaultBlackRender, DNG 1.4 tag 0xc7a6 -constexpr TagDetails dngDefaultBlackRender[] = {{0, N_("Auto")}, {1, N_("None")}}; +constexpr TagDetails dngDefaultBlackRender[] = { + {0, N_("Auto")}, + {1, N_("None")}, +}; //! DepthFormat, DNG 1.5 tag 0xc7e9 -constexpr TagDetails dngDepthFormat[] = {{0, N_("Unknown")}, {1, N_("Linear")}, {2, N_("Inverse")}}; +constexpr TagDetails dngDepthFormat[] = { + {0, N_("Unknown")}, + {1, N_("Linear")}, + {2, N_("Inverse")}, +}; //! DepthUnits, DNG 1.5 tag 0xc7ec -constexpr TagDetails dngDepthUnits[] = {{0, N_("Unknown")}, {1, N_("meters")}}; +constexpr TagDetails dngDepthUnits[] = { + {0, N_("Unknown")}, + {1, N_("meters")}, +}; //! DepthMeasureType, DNG 1.5 tag 0xc7ed -constexpr TagDetails dngDepthMeasureType[] = {{0, N_("Unknown")}, {1, N_("Optical axis")}, {2, N_("Optical ray")}}; +constexpr TagDetails dngDepthMeasureType[] = { + {0, N_("Unknown")}, + {1, N_("Optical axis")}, + {2, N_("Optical ray")}, +}; //! Base IFD Tags (IFD0 and IFD1) constexpr TagInfo ifdTagInfo[] = { @@ -1668,7 +1720,11 @@ const TagInfo* ifdTagList() { //! CompositeImage, tag 0xa460 constexpr TagDetails exifCompositeImage[] = { - {0, N_("Unknown")}, {1, N_("NonComposite")}, {2, N_("GeneralComposite")}, {3, N_("CompositeCapturedWhenShooting")}}; + {0, N_("Unknown")}, + {1, N_("NonComposite")}, + {2, N_("GeneralComposite")}, + {3, N_("CompositeCapturedWhenShooting")}, +}; // Exif IFD Tags constexpr TagInfo exifTagInfo[] = { @@ -2062,32 +2118,60 @@ const TagInfo* exifTagList() { } //! GPS latitude reference, tag 0x0001; also GPSDestLatitudeRef, tag 0x0013 -constexpr TagDetails exifGPSLatitudeRef[] = {{78, N_("North")}, {83, N_("South")}}; +constexpr TagDetails exifGPSLatitudeRef[] = { + {78, N_("North")}, + {83, N_("South")}, +}; //! GPS longitude reference, tag 0x0003; also GPSDestLongitudeRef, tag 0x0015 -constexpr TagDetails exifGPSLongitudeRef[] = {{69, N_("East")}, {87, N_("West")}}; +constexpr TagDetails exifGPSLongitudeRef[] = { + {69, N_("East")}, + {87, N_("West")}, +}; //! GPS altitude reference, tag 0x0005 -constexpr TagDetails exifGPSAltitudeRef[] = {{0, N_("Above sea level")}, {1, N_("Below sea level")}}; +constexpr TagDetails exifGPSAltitudeRef[] = { + {0, N_("Above sea level")}, + {1, N_("Below sea level")}, +}; //! GPS status, tag 0x0009 -constexpr TagDetails exifGPSStatus[] = {{'A', N_("Measurement in progress")}, {'V', N_("Measurement interrupted")}}; +constexpr TagDetails exifGPSStatus[] = { + {'A', N_("Measurement in progress")}, + {'V', N_("Measurement interrupted")}, +}; //! GPS measurement mode, tag 0x000a -constexpr TagDetails exifGPSMeasureMode[] = {{'2', N_("2-dimensional measurement")}, - {'3', N_("3-dimensional measurement")}}; +constexpr TagDetails exifGPSMeasureMode[] = { + {'2', N_("2-dimensional measurement")}, + {'3', N_("3-dimensional measurement")}, +}; //! GPS speed reference, tag 0x000c -constexpr TagDetails exifGPSSpeedRef[] = {{'K', N_("km/h")}, {'M', N_("mph")}, {'N', N_("knots")}}; +constexpr TagDetails exifGPSSpeedRef[] = { + {'K', N_("km/h")}, + {'M', N_("mph")}, + {'N', N_("knots")}, +}; //! GPS direction reference, tags 0x000e, 0x0010, 0x0017 -constexpr TagDetails exifGPSDirRef[] = {{'T', N_("True direction")}, {'M', N_("Magnetic direction")}}; +constexpr TagDetails exifGPSDirRef[] = { + {'T', N_("True direction")}, + {'M', N_("Magnetic direction")}, +}; //! GPS destination distance reference, tag 0x0019 -constexpr TagDetails exifGPSDestDistanceRef[] = {{'K', N_("km")}, {'M', N_("miles")}, {'N', N_("nautical miles")}}; +constexpr TagDetails exifGPSDestDistanceRef[] = { + {'K', N_("km")}, + {'M', N_("miles")}, + {'N', N_("nautical miles")}, +}; //! GPS differential correction, tag 0x001e -constexpr TagDetails exifGPSDifferential[] = {{0, N_("Without correction")}, {1, N_("Correction applied")}}; +constexpr TagDetails exifGPSDifferential[] = { + {0, N_("Without correction")}, + {1, N_("Correction applied")}, +}; // GPS Info Tags constexpr TagInfo gpsTagInfo[] = { @@ -2746,7 +2830,10 @@ std::ostream& print0x0112(std::ostream& os, const Value& value, const ExifData* } //! YCbCrPositioning, tag 0x0213 -constexpr TagDetails exifYCbCrPositioning[] = {{1, N_("Centered")}, {2, N_("Co-sited")}}; +constexpr TagDetails exifYCbCrPositioning[] = { + {1, N_("Centered")}, + {2, N_("Co-sited")}, +}; std::ostream& print0x0213(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(exifYCbCrPositioning)(os, value, metadata); } @@ -2811,7 +2898,8 @@ std::ostream& print0x829d(std::ostream& os, const Value& value, const ExifData*) constexpr TagDetails exifExposureProgram[] = { {0, N_("Not defined")}, {1, N_("Manual")}, {2, N_("Auto")}, {3, N_("Aperture priority")}, {4, N_("Shutter priority")}, {5, N_("Creative program")}, - {6, N_("Action program")}, {7, N_("Portrait mode")}, {8, N_("Landscape mode")}}; + {6, N_("Action program")}, {7, N_("Portrait mode")}, {8, N_("Landscape mode")}, +}; std::ostream& print0x8822(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(exifExposureProgram)(os, value, metadata); @@ -2952,7 +3040,8 @@ std::ostream& print0x920a(std::ostream& os, const Value& value, const ExifData*) constexpr TagDetails exifColorSpace[] = { {1, N_("sRGB")}, {2, N_("Adobe RGB")}, // Not defined to Exif 2.2 spec. But used by a lot of cameras. - {0xffff, N_("Uncalibrated")}}; + {0xffff, N_("Uncalibrated")}, +}; std::ostream& print0xa001(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(exifColorSpace)(os, value, metadata); @@ -2985,28 +3074,40 @@ std::ostream& print0xa300(std::ostream& os, const Value& value, const ExifData* } //! SceneType, tag 0xa301 -constexpr TagDetails exifSceneType[] = {{1, N_("Directly photographed")}}; +constexpr TagDetails exifSceneType[] = { + {1, N_("Directly photographed")}, +}; std::ostream& print0xa301(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(exifSceneType)(os, value, metadata); } //! CustomRendered, tag 0xa401 -constexpr TagDetails exifCustomRendered[] = {{0, N_("Normal process")}, {1, N_("Custom process")}}; +constexpr TagDetails exifCustomRendered[] = { + {0, N_("Normal process")}, + {1, N_("Custom process")}, +}; std::ostream& print0xa401(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(exifCustomRendered)(os, value, metadata); } //! ExposureMode, tag 0xa402 -constexpr TagDetails exifExposureMode[] = {{0, N_("Auto")}, {1, N_("Manual")}, {2, N_("Auto bracket")}}; +constexpr TagDetails exifExposureMode[] = { + {0, N_("Auto")}, + {1, N_("Manual")}, + {2, N_("Auto bracket")}, +}; std::ostream& print0xa402(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(exifExposureMode)(os, value, metadata); } //! WhiteBalance, tag 0xa403 -constexpr TagDetails exifWhiteBalance[] = {{0, N_("Auto")}, {1, N_("Manual")}}; +constexpr TagDetails exifWhiteBalance[] = { + {0, N_("Auto")}, + {1, N_("Manual")}, +}; std::ostream& print0xa403(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(exifWhiteBalance)(os, value, metadata); @@ -3049,18 +3150,21 @@ std::ostream& print0xa406(std::ostream& os, const Value& value, const ExifData* } //! GainControl, tag 0xa407 -constexpr TagDetails exifGainControl[] = {{0, N_("None")}, - {1, N_("Low gain up")}, - {2, N_("High gain up")}, - {3, N_("Low gain down")}, - {4, N_("High gain down")}}; +constexpr TagDetails exifGainControl[] = { + {0, N_("None")}, {1, N_("Low gain up")}, {2, N_("High gain up")}, + {3, N_("Low gain down")}, {4, N_("High gain down")}, +}; std::ostream& print0xa407(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(exifGainControl)(os, value, metadata); } //! Saturation, tag 0xa409 -constexpr TagDetails exifSaturation[] = {{0, N_("Normal")}, {1, N_("Low")}, {2, N_("High")}}; +constexpr TagDetails exifSaturation[] = { + {0, N_("Normal")}, + {1, N_("Low")}, + {2, N_("High")}, +}; std::ostream& print0xa409(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(exifSaturation)(os, value, metadata); @@ -3084,7 +3188,11 @@ std::ostream& printGPSDirRef(std::ostream& os, const Value& value, const ExifDat } //! Contrast, tag 0xa408 and Sharpness, tag 0xa40a -constexpr TagDetails exifNormalSoftHard[] = {{0, N_("Normal")}, {1, N_("Soft")}, {2, N_("Hard")}}; +constexpr TagDetails exifNormalSoftHard[] = { + {0, N_("Normal")}, + {1, N_("Soft")}, + {2, N_("Hard")}, +}; std::ostream& printNormalSoftHard(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(exifNormalSoftHard)(os, value, metadata); diff --git a/src/tiffimage_int.cpp b/src/tiffimage_int.cpp index 31f5f8982a..5b351503c9 100644 --- a/src/tiffimage_int.cpp +++ b/src/tiffimage_int.cpp @@ -520,14 +520,16 @@ constexpr ArrayDef nikonFl3Def[] = { {16, ttUnsignedByte, 1}, // FlashColorFilter }; //! Nikon Flash Info 6 (0106) binary array - configuration -constexpr ArrayCfg nikonFl6Cfg = {IfdId::nikonFl6Id, // Group for the elements - bigEndian, // Use byte order from parent - ttUndefined, // Type for array entry - notEncrypted, // Not encrypted - false, // No size element - true, // Write all tags - true, // Concatenate gaps - {0, ttUnsignedByte, 1}}; +constexpr ArrayCfg nikonFl6Cfg = { + IfdId::nikonFl6Id, // Group for the elements + bigEndian, // Use byte order from parent + ttUndefined, // Type for array entry + notEncrypted, // Not encrypted + false, // No size element + true, // Write all tags + true, // Concatenate gaps + {0, ttUnsignedByte, 1}, +}; //! Nikon Flash Info 6 (0106) binary array - definition constexpr ArrayDef nikonFl6Def[] = { {0, ttUndefined, 4}, // Version @@ -554,14 +556,16 @@ constexpr ArrayDef nikonFl6Def[] = { {42, ttUnsignedByte, 1}, // FlashGroupCOutput }; //! Nikon Flash Info 7 (0107 and 0108) binary array - configuration -constexpr ArrayCfg nikonFl7Cfg = {IfdId::nikonFl7Id, // Group for the elements - bigEndian, // Use byte order from parent - ttUndefined, // Type for array entry - notEncrypted, // Not encrypted - false, // No size element - true, // Write all tags - true, // Concatenate gaps - {0, ttUnsignedByte, 1}}; +constexpr ArrayCfg nikonFl7Cfg = { + IfdId::nikonFl7Id, // Group for the elements + bigEndian, // Use byte order from parent + ttUndefined, // Type for array entry + notEncrypted, // Not encrypted + false, // No size element + true, // Write all tags + true, // Concatenate gaps + {0, ttUnsignedByte, 1}, +}; //! Nikon Flash Info 7 (0107 and 0108) binary array - definition constexpr ArrayDef nikonFl7Def[] = { {0, ttUndefined, 4}, // Version @@ -1394,7 +1398,8 @@ const TiffTreeTable TiffCreator::tiffTreeTable_ = { {{Tag::pana, IfdId::ifdIdNotSet}, {IfdId::ifdIdNotSet, Tag::pana}}, {{Tag::pana, IfdId::panaRawId}, {IfdId::ifdIdNotSet, Tag::pana}}, {{Tag::pana, IfdId::exifId}, {IfdId::panaRawId, 0x8769}}, - {{Tag::pana, IfdId::gpsId}, {IfdId::panaRawId, 0x8825}}}; + {{Tag::pana, IfdId::gpsId}, {IfdId::panaRawId, 0x8825}}, +}; /* This table describes the layout of each known TIFF group (including