|
|
@ -65,359 +65,359 @@ namespace Exiv2 {
|
|
|
|
|
|
|
|
|
|
|
|
//! ModelId, tag 0x0010
|
|
|
|
//! ModelId, tag 0x0010
|
|
|
|
constexpr TagDetails canonModelId[] = {
|
|
|
|
constexpr TagDetails canonModelId[] = {
|
|
|
|
{ static_cast<long int>(0x00000811), "EOS M6 Mark II"},
|
|
|
|
{ 0x00000811, "EOS M6 Mark II"},
|
|
|
|
{ static_cast<long int>(0x00000804), "Powershot G5 X Mark II"},
|
|
|
|
{ 0x00000804, "Powershot G5 X Mark II"},
|
|
|
|
{ static_cast<long int>(0x00000805), "PowerShot SX70 HS"},
|
|
|
|
{ 0x00000805, "PowerShot SX70 HS"},
|
|
|
|
{ static_cast<long int>(0x00000808), "PowerShot G7 X Mark III"},
|
|
|
|
{ 0x00000808, "PowerShot G7 X Mark III"},
|
|
|
|
{ static_cast<long int>(0x00000812), "EOS M200"},
|
|
|
|
{ 0x00000812, "EOS M200"},
|
|
|
|
{ static_cast<long int>(0x1010000), "PowerShot A30" },
|
|
|
|
{ 0x1010000, "PowerShot A30" },
|
|
|
|
{ static_cast<long int>(0x1040000), "PowerShot S300 / Digital IXUS 300 / IXY Digital 300" },
|
|
|
|
{ 0x1040000, "PowerShot S300 / Digital IXUS 300 / IXY Digital 300" },
|
|
|
|
{ static_cast<long int>(0x1060000), "PowerShot A20" },
|
|
|
|
{ 0x1060000, "PowerShot A20" },
|
|
|
|
{ static_cast<long int>(0x1080000), "PowerShot A10" },
|
|
|
|
{ 0x1080000, "PowerShot A10" },
|
|
|
|
{ static_cast<long int>(0x1090000), "PowerShot S110 / Digital IXUS v / IXY Digital 200" },
|
|
|
|
{ 0x1090000, "PowerShot S110 / Digital IXUS v / IXY Digital 200" },
|
|
|
|
{ static_cast<long int>(0x1100000), "PowerShot G2" },
|
|
|
|
{ 0x1100000, "PowerShot G2" },
|
|
|
|
{ static_cast<long int>(0x1110000), "PowerShot S40" },
|
|
|
|
{ 0x1110000, "PowerShot S40" },
|
|
|
|
{ static_cast<long int>(0x1120000), "PowerShot S30" },
|
|
|
|
{ 0x1120000, "PowerShot S30" },
|
|
|
|
{ static_cast<long int>(0x1130000), "PowerShot A40" },
|
|
|
|
{ 0x1130000, "PowerShot A40" },
|
|
|
|
{ static_cast<long int>(0x1140000), "EOS D30" },
|
|
|
|
{ 0x1140000, "EOS D30" },
|
|
|
|
{ static_cast<long int>(0x1150000), "PowerShot A100" },
|
|
|
|
{ 0x1150000, "PowerShot A100" },
|
|
|
|
{ static_cast<long int>(0x1160000), "PowerShot S200 / Digital IXUS v2 / IXY Digital 200a" },
|
|
|
|
{ 0x1160000, "PowerShot S200 / Digital IXUS v2 / IXY Digital 200a" },
|
|
|
|
{ static_cast<long int>(0x1170000), "PowerShot A200" },
|
|
|
|
{ 0x1170000, "PowerShot A200" },
|
|
|
|
{ static_cast<long int>(0x1180000), "PowerShot S330 / Digital IXUS 330 / IXY Digital 300a" },
|
|
|
|
{ 0x1180000, "PowerShot S330 / Digital IXUS 330 / IXY Digital 300a" },
|
|
|
|
{ static_cast<long int>(0x1190000), "PowerShot G3" },
|
|
|
|
{ 0x1190000, "PowerShot G3" },
|
|
|
|
{ static_cast<long int>(0x1210000), "PowerShot S45" },
|
|
|
|
{ 0x1210000, "PowerShot S45" },
|
|
|
|
{ static_cast<long int>(0x1230000), "PowerShot SD100 / Digital IXUS II / IXY Digital 30" },
|
|
|
|
{ 0x1230000, "PowerShot SD100 / Digital IXUS II / IXY Digital 30" },
|
|
|
|
{ static_cast<long int>(0x1240000), "PowerShot S230 / Digital IXUS v3 / IXY Digital 320" },
|
|
|
|
{ 0x1240000, "PowerShot S230 / Digital IXUS v3 / IXY Digital 320" },
|
|
|
|
{ static_cast<long int>(0x1250000), "PowerShot A70" },
|
|
|
|
{ 0x1250000, "PowerShot A70" },
|
|
|
|
{ static_cast<long int>(0x1260000), "PowerShot A60" },
|
|
|
|
{ 0x1260000, "PowerShot A60" },
|
|
|
|
{ static_cast<long int>(0x1270000), "PowerShot S400 / Digital IXUS 400 / IXY Digital 400" },
|
|
|
|
{ 0x1270000, "PowerShot S400 / Digital IXUS 400 / IXY Digital 400" },
|
|
|
|
{ static_cast<long int>(0x1290000), "PowerShot G5" },
|
|
|
|
{ 0x1290000, "PowerShot G5" },
|
|
|
|
{ static_cast<long int>(0x1300000), "PowerShot A300" },
|
|
|
|
{ 0x1300000, "PowerShot A300" },
|
|
|
|
{ static_cast<long int>(0x1310000), "PowerShot S50" },
|
|
|
|
{ 0x1310000, "PowerShot S50" },
|
|
|
|
{ static_cast<long int>(0x1340000), "PowerShot A80" },
|
|
|
|
{ 0x1340000, "PowerShot A80" },
|
|
|
|
{ static_cast<long int>(0x1350000), "PowerShot SD10 / Digital IXUS i / IXY Digital L" },
|
|
|
|
{ 0x1350000, "PowerShot SD10 / Digital IXUS i / IXY Digital L" },
|
|
|
|
{ static_cast<long int>(0x1360000), "PowerShot S1 IS" },
|
|
|
|
{ 0x1360000, "PowerShot S1 IS" },
|
|
|
|
{ static_cast<long int>(0x1370000), "PowerShot Pro1" },
|
|
|
|
{ 0x1370000, "PowerShot Pro1" },
|
|
|
|
{ static_cast<long int>(0x1380000), "PowerShot S70" },
|
|
|
|
{ 0x1380000, "PowerShot S70" },
|
|
|
|
{ static_cast<long int>(0x1390000), "PowerShot S60" },
|
|
|
|
{ 0x1390000, "PowerShot S60" },
|
|
|
|
{ static_cast<long int>(0x1400000), "PowerShot G6" },
|
|
|
|
{ 0x1400000, "PowerShot G6" },
|
|
|
|
{ static_cast<long int>(0x1410000), "PowerShot S500 / Digital IXUS 500 / IXY Digital 500" },
|
|
|
|
{ 0x1410000, "PowerShot S500 / Digital IXUS 500 / IXY Digital 500" },
|
|
|
|
{ static_cast<long int>(0x1420000), "PowerShot A75" },
|
|
|
|
{ 0x1420000, "PowerShot A75" },
|
|
|
|
{ static_cast<long int>(0x1440000), "PowerShot SD110 / Digital IXUS IIs / IXY Digital 30a" },
|
|
|
|
{ 0x1440000, "PowerShot SD110 / Digital IXUS IIs / IXY Digital 30a" },
|
|
|
|
{ static_cast<long int>(0x1450000), "PowerShot A400" },
|
|
|
|
{ 0x1450000, "PowerShot A400" },
|
|
|
|
{ static_cast<long int>(0x1470000), "PowerShot A310" },
|
|
|
|
{ 0x1470000, "PowerShot A310" },
|
|
|
|
{ static_cast<long int>(0x1490000), "PowerShot A85" },
|
|
|
|
{ 0x1490000, "PowerShot A85" },
|
|
|
|
{ static_cast<long int>(0x1520000), "PowerShot S410 / Digital IXUS 430 / IXY Digital 450" },
|
|
|
|
{ 0x1520000, "PowerShot S410 / Digital IXUS 430 / IXY Digital 450" },
|
|
|
|
{ static_cast<long int>(0x1530000), "PowerShot A95" },
|
|
|
|
{ 0x1530000, "PowerShot A95" },
|
|
|
|
{ static_cast<long int>(0x1540000), "PowerShot SD300 / Digital IXUS 40 / IXY Digital 50" },
|
|
|
|
{ 0x1540000, "PowerShot SD300 / Digital IXUS 40 / IXY Digital 50" },
|
|
|
|
{ static_cast<long int>(0x1550000), "PowerShot SD200 / Digital IXUS 30 / IXY Digital 40" },
|
|
|
|
{ 0x1550000, "PowerShot SD200 / Digital IXUS 30 / IXY Digital 40" },
|
|
|
|
{ static_cast<long int>(0x1560000), "PowerShot A520" },
|
|
|
|
{ 0x1560000, "PowerShot A520" },
|
|
|
|
{ static_cast<long int>(0x1570000), "PowerShot A510" },
|
|
|
|
{ 0x1570000, "PowerShot A510" },
|
|
|
|
{ static_cast<long int>(0x1590000), "PowerShot SD20 / Digital IXUS i5 / IXY Digital L2" },
|
|
|
|
{ 0x1590000, "PowerShot SD20 / Digital IXUS i5 / IXY Digital L2" },
|
|
|
|
{ static_cast<long int>(0x1640000), "PowerShot S2 IS" },
|
|
|
|
{ 0x1640000, "PowerShot S2 IS" },
|
|
|
|
{ static_cast<long int>(0x1650000), "PowerShot SD430 / Digital IXUS Wireless / IXY Digital Wireless" },
|
|
|
|
{ 0x1650000, "PowerShot SD430 / Digital IXUS Wireless / IXY Digital Wireless" },
|
|
|
|
{ static_cast<long int>(0x1660000), "PowerShot SD500 / Digital IXUS 700 / IXY Digital 600" },
|
|
|
|
{ 0x1660000, "PowerShot SD500 / Digital IXUS 700 / IXY Digital 600" },
|
|
|
|
{ static_cast<long int>(0x1668000), "EOS D60" },
|
|
|
|
{ 0x1668000, "EOS D60" },
|
|
|
|
{ static_cast<long int>(0x1700000), "PowerShot SD30 / Digital IXUS i Zoom / IXY Digital L3" },
|
|
|
|
{ 0x1700000, "PowerShot SD30 / Digital IXUS i Zoom / IXY Digital L3" },
|
|
|
|
{ static_cast<long int>(0x1740000), "PowerShot A430" },
|
|
|
|
{ 0x1740000, "PowerShot A430" },
|
|
|
|
{ static_cast<long int>(0x1750000), "PowerShot A410" },
|
|
|
|
{ 0x1750000, "PowerShot A410" },
|
|
|
|
{ static_cast<long int>(0x1760000), "PowerShot S80" },
|
|
|
|
{ 0x1760000, "PowerShot S80" },
|
|
|
|
{ static_cast<long int>(0x1780000), "PowerShot A620" },
|
|
|
|
{ 0x1780000, "PowerShot A620" },
|
|
|
|
{ static_cast<long int>(0x1790000), "PowerShot A610" },
|
|
|
|
{ 0x1790000, "PowerShot A610" },
|
|
|
|
{ static_cast<long int>(0x1800000), "PowerShot SD630 / Digital IXUS 65 / IXY Digital 80" },
|
|
|
|
{ 0x1800000, "PowerShot SD630 / Digital IXUS 65 / IXY Digital 80" },
|
|
|
|
{ static_cast<long int>(0x1810000), "PowerShot SD450 / Digital IXUS 55 / IXY Digital 60" },
|
|
|
|
{ 0x1810000, "PowerShot SD450 / Digital IXUS 55 / IXY Digital 60" },
|
|
|
|
{ static_cast<long int>(0x1820000), "PowerShot TX1" },
|
|
|
|
{ 0x1820000, "PowerShot TX1" },
|
|
|
|
{ static_cast<long int>(0x1870000), "PowerShot SD400 / Digital IXUS 50 / IXY Digital 55" },
|
|
|
|
{ 0x1870000, "PowerShot SD400 / Digital IXUS 50 / IXY Digital 55" },
|
|
|
|
{ static_cast<long int>(0x1880000), "PowerShot A420" },
|
|
|
|
{ 0x1880000, "PowerShot A420" },
|
|
|
|
{ static_cast<long int>(0x1890000), "PowerShot SD900 / Digital IXUS 900 Ti / IXY Digital 1000" },
|
|
|
|
{ 0x1890000, "PowerShot SD900 / Digital IXUS 900 Ti / IXY Digital 1000" },
|
|
|
|
{ static_cast<long int>(0x1900000), "PowerShot SD550 / Digital IXUS 750 / IXY Digital 700" },
|
|
|
|
{ 0x1900000, "PowerShot SD550 / Digital IXUS 750 / IXY Digital 700" },
|
|
|
|
{ static_cast<long int>(0x1920000), "PowerShot A700" },
|
|
|
|
{ 0x1920000, "PowerShot A700" },
|
|
|
|
{ static_cast<long int>(0x1940000), "PowerShot SD700 IS / Digital IXUS 800 IS / IXY Digital 800 IS" },
|
|
|
|
{ 0x1940000, "PowerShot SD700 IS / Digital IXUS 800 IS / IXY Digital 800 IS" },
|
|
|
|
{ static_cast<long int>(0x1950000), "PowerShot S3 IS" },
|
|
|
|
{ 0x1950000, "PowerShot S3 IS" },
|
|
|
|
{ static_cast<long int>(0x1960000), "PowerShot A540" },
|
|
|
|
{ 0x1960000, "PowerShot A540" },
|
|
|
|
{ static_cast<long int>(0x1970000), "PowerShot SD600 / Digital IXUS 60 / IXY Digital 70" },
|
|
|
|
{ 0x1970000, "PowerShot SD600 / Digital IXUS 60 / IXY Digital 70" },
|
|
|
|
{ static_cast<long int>(0x1980000), "PowerShot G7" },
|
|
|
|
{ 0x1980000, "PowerShot G7" },
|
|
|
|
{ static_cast<long int>(0x1990000), "PowerShot A530" },
|
|
|
|
{ 0x1990000, "PowerShot A530" },
|
|
|
|
{ static_cast<long int>(0x2000000), "PowerShot SD800 IS / Digital IXUS 850 IS / IXY Digital 900 IS" },
|
|
|
|
{ 0x2000000, "PowerShot SD800 IS / Digital IXUS 850 IS / IXY Digital 900 IS" },
|
|
|
|
{ static_cast<long int>(0x2010000), "PowerShot SD40 / Digital IXUS i7 / IXY Digital L4" },
|
|
|
|
{ 0x2010000, "PowerShot SD40 / Digital IXUS i7 / IXY Digital L4" },
|
|
|
|
{ static_cast<long int>(0x2020000), "PowerShot A710 IS" },
|
|
|
|
{ 0x2020000, "PowerShot A710 IS" },
|
|
|
|
{ static_cast<long int>(0x2030000), "PowerShot A640" },
|
|
|
|
{ 0x2030000, "PowerShot A640" },
|
|
|
|
{ static_cast<long int>(0x2040000), "PowerShot A630" },
|
|
|
|
{ 0x2040000, "PowerShot A630" },
|
|
|
|
{ static_cast<long int>(0x2090000), "PowerShot S5 IS" },
|
|
|
|
{ 0x2090000, "PowerShot S5 IS" },
|
|
|
|
{ static_cast<long int>(0x2100000), "PowerShot A460" },
|
|
|
|
{ 0x2100000, "PowerShot A460" },
|
|
|
|
{ static_cast<long int>(0x2120000), "PowerShot SD850 IS / Digital IXUS 950 IS / IXY Digital 810 IS" },
|
|
|
|
{ 0x2120000, "PowerShot SD850 IS / Digital IXUS 950 IS / IXY Digital 810 IS" },
|
|
|
|
{ static_cast<long int>(0x2130000), "PowerShot A570 IS" },
|
|
|
|
{ 0x2130000, "PowerShot A570 IS" },
|
|
|
|
{ static_cast<long int>(0x2140000), "PowerShot A560" },
|
|
|
|
{ 0x2140000, "PowerShot A560" },
|
|
|
|
{ static_cast<long int>(0x2150000), "PowerShot SD750 / Digital IXUS 75 / IXY Digital 90" },
|
|
|
|
{ 0x2150000, "PowerShot SD750 / Digital IXUS 75 / IXY Digital 90" },
|
|
|
|
{ static_cast<long int>(0x2160000), "PowerShot SD1000 / Digital IXUS 70 / IXY Digital 10" },
|
|
|
|
{ 0x2160000, "PowerShot SD1000 / Digital IXUS 70 / IXY Digital 10" },
|
|
|
|
{ static_cast<long int>(0x2180000), "PowerShot A550" },
|
|
|
|
{ 0x2180000, "PowerShot A550" },
|
|
|
|
{ static_cast<long int>(0x2190000), "PowerShot A450" },
|
|
|
|
{ 0x2190000, "PowerShot A450" },
|
|
|
|
{ static_cast<long int>(0x2230000), "PowerShot G9" },
|
|
|
|
{ 0x2230000, "PowerShot G9" },
|
|
|
|
{ static_cast<long int>(0x2240000), "PowerShot A650 IS" },
|
|
|
|
{ 0x2240000, "PowerShot A650 IS" },
|
|
|
|
{ static_cast<long int>(0x2260000), "PowerShot A720 IS" },
|
|
|
|
{ 0x2260000, "PowerShot A720 IS" },
|
|
|
|
{ static_cast<long int>(0x2290000), "PowerShot SX100 IS" },
|
|
|
|
{ 0x2290000, "PowerShot SX100 IS" },
|
|
|
|
{ static_cast<long int>(0x2300000), "PowerShot SD950 IS / Digital IXUS 960 IS / IXY Digital 2000 IS" },
|
|
|
|
{ 0x2300000, "PowerShot SD950 IS / Digital IXUS 960 IS / IXY Digital 2000 IS" },
|
|
|
|
{ static_cast<long int>(0x2310000), "PowerShot SD870 IS / Digital IXUS 860 IS / IXY Digital 910 IS" },
|
|
|
|
{ 0x2310000, "PowerShot SD870 IS / Digital IXUS 860 IS / IXY Digital 910 IS" },
|
|
|
|
{ static_cast<long int>(0x2320000), "PowerShot SD890 IS / Digital IXUS 970 IS / IXY Digital 820 IS" },
|
|
|
|
{ 0x2320000, "PowerShot SD890 IS / Digital IXUS 970 IS / IXY Digital 820 IS" },
|
|
|
|
{ static_cast<long int>(0x2360000), "PowerShot SD790 IS / Digital IXUS 90 IS / IXY Digital 95 IS" },
|
|
|
|
{ 0x2360000, "PowerShot SD790 IS / Digital IXUS 90 IS / IXY Digital 95 IS" },
|
|
|
|
{ static_cast<long int>(0x2370000), "PowerShot SD770 IS / Digital IXUS 85 IS / IXY Digital 25 IS" },
|
|
|
|
{ 0x2370000, "PowerShot SD770 IS / Digital IXUS 85 IS / IXY Digital 25 IS" },
|
|
|
|
{ static_cast<long int>(0x2380000), "PowerShot A590 IS" },
|
|
|
|
{ 0x2380000, "PowerShot A590 IS" },
|
|
|
|
{ static_cast<long int>(0x2390000), "PowerShot A580" },
|
|
|
|
{ 0x2390000, "PowerShot A580" },
|
|
|
|
{ static_cast<long int>(0x2420000), "PowerShot A470" },
|
|
|
|
{ 0x2420000, "PowerShot A470" },
|
|
|
|
{ static_cast<long int>(0x2430000), "PowerShot SD1100 IS / Digital IXUS 80 IS / IXY Digital 20 IS" },
|
|
|
|
{ 0x2430000, "PowerShot SD1100 IS / Digital IXUS 80 IS / IXY Digital 20 IS" },
|
|
|
|
{ static_cast<long int>(0x2460000), "PowerShot SX1 IS" },
|
|
|
|
{ 0x2460000, "PowerShot SX1 IS" },
|
|
|
|
{ static_cast<long int>(0x2470000), "PowerShot SX10 IS" },
|
|
|
|
{ 0x2470000, "PowerShot SX10 IS" },
|
|
|
|
{ static_cast<long int>(0x2480000), "PowerShot A1000 IS" },
|
|
|
|
{ 0x2480000, "PowerShot A1000 IS" },
|
|
|
|
{ static_cast<long int>(0x2490000), "PowerShot G10" },
|
|
|
|
{ 0x2490000, "PowerShot G10" },
|
|
|
|
{ static_cast<long int>(0x2510000), "PowerShot A2000 IS" },
|
|
|
|
{ 0x2510000, "PowerShot A2000 IS" },
|
|
|
|
{ static_cast<long int>(0x2520000), "PowerShot SX110 IS" },
|
|
|
|
{ 0x2520000, "PowerShot SX110 IS" },
|
|
|
|
{ static_cast<long int>(0x2530000), "PowerShot SD990 IS / Digital IXUS 980 IS / IXY Digital 3000 IS" },
|
|
|
|
{ 0x2530000, "PowerShot SD990 IS / Digital IXUS 980 IS / IXY Digital 3000 IS" },
|
|
|
|
{ static_cast<long int>(0x2540000), "PowerShot SD880 IS / Digital IXUS 870 IS / IXY Digital 920 IS" },
|
|
|
|
{ 0x2540000, "PowerShot SD880 IS / Digital IXUS 870 IS / IXY Digital 920 IS" },
|
|
|
|
{ static_cast<long int>(0x2550000), "PowerShot E1" },
|
|
|
|
{ 0x2550000, "PowerShot E1" },
|
|
|
|
{ static_cast<long int>(0x2560000), "PowerShot D10" },
|
|
|
|
{ 0x2560000, "PowerShot D10" },
|
|
|
|
{ static_cast<long int>(0x2570000), "PowerShot SD960 IS / Digital IXUS 110 IS / IXY Digital 510 IS" },
|
|
|
|
{ 0x2570000, "PowerShot SD960 IS / Digital IXUS 110 IS / IXY Digital 510 IS" },
|
|
|
|
{ static_cast<long int>(0x2580000), "PowerShot A2100 IS" },
|
|
|
|
{ 0x2580000, "PowerShot A2100 IS" },
|
|
|
|
{ static_cast<long int>(0x2590000), "PowerShot A480" },
|
|
|
|
{ 0x2590000, "PowerShot A480" },
|
|
|
|
{ static_cast<long int>(0x2600000), "PowerShot SX200 IS" },
|
|
|
|
{ 0x2600000, "PowerShot SX200 IS" },
|
|
|
|
{ static_cast<long int>(0x2610000), "PowerShot SD970 IS / Digital IXUS 990 IS / IXY Digital 830 IS" },
|
|
|
|
{ 0x2610000, "PowerShot SD970 IS / Digital IXUS 990 IS / IXY Digital 830 IS" },
|
|
|
|
{ static_cast<long int>(0x2620000), "PowerShot SD780 IS / Digital IXUS 100 IS / IXY Digital 210 IS" },
|
|
|
|
{ 0x2620000, "PowerShot SD780 IS / Digital IXUS 100 IS / IXY Digital 210 IS" },
|
|
|
|
{ static_cast<long int>(0x2630000), "PowerShot A1100 IS" },
|
|
|
|
{ 0x2630000, "PowerShot A1100 IS" },
|
|
|
|
{ static_cast<long int>(0x2640000), "PowerShot SD1200 IS / Digital IXUS 95 IS / IXY Digital 110 IS" },
|
|
|
|
{ 0x2640000, "PowerShot SD1200 IS / Digital IXUS 95 IS / IXY Digital 110 IS" },
|
|
|
|
{ static_cast<long int>(0x2700000), "PowerShot G11" },
|
|
|
|
{ 0x2700000, "PowerShot G11" },
|
|
|
|
{ static_cast<long int>(0x2710000), "PowerShot SX120 IS" },
|
|
|
|
{ 0x2710000, "PowerShot SX120 IS" },
|
|
|
|
{ static_cast<long int>(0x2720000), "PowerShot S90" },
|
|
|
|
{ 0x2720000, "PowerShot S90" },
|
|
|
|
{ static_cast<long int>(0x2750000), "PowerShot SX20 IS" },
|
|
|
|
{ 0x2750000, "PowerShot SX20 IS" },
|
|
|
|
{ static_cast<long int>(0x2760000), "PowerShot SD980 IS / Digital IXUS 200 IS / IXY Digital 930 IS" },
|
|
|
|
{ 0x2760000, "PowerShot SD980 IS / Digital IXUS 200 IS / IXY Digital 930 IS" },
|
|
|
|
{ static_cast<long int>(0x2770000), "PowerShot SD940 IS / Digital IXUS 120 IS / IXY Digital 220 IS" },
|
|
|
|
{ 0x2770000, "PowerShot SD940 IS / Digital IXUS 120 IS / IXY Digital 220 IS" },
|
|
|
|
{ static_cast<long int>(0x2800000), "PowerShot A495" },
|
|
|
|
{ 0x2800000, "PowerShot A495" },
|
|
|
|
{ static_cast<long int>(0x2810000), "PowerShot A490" },
|
|
|
|
{ 0x2810000, "PowerShot A490" },
|
|
|
|
{ static_cast<long int>(0x2820000), "PowerShot A3100/A3150 IS" },
|
|
|
|
{ 0x2820000, "PowerShot A3100/A3150 IS" },
|
|
|
|
{ static_cast<long int>(0x2830000), "PowerShot A3000 IS" },
|
|
|
|
{ 0x2830000, "PowerShot A3000 IS" },
|
|
|
|
{ static_cast<long int>(0x2840000), "PowerShot SD1400 IS / IXUS 130 / IXY 400F" },
|
|
|
|
{ 0x2840000, "PowerShot SD1400 IS / IXUS 130 / IXY 400F" },
|
|
|
|
{ static_cast<long int>(0x2850000), "PowerShot SD1300 IS / IXUS 105 / IXY 200F" },
|
|
|
|
{ 0x2850000, "PowerShot SD1300 IS / IXUS 105 / IXY 200F" },
|
|
|
|
{ static_cast<long int>(0x2860000), "PowerShot SD3500 IS / IXUS 210 / IXY 10S" },
|
|
|
|
{ 0x2860000, "PowerShot SD3500 IS / IXUS 210 / IXY 10S" },
|
|
|
|
{ static_cast<long int>(0x2870000), "PowerShot SX210 IS" },
|
|
|
|
{ 0x2870000, "PowerShot SX210 IS" },
|
|
|
|
{ static_cast<long int>(0x2880000), "PowerShot SD4000 IS / IXUS 300 HS / IXY 30S" },
|
|
|
|
{ 0x2880000, "PowerShot SD4000 IS / IXUS 300 HS / IXY 30S" },
|
|
|
|
{ static_cast<long int>(0x2890000), "PowerShot SD4500 IS / IXUS 1000 HS / IXY 50S" },
|
|
|
|
{ 0x2890000, "PowerShot SD4500 IS / IXUS 1000 HS / IXY 50S" },
|
|
|
|
{ static_cast<long int>(0x2920000), "PowerShot G12" },
|
|
|
|
{ 0x2920000, "PowerShot G12" },
|
|
|
|
{ static_cast<long int>(0x2930000), "PowerShot SX30 IS" },
|
|
|
|
{ 0x2930000, "PowerShot SX30 IS" },
|
|
|
|
{ static_cast<long int>(0x2940000), "PowerShot SX130 IS" },
|
|
|
|
{ 0x2940000, "PowerShot SX130 IS" },
|
|
|
|
{ static_cast<long int>(0x2950000), "PowerShot S95" },
|
|
|
|
{ 0x2950000, "PowerShot S95" },
|
|
|
|
{ static_cast<long int>(0x2980000), "PowerShot A3300 IS" },
|
|
|
|
{ 0x2980000, "PowerShot A3300 IS" },
|
|
|
|
{ static_cast<long int>(0x2990000), "PowerShot A3200 IS" },
|
|
|
|
{ 0x2990000, "PowerShot A3200 IS" },
|
|
|
|
{ static_cast<long int>(0x3000000), "PowerShot ELPH 500 HS / IXUS 310 HS / IXY 31S" },
|
|
|
|
{ 0x3000000, "PowerShot ELPH 500 HS / IXUS 310 HS / IXY 31S" },
|
|
|
|
{ static_cast<long int>(0x3010000), "PowerShot Pro90 IS" },
|
|
|
|
{ 0x3010000, "PowerShot Pro90 IS" },
|
|
|
|
{ static_cast<long int>(0x3010001), "PowerShot A800" },
|
|
|
|
{ 0x3010001, "PowerShot A800" },
|
|
|
|
{ static_cast<long int>(0x3020000), "PowerShot ELPH 100 HS / IXUS 115 HS / IXY 210F" },
|
|
|
|
{ 0x3020000, "PowerShot ELPH 100 HS / IXUS 115 HS / IXY 210F" },
|
|
|
|
{ static_cast<long int>(0x3030000), "PowerShot SX230 HS" },
|
|
|
|
{ 0x3030000, "PowerShot SX230 HS" },
|
|
|
|
{ static_cast<long int>(0x3040000), "PowerShot ELPH 300 HS / IXUS 220 HS / IXY 410F" },
|
|
|
|
{ 0x3040000, "PowerShot ELPH 300 HS / IXUS 220 HS / IXY 410F" },
|
|
|
|
{ static_cast<long int>(0x3050000), "PowerShot A2200" },
|
|
|
|
{ 0x3050000, "PowerShot A2200" },
|
|
|
|
{ static_cast<long int>(0x3060000), "PowerShot A1200" },
|
|
|
|
{ 0x3060000, "PowerShot A1200" },
|
|
|
|
{ static_cast<long int>(0x3070000), "PowerShot SX220 HS" },
|
|
|
|
{ 0x3070000, "PowerShot SX220 HS" },
|
|
|
|
{ static_cast<long int>(0x3080000), "PowerShot G1 X" },
|
|
|
|
{ 0x3080000, "PowerShot G1 X" },
|
|
|
|
{ static_cast<long int>(0x3090000), "PowerShot SX150 IS" },
|
|
|
|
{ 0x3090000, "PowerShot SX150 IS" },
|
|
|
|
{ static_cast<long int>(0x3100000), "PowerShot ELPH 510 HS / IXUS 1100 HS / IXY 51S" },
|
|
|
|
{ 0x3100000, "PowerShot ELPH 510 HS / IXUS 1100 HS / IXY 51S" },
|
|
|
|
{ static_cast<long int>(0x3110000), "PowerShot S100 (new)" },
|
|
|
|
{ 0x3110000, "PowerShot S100 (new)" },
|
|
|
|
{ static_cast<long int>(0x3130000), "PowerShot SX40 HS" },
|
|
|
|
{ 0x3130000, "PowerShot SX40 HS" },
|
|
|
|
{ static_cast<long int>(0x3120000), "PowerShot ELPH 310 HS / IXUS 230 HS / IXY 600F" },
|
|
|
|
{ 0x3120000, "PowerShot ELPH 310 HS / IXUS 230 HS / IXY 600F" },
|
|
|
|
{ static_cast<long int>(0x3140000), "IXY 32S" },
|
|
|
|
{ 0x3140000, "IXY 32S" },
|
|
|
|
{ static_cast<long int>(0x3160000), "PowerShot A1300" },
|
|
|
|
{ 0x3160000, "PowerShot A1300" },
|
|
|
|
{ static_cast<long int>(0x3170000), "PowerShot A810" },
|
|
|
|
{ 0x3170000, "PowerShot A810" },
|
|
|
|
{ static_cast<long int>(0x3180000), "PowerShot ELPH 320 HS / IXUS 240 HS / IXY 420F" },
|
|
|
|
{ 0x3180000, "PowerShot ELPH 320 HS / IXUS 240 HS / IXY 420F" },
|
|
|
|
{ static_cast<long int>(0x3190000), "PowerShot ELPH 110 HS / IXUS 125 HS / IXY 220F" },
|
|
|
|
{ 0x3190000, "PowerShot ELPH 110 HS / IXUS 125 HS / IXY 220F" },
|
|
|
|
{ static_cast<long int>(0x3200000), "PowerShot D20" },
|
|
|
|
{ 0x3200000, "PowerShot D20" },
|
|
|
|
{ static_cast<long int>(0x3210000), "PowerShot A4000 IS" },
|
|
|
|
{ 0x3210000, "PowerShot A4000 IS" },
|
|
|
|
{ static_cast<long int>(0x3220000), "PowerShot SX260 HS" },
|
|
|
|
{ 0x3220000, "PowerShot SX260 HS" },
|
|
|
|
{ static_cast<long int>(0x3230000), "PowerShot SX240 HS" },
|
|
|
|
{ 0x3230000, "PowerShot SX240 HS" },
|
|
|
|
{ static_cast<long int>(0x3240000), "PowerShot ELPH 530 HS / IXUS 510 HS / IXY 1" },
|
|
|
|
{ 0x3240000, "PowerShot ELPH 530 HS / IXUS 510 HS / IXY 1" },
|
|
|
|
{ static_cast<long int>(0x3250000), "PowerShot ELPH 520 HS / IXUS 500 HS / IXY 3" },
|
|
|
|
{ 0x3250000, "PowerShot ELPH 520 HS / IXUS 500 HS / IXY 3" },
|
|
|
|
{ static_cast<long int>(0x3260000), "PowerShot A3400 IS" },
|
|
|
|
{ 0x3260000, "PowerShot A3400 IS" },
|
|
|
|
{ static_cast<long int>(0x3270000), "PowerShot A2400 IS" },
|
|
|
|
{ 0x3270000, "PowerShot A2400 IS" },
|
|
|
|
{ static_cast<long int>(0x3280000), "PowerShot A2300" },
|
|
|
|
{ 0x3280000, "PowerShot A2300" },
|
|
|
|
{ static_cast<long int>(0x3320000), "PowerShot S100V" },
|
|
|
|
{ 0x3320000, "PowerShot S100V" },
|
|
|
|
{ static_cast<long int>(0x3330000), "PowerShot G15" },
|
|
|
|
{ 0x3330000, "PowerShot G15" },
|
|
|
|
{ static_cast<long int>(0x3340000), "PowerShot SX50 HS" },
|
|
|
|
{ 0x3340000, "PowerShot SX50 HS" },
|
|
|
|
{ static_cast<long int>(0x3350000), "PowerShot SX160 IS" },
|
|
|
|
{ 0x3350000, "PowerShot SX160 IS" },
|
|
|
|
{ static_cast<long int>(0x3360000), "PowerShot S110 (new)" },
|
|
|
|
{ 0x3360000, "PowerShot S110 (new)" },
|
|
|
|
{ static_cast<long int>(0x3370000), "PowerShot SX500 IS" },
|
|
|
|
{ 0x3370000, "PowerShot SX500 IS" },
|
|
|
|
{ static_cast<long int>(0x3380000), "PowerShot N" },
|
|
|
|
{ 0x3380000, "PowerShot N" },
|
|
|
|
{ static_cast<long int>(0x3390000), "IXUS 245 HS / IXY 430F" },
|
|
|
|
{ 0x3390000, "IXUS 245 HS / IXY 430F" },
|
|
|
|
{ static_cast<long int>(0x3400000), "PowerShot SX280 HS" },
|
|
|
|
{ 0x3400000, "PowerShot SX280 HS" },
|
|
|
|
{ static_cast<long int>(0x3410000), "PowerShot SX270 HS" },
|
|
|
|
{ 0x3410000, "PowerShot SX270 HS" },
|
|
|
|
{ static_cast<long int>(0x3420000), "PowerShot A3500 IS" },
|
|
|
|
{ 0x3420000, "PowerShot A3500 IS" },
|
|
|
|
{ static_cast<long int>(0x3430000), "PowerShot A2600" },
|
|
|
|
{ 0x3430000, "PowerShot A2600" },
|
|
|
|
{ static_cast<long int>(0x3440000), "PowerShot SX275 HS" },
|
|
|
|
{ 0x3440000, "PowerShot SX275 HS" },
|
|
|
|
{ static_cast<long int>(0x3450000), "PowerShot A1400" },
|
|
|
|
{ 0x3450000, "PowerShot A1400" },
|
|
|
|
{ static_cast<long int>(0x3460000), "PowerShot ELPH 130 IS / IXUS 140 / IXY 110F" },
|
|
|
|
{ 0x3460000, "PowerShot ELPH 130 IS / IXUS 140 / IXY 110F" },
|
|
|
|
{ static_cast<long int>(0x3470000), "PowerShot ELPH 115/120 IS / IXUS 132/135 / IXY 90F/100F" },
|
|
|
|
{ 0x3470000, "PowerShot ELPH 115/120 IS / IXUS 132/135 / IXY 90F/100F" },
|
|
|
|
{ static_cast<long int>(0x3490000), "PowerShot ELPH 330 HS / IXUS 255 HS / IXY 610F" },
|
|
|
|
{ 0x3490000, "PowerShot ELPH 330 HS / IXUS 255 HS / IXY 610F" },
|
|
|
|
{ static_cast<long int>(0x3510000), "PowerShot A2500" },
|
|
|
|
{ 0x3510000, "PowerShot A2500" },
|
|
|
|
{ static_cast<long int>(0x3540000), "PowerShot G16" },
|
|
|
|
{ 0x3540000, "PowerShot G16" },
|
|
|
|
{ static_cast<long int>(0x3550000), "PowerShot S120" },
|
|
|
|
{ 0x3550000, "PowerShot S120" },
|
|
|
|
{ static_cast<long int>(0x3560000), "PowerShot SX170 IS" },
|
|
|
|
{ 0x3560000, "PowerShot SX170 IS" },
|
|
|
|
{ static_cast<long int>(0x3580000), "PowerShot SX510 HS" },
|
|
|
|
{ 0x3580000, "PowerShot SX510 HS" },
|
|
|
|
{ static_cast<long int>(0x3590000), "PowerShot S200 (new)" },
|
|
|
|
{ 0x3590000, "PowerShot S200 (new)" },
|
|
|
|
{ static_cast<long int>(0x3600000), "IXY 620F" },
|
|
|
|
{ 0x3600000, "IXY 620F" },
|
|
|
|
{ static_cast<long int>(0x3610000), "PowerShot N100" },
|
|
|
|
{ 0x3610000, "PowerShot N100" },
|
|
|
|
{ static_cast<long int>(0x3640000), "PowerShot G1 X Mark II" },
|
|
|
|
{ 0x3640000, "PowerShot G1 X Mark II" },
|
|
|
|
{ static_cast<long int>(0x3650000), "PowerShot D30" },
|
|
|
|
{ 0x3650000, "PowerShot D30" },
|
|
|
|
{ static_cast<long int>(0x3660000), "PowerShot SX700 HS" },
|
|
|
|
{ 0x3660000, "PowerShot SX700 HS" },
|
|
|
|
{ static_cast<long int>(0x3670000), "PowerShot SX600 HS" },
|
|
|
|
{ 0x3670000, "PowerShot SX600 HS" },
|
|
|
|
{ static_cast<long int>(0x3680000), "PowerShot ELPH 140 IS / IXUS 150 / IXY 130" },
|
|
|
|
{ 0x3680000, "PowerShot ELPH 140 IS / IXUS 150 / IXY 130" },
|
|
|
|
{ static_cast<long int>(0x3690000), "PowerShot ELPH 135 / IXUS 145 / IXY 120" },
|
|
|
|
{ 0x3690000, "PowerShot ELPH 135 / IXUS 145 / IXY 120" },
|
|
|
|
{ static_cast<long int>(0x3700000), "PowerShot ELPH 340 HS / IXUS 265 HS / IXY 630" },
|
|
|
|
{ 0x3700000, "PowerShot ELPH 340 HS / IXUS 265 HS / IXY 630" },
|
|
|
|
{ static_cast<long int>(0x3710000), "PowerShot ELPH 150 IS / IXUS 155 / IXY 140" },
|
|
|
|
{ 0x3710000, "PowerShot ELPH 150 IS / IXUS 155 / IXY 140" },
|
|
|
|
{ static_cast<long int>(0x3740000), "EOS M3" },
|
|
|
|
{ 0x3740000, "EOS M3" },
|
|
|
|
{ static_cast<long int>(0x3750000), "PowerShot SX60 HS" },
|
|
|
|
{ 0x3750000, "PowerShot SX60 HS" },
|
|
|
|
{ static_cast<long int>(0x3760000), "PowerShot SX520 HS" },
|
|
|
|
{ 0x3760000, "PowerShot SX520 HS" },
|
|
|
|
{ static_cast<long int>(0x3770000), "PowerShot SX400 IS" },
|
|
|
|
{ 0x3770000, "PowerShot SX400 IS" },
|
|
|
|
{ static_cast<long int>(0x3780000), "PowerShot G7 X" },
|
|
|
|
{ 0x3780000, "PowerShot G7 X" },
|
|
|
|
{ static_cast<long int>(0x3790000), "PowerShot N2" },
|
|
|
|
{ 0x3790000, "PowerShot N2" },
|
|
|
|
{ static_cast<long int>(0x3800000), "PowerShot SX530 HS" },
|
|
|
|
{ 0x3800000, "PowerShot SX530 HS" },
|
|
|
|
{ static_cast<long int>(0x3820000), "PowerShot SX710 HS" },
|
|
|
|
{ 0x3820000, "PowerShot SX710 HS" },
|
|
|
|
{ static_cast<long int>(0x3830000), "PowerShot SX610 HS" },
|
|
|
|
{ 0x3830000, "PowerShot SX610 HS" },
|
|
|
|
{ static_cast<long int>(0x3840000), "EOS M10" },
|
|
|
|
{ 0x3840000, "EOS M10" },
|
|
|
|
{ static_cast<long int>(0x3850000), "PowerShot G3 X" },
|
|
|
|
{ 0x3850000, "PowerShot G3 X" },
|
|
|
|
{ static_cast<long int>(0x3860000), "PowerShot ELPH 165 HS / IXUS 165 / IXY 160" },
|
|
|
|
{ 0x3860000, "PowerShot ELPH 165 HS / IXUS 165 / IXY 160" },
|
|
|
|
{ static_cast<long int>(0x3870000), "PowerShot ELPH 160 / IXUS 160" },
|
|
|
|
{ 0x3870000, "PowerShot ELPH 160 / IXUS 160" },
|
|
|
|
{ static_cast<long int>(0x3880000), "PowerShot ELPH 350 HS / IXUS 275 HS / IXY 640" },
|
|
|
|
{ 0x3880000, "PowerShot ELPH 350 HS / IXUS 275 HS / IXY 640" },
|
|
|
|
{ static_cast<long int>(0x3890000), "PowerShot ELPH 170 IS / IXUS 170" },
|
|
|
|
{ 0x3890000, "PowerShot ELPH 170 IS / IXUS 170" },
|
|
|
|
{ static_cast<long int>(0x3910000), "PowerShot SX410 IS" },
|
|
|
|
{ 0x3910000, "PowerShot SX410 IS" },
|
|
|
|
{ static_cast<long int>(0x3930000), "PowerShot G9 X" },
|
|
|
|
{ 0x3930000, "PowerShot G9 X" },
|
|
|
|
{ static_cast<long int>(0x3940000), "EOS M5" },
|
|
|
|
{ 0x3940000, "EOS M5" },
|
|
|
|
{ static_cast<long int>(0x3950000), "PowerShot G5 X" },
|
|
|
|
{ 0x3950000, "PowerShot G5 X" },
|
|
|
|
{ static_cast<long int>(0x3970000), "PowerShot G7 X Mark II" },
|
|
|
|
{ 0x3970000, "PowerShot G7 X Mark II" },
|
|
|
|
{ static_cast<long int>(0x3980000), "EOS M100" },
|
|
|
|
{ 0x3980000, "EOS M100" },
|
|
|
|
{ static_cast<long int>(0x3990000), "PowerShot ELPH 360 HS / IXUS 285 HS / IXY 650" },
|
|
|
|
{ 0x3990000, "PowerShot ELPH 360 HS / IXUS 285 HS / IXY 650" },
|
|
|
|
{ static_cast<long int>(0x4010000), "PowerShot SX540 HS" },
|
|
|
|
{ 0x4010000, "PowerShot SX540 HS" },
|
|
|
|
{ static_cast<long int>(0x4020000), "PowerShot SX420 IS" },
|
|
|
|
{ 0x4020000, "PowerShot SX420 IS" },
|
|
|
|
{ static_cast<long int>(0x4030000), "PowerShot ELPH 190 IS / IXUS 180 / IXY 190" },
|
|
|
|
{ 0x4030000, "PowerShot ELPH 190 IS / IXUS 180 / IXY 190" },
|
|
|
|
{ static_cast<long int>(0x4040000), "PowerShot G1" },
|
|
|
|
{ 0x4040000, "PowerShot G1" },
|
|
|
|
{ static_cast<long int>(0x4040001), "PowerShot ELPH 180 IS / IXUS 175 / IXY 180" },
|
|
|
|
{ 0x4040001, "PowerShot ELPH 180 IS / IXUS 175 / IXY 180" },
|
|
|
|
{ static_cast<long int>(0x4050000), "PowerShot SX720 HS" },
|
|
|
|
{ 0x4050000, "PowerShot SX720 HS" },
|
|
|
|
{ static_cast<long int>(0x4060000), "PowerShot SX620 HS" },
|
|
|
|
{ 0x4060000, "PowerShot SX620 HS" },
|
|
|
|
{ static_cast<long int>(0x4070000), "EOS M6" },
|
|
|
|
{ 0x4070000, "EOS M6" },
|
|
|
|
{ static_cast<long int>(0x4100000), "PowerShot G9 X Mark II" },
|
|
|
|
{ 0x4100000, "PowerShot G9 X Mark II" },
|
|
|
|
{ static_cast<long int>(0x412), "EOS M50 / Kiss M" },
|
|
|
|
{ 0x412, "EOS M50 / Kiss M" },
|
|
|
|
{ static_cast<long int>(0x4150000), "PowerShot ELPH 185 / IXUS 185 / IXY 200" },
|
|
|
|
{ 0x4150000, "PowerShot ELPH 185 / IXUS 185 / IXY 200" },
|
|
|
|
{ static_cast<long int>(0x4160000), "PowerShot SX430 IS" },
|
|
|
|
{ 0x4160000, "PowerShot SX430 IS" },
|
|
|
|
{ static_cast<long int>(0x4170000), "PowerShot SX730 HS" },
|
|
|
|
{ 0x4170000, "PowerShot SX730 HS" },
|
|
|
|
{ static_cast<long int>(0x4180000), "PowerShot G1 X Mark III" },
|
|
|
|
{ 0x4180000, "PowerShot G1 X Mark III" },
|
|
|
|
{ static_cast<long int>(0x6040000), "PowerShot S100 / Digital IXUS / IXY Digital" },
|
|
|
|
{ 0x6040000, "PowerShot S100 / Digital IXUS / IXY Digital" },
|
|
|
|
{ static_cast<long int>(0x801), "PowerShot SX740 HS" },
|
|
|
|
{ 0x801, "PowerShot SX740 HS" },
|
|
|
|
{ static_cast<long int>(0x804), "PowerShot G5 X Mark II" },
|
|
|
|
{ 0x804, "PowerShot G5 X Mark II" },
|
|
|
|
{ static_cast<long int>(0x805), "PowerShot SX70 HS" },
|
|
|
|
{ 0x805, "PowerShot SX70 HS" },
|
|
|
|
{ static_cast<long int>(0x808), "PowerShot G7 X Mark III" },
|
|
|
|
{ 0x808, "PowerShot G7 X Mark III" },
|
|
|
|
{ static_cast<long int>(0x811), "EOS M6 Mark II" },
|
|
|
|
{ 0x811, "EOS M6 Mark II" },
|
|
|
|
{ static_cast<long int>(0x812), "EOS M200" },
|
|
|
|
{ 0x812, "EOS M200" },
|
|
|
|
{ static_cast<long int>(0x4007d673), "DC19/DC21/DC22" },
|
|
|
|
{ 0x4007d673, "DC19/DC21/DC22" },
|
|
|
|
{ static_cast<long int>(0x4007d674), "XH A1" },
|
|
|
|
{ 0x4007d674, "XH A1" },
|
|
|
|
{ static_cast<long int>(0x4007d675), "HV10" },
|
|
|
|
{ 0x4007d675, "HV10" },
|
|
|
|
{ static_cast<long int>(0x4007d676), "MD130/MD140/MD150/MD160/ZR850" },
|
|
|
|
{ 0x4007d676, "MD130/MD140/MD150/MD160/ZR850" },
|
|
|
|
{ static_cast<long int>(0x4007d777), "DC50" },
|
|
|
|
{ 0x4007d777, "DC50" },
|
|
|
|
{ static_cast<long int>(0x4007d778), "HV20" },
|
|
|
|
{ 0x4007d778, "HV20" },
|
|
|
|
{ static_cast<long int>(0x4007d779), "DC211" },
|
|
|
|
{ 0x4007d779, "DC211" },
|
|
|
|
{ static_cast<long int>(0x4007d77a), "HG10" },
|
|
|
|
{ 0x4007d77a, "HG10" },
|
|
|
|
{ static_cast<long int>(0x4007d77b), "HR10" },
|
|
|
|
{ 0x4007d77b, "HR10" },
|
|
|
|
{ static_cast<long int>(0x4007d77d), "MD255/ZR950" },
|
|
|
|
{ 0x4007d77d, "MD255/ZR950" },
|
|
|
|
{ static_cast<long int>(0x4007d81c), "HF11" },
|
|
|
|
{ 0x4007d81c, "HF11" },
|
|
|
|
{ static_cast<long int>(0x4007d878), "HV30" },
|
|
|
|
{ 0x4007d878, "HV30" },
|
|
|
|
{ static_cast<long int>(0x4007d87c), "XH A1S" },
|
|
|
|
{ 0x4007d87c, "XH A1S" },
|
|
|
|
{ static_cast<long int>(0x4007d87e), "DC301/DC310/DC311/DC320/DC330" },
|
|
|
|
{ 0x4007d87e, "DC301/DC310/DC311/DC320/DC330" },
|
|
|
|
{ static_cast<long int>(0x4007d87f), "FS100" },
|
|
|
|
{ 0x4007d87f, "FS100" },
|
|
|
|
{ static_cast<long int>(0x4007d880), "HF10" },
|
|
|
|
{ 0x4007d880, "HF10" },
|
|
|
|
{ static_cast<long int>(0x4007d882), "HG20/HG21" },
|
|
|
|
{ 0x4007d882, "HG20/HG21" },
|
|
|
|
{ static_cast<long int>(0x4007d925), "HF21" },
|
|
|
|
{ 0x4007d925, "HF21" },
|
|
|
|
{ static_cast<long int>(0x4007d926), "HF S11" },
|
|
|
|
{ 0x4007d926, "HF S11" },
|
|
|
|
{ static_cast<long int>(0x4007d978), "HV40" },
|
|
|
|
{ 0x4007d978, "HV40" },
|
|
|
|
{ static_cast<long int>(0x4007d987), "DC410/DC411/DC420" },
|
|
|
|
{ 0x4007d987, "DC410/DC411/DC420" },
|
|
|
|
{ static_cast<long int>(0x4007d988), "FS19/FS20/FS21/FS22/FS200" },
|
|
|
|
{ 0x4007d988, "FS19/FS20/FS21/FS22/FS200" },
|
|
|
|
{ static_cast<long int>(0x4007d989), "HF20/HF200" },
|
|
|
|
{ 0x4007d989, "HF20/HF200" },
|
|
|
|
{ static_cast<long int>(0x4007d98a), "HF S10/S100" },
|
|
|
|
{ 0x4007d98a, "HF S10/S100" },
|
|
|
|
{ static_cast<long int>(0x4007da8e), "HF R10/R16/R17/R18/R100/R106" },
|
|
|
|
{ 0x4007da8e, "HF R10/R16/R17/R18/R100/R106" },
|
|
|
|
{ static_cast<long int>(0x4007da8f), "HF M30/M31/M36/M300/M306" },
|
|
|
|
{ 0x4007da8f, "HF M30/M31/M36/M300/M306" },
|
|
|
|
{ static_cast<long int>(0x4007da90), "HF S20/S21/S200" },
|
|
|
|
{ 0x4007da90, "HF S20/S21/S200" },
|
|
|
|
{ static_cast<long int>(0x4007da92), "FS31/FS36/FS37/FS300/FS305/FS306/FS307" },
|
|
|
|
{ 0x4007da92, "FS31/FS36/FS37/FS300/FS305/FS306/FS307" },
|
|
|
|
{ static_cast<long int>(0x4007dca0), "EOS C300" },
|
|
|
|
{ 0x4007dca0, "EOS C300" },
|
|
|
|
{ static_cast<long int>(0x4007dda9), "HF G25" },
|
|
|
|
{ 0x4007dda9, "HF G25" },
|
|
|
|
{ static_cast<long int>(0x4007dfb4), "XC10" },
|
|
|
|
{ 0x4007dfb4, "XC10" },
|
|
|
|
{ static_cast<long int>(0x4007e1c3), "EOS C200" },
|
|
|
|
{ 0x4007e1c3, "EOS C200" },
|
|
|
|
{ static_cast<long int>(0x80000001), "EOS-1D" },
|
|
|
|
{ 0x80000001, "EOS-1D" },
|
|
|
|
{ static_cast<long int>(0x80000167), "EOS-1DS" },
|
|
|
|
{ 0x80000167, "EOS-1DS" },
|
|
|
|
{ static_cast<long int>(0x80000168), "EOS 10D" },
|
|
|
|
{ 0x80000168, "EOS 10D" },
|
|
|
|
{ static_cast<long int>(0x80000169), "EOS-1D Mark III" },
|
|
|
|
{ 0x80000169, "EOS-1D Mark III" },
|
|
|
|
{ static_cast<long int>(0x80000170), "EOS Digital Rebel / 300D / Kiss Digital" },
|
|
|
|
{ 0x80000170, "EOS Digital Rebel / 300D / Kiss Digital" },
|
|
|
|
{ static_cast<long int>(0x80000174), "EOS-1D Mark II" },
|
|
|
|
{ 0x80000174, "EOS-1D Mark II" },
|
|
|
|
{ static_cast<long int>(0x80000175), "EOS 20D" },
|
|
|
|
{ 0x80000175, "EOS 20D" },
|
|
|
|
{ static_cast<long int>(0x80000176), "EOS Digital Rebel XSi / 450D / Kiss X2" },
|
|
|
|
{ 0x80000176, "EOS Digital Rebel XSi / 450D / Kiss X2" },
|
|
|
|
{ static_cast<long int>(0x80000188), "EOS-1Ds Mark II" },
|
|
|
|
{ 0x80000188, "EOS-1Ds Mark II" },
|
|
|
|
{ static_cast<long int>(0x80000189), "EOS Digital Rebel XT / 350D / Kiss Digital N" },
|
|
|
|
{ 0x80000189, "EOS Digital Rebel XT / 350D / Kiss Digital N" },
|
|
|
|
{ static_cast<long int>(0x80000190), "EOS 40D" },
|
|
|
|
{ 0x80000190, "EOS 40D" },
|
|
|
|
{ static_cast<long int>(0x80000213), "EOS 5D" },
|
|
|
|
{ 0x80000213, "EOS 5D" },
|
|
|
|
{ static_cast<long int>(0x80000215), "EOS-1Ds Mark III" },
|
|
|
|
{ 0x80000215, "EOS-1Ds Mark III" },
|
|
|
|
{ static_cast<long int>(0x80000218), "EOS 5D Mark II" },
|
|
|
|
{ 0x80000218, "EOS 5D Mark II" },
|
|
|
|
{ static_cast<long int>(0x80000219), "WFT-E1" },
|
|
|
|
{ 0x80000219, "WFT-E1" },
|
|
|
|
{ static_cast<long int>(0x80000232), "EOS-1D Mark II N" },
|
|
|
|
{ 0x80000232, "EOS-1D Mark II N" },
|
|
|
|
{ static_cast<long int>(0x80000234), "EOS 30D" },
|
|
|
|
{ 0x80000234, "EOS 30D" },
|
|
|
|
{ static_cast<long int>(0x80000236), "EOS Digital Rebel XTi / 400D / Kiss Digital X" },
|
|
|
|
{ 0x80000236, "EOS Digital Rebel XTi / 400D / Kiss Digital X" },
|
|
|
|
{ static_cast<long int>(0x80000241), "WFT-E2" },
|
|
|
|
{ 0x80000241, "WFT-E2" },
|
|
|
|
{ static_cast<long int>(0x80000246), "WFT-E3" },
|
|
|
|
{ 0x80000246, "WFT-E3" },
|
|
|
|
{ static_cast<long int>(0x80000250), "EOS 7D" },
|
|
|
|
{ 0x80000250, "EOS 7D" },
|
|
|
|
{ static_cast<long int>(0x80000252), "EOS Rebel T1i / 500D / Kiss X3" },
|
|
|
|
{ 0x80000252, "EOS Rebel T1i / 500D / Kiss X3" },
|
|
|
|
{ static_cast<long int>(0x80000254), "EOS Rebel XS / 1000D / Kiss F" },
|
|
|
|
{ 0x80000254, "EOS Rebel XS / 1000D / Kiss F" },
|
|
|
|
{ static_cast<long int>(0x80000261), "EOS 50D" },
|
|
|
|
{ 0x80000261, "EOS 50D" },
|
|
|
|
{ static_cast<long int>(0x80000269), "EOS-1D X" },
|
|
|
|
{ 0x80000269, "EOS-1D X" },
|
|
|
|
{ static_cast<long int>(0x80000270), "EOS Rebel T2i / 550D / Kiss X4" },
|
|
|
|
{ 0x80000270, "EOS Rebel T2i / 550D / Kiss X4" },
|
|
|
|
{ static_cast<long int>(0x80000271), "WFT-E4" },
|
|
|
|
{ 0x80000271, "WFT-E4" },
|
|
|
|
{ static_cast<long int>(0x80000273), "WFT-E5" },
|
|
|
|
{ 0x80000273, "WFT-E5" },
|
|
|
|
{ static_cast<long int>(0x80000281), "EOS-1D Mark IV" },
|
|
|
|
{ 0x80000281, "EOS-1D Mark IV" },
|
|
|
|
{ static_cast<long int>(0x80000285), "EOS 5D Mark III" },
|
|
|
|
{ 0x80000285, "EOS 5D Mark III" },
|
|
|
|
{ static_cast<long int>(0x80000286), "EOS Rebel T3i / 600D / Kiss X5" },
|
|
|
|
{ 0x80000286, "EOS Rebel T3i / 600D / Kiss X5" },
|
|
|
|
{ static_cast<long int>(0x80000287), "EOS 60D" },
|
|
|
|
{ 0x80000287, "EOS 60D" },
|
|
|
|
{ static_cast<long int>(0x80000288), "EOS Rebel T3 / 1100D / Kiss X50" },
|
|
|
|
{ 0x80000288, "EOS Rebel T3 / 1100D / Kiss X50" },
|
|
|
|
{ static_cast<long int>(0x80000289), "EOS 7D Mark II" },
|
|
|
|
{ 0x80000289, "EOS 7D Mark II" },
|
|
|
|
{ static_cast<long int>(0x80000297), "WFT-E2 II" },
|
|
|
|
{ 0x80000297, "WFT-E2 II" },
|
|
|
|
{ static_cast<long int>(0x80000298), "WFT-E4 II" },
|
|
|
|
{ 0x80000298, "WFT-E4 II" },
|
|
|
|
{ static_cast<long int>(0x80000301), "EOS Rebel T4i / 650D / Kiss X6i" },
|
|
|
|
{ 0x80000301, "EOS Rebel T4i / 650D / Kiss X6i" },
|
|
|
|
{ static_cast<long int>(0x80000302), "EOS 6D" },
|
|
|
|
{ 0x80000302, "EOS 6D" },
|
|
|
|
{ static_cast<long int>(0x80000324), "EOS-1D C" },
|
|
|
|
{ 0x80000324, "EOS-1D C" },
|
|
|
|
{ static_cast<long int>(0x80000325), "EOS 70D" },
|
|
|
|
{ 0x80000325, "EOS 70D" },
|
|
|
|
{ static_cast<long int>(0x80000326), "EOS Rebel T5i / 700D / Kiss X7i" },
|
|
|
|
{ 0x80000326, "EOS Rebel T5i / 700D / Kiss X7i" },
|
|
|
|
{ static_cast<long int>(0x80000327), "EOS Rebel T5 / 1200D / Kiss X70 / Hi" },
|
|
|
|
{ 0x80000327, "EOS Rebel T5 / 1200D / Kiss X70 / Hi" },
|
|
|
|
{ static_cast<long int>(0x80000328), "EOS-1D X MARK II" },
|
|
|
|
{ 0x80000328, "EOS-1D X MARK II" },
|
|
|
|
{ static_cast<long int>(0x80000331), "EOS M" },
|
|
|
|
{ 0x80000331, "EOS M" },
|
|
|
|
{ static_cast<long int>(0x80000350), "EOS 80D" },
|
|
|
|
{ 0x80000350, "EOS 80D" },
|
|
|
|
{ static_cast<long int>(0x80000355), "EOS M2" },
|
|
|
|
{ 0x80000355, "EOS M2" },
|
|
|
|
{ static_cast<long int>(0x80000346), "EOS Rebel SL1 / 100D / Kiss X7" },
|
|
|
|
{ 0x80000346, "EOS Rebel SL1 / 100D / Kiss X7" },
|
|
|
|
{ static_cast<long int>(0x80000347), "EOS Rebel T6s / 760D / 8000D" },
|
|
|
|
{ 0x80000347, "EOS Rebel T6s / 760D / 8000D" },
|
|
|
|
{ static_cast<long int>(0x80000349), "EOS 5D Mark IV" },
|
|
|
|
{ 0x80000349, "EOS 5D Mark IV" },
|
|
|
|
{ static_cast<long int>(0x80000382), "EOS 5DS" },
|
|
|
|
{ 0x80000382, "EOS 5DS" },
|
|
|
|
{ static_cast<long int>(0x80000393), "EOS Rebel T6i / 750D / Kiss X8i" },
|
|
|
|
{ 0x80000393, "EOS Rebel T6i / 750D / Kiss X8i" },
|
|
|
|
{ static_cast<long int>(0x80000401), "EOS 5DS R" },
|
|
|
|
{ 0x80000401, "EOS 5DS R" },
|
|
|
|
{ static_cast<long int>(0x80000404), "EOS Rebel T6 / 1300D / Kiss X80" },
|
|
|
|
{ 0x80000404, "EOS Rebel T6 / 1300D / Kiss X80" },
|
|
|
|
{ static_cast<long int>(0x80000405), "EOS Rebel T7i / 800D / Kiss X9i" },
|
|
|
|
{ 0x80000405, "EOS Rebel T7i / 800D / Kiss X9i" },
|
|
|
|
{ static_cast<long int>(0x80000406), "EOS 6D Mark II" },
|
|
|
|
{ 0x80000406, "EOS 6D Mark II" },
|
|
|
|
{ static_cast<long int>(0x80000408), "EOS 77D / 9000D" },
|
|
|
|
{ 0x80000408, "EOS 77D / 9000D" },
|
|
|
|
{ static_cast<long int>(0x80000417), "EOS Rebel SL2 / 200D / Kiss X9" },
|
|
|
|
{ 0x80000417, "EOS Rebel SL2 / 200D / Kiss X9" },
|
|
|
|
{ static_cast<long int>(0x80000421), "EOS R5" },
|
|
|
|
{ 0x80000421, "EOS R5" },
|
|
|
|
{ static_cast<long int>(0x80000422), "EOS Rebel T100 / 4000D / 3000D" },
|
|
|
|
{ 0x80000422, "EOS Rebel T100 / 4000D / 3000D" },
|
|
|
|
{ static_cast<long int>(0x80000424), "EOS R" },
|
|
|
|
{ 0x80000424, "EOS R" },
|
|
|
|
{ static_cast<long int>(0x80000428), "EOS-1D X Mark III" },
|
|
|
|
{ 0x80000428, "EOS-1D X Mark III" },
|
|
|
|
{ static_cast<long int>(0x80000432), "EOS Rebel T7 / 2000D / 1500D / Kiss X90" },
|
|
|
|
{ 0x80000432, "EOS Rebel T7 / 2000D / 1500D / Kiss X90" },
|
|
|
|
{ static_cast<long int>(0x80000433), "EOS RP" },
|
|
|
|
{ 0x80000433, "EOS RP" },
|
|
|
|
{ static_cast<long int>(0x80000435), "EOS 850D / T8i / Kiss X10i" },
|
|
|
|
{ 0x80000435, "EOS 850D / T8i / Kiss X10i" },
|
|
|
|
{ static_cast<long int>(0x80000436), "EOS SL3 / 250D / Kiss X10" },
|
|
|
|
{ 0x80000436, "EOS SL3 / 250D / Kiss X10" },
|
|
|
|
{ static_cast<long int>(0x80000437), "EOS 90D" },
|
|
|
|
{ 0x80000437, "EOS 90D" },
|
|
|
|
{ static_cast<long int>(0x80000453), "EOS R6" },
|
|
|
|
{ 0x80000453, "EOS R6" },
|
|
|
|
//{ (long int)tbd, "EOS Ra" },
|
|
|
|
//{ (long int)tbd, "EOS Ra" },
|
|
|
|
//{ (long int)tbd, "EOS M50 Mark II" },
|
|
|
|
//{ (long int)tbd, "EOS M50 Mark II" },
|
|
|
|
{static_cast<long int>(0x80000520), "EOS D2000C"},
|
|
|
|
{0x80000520, "EOS D2000C"},
|
|
|
|
{static_cast<long int>(0x80000560), "EOS D6000C"}};
|
|
|
|
{0x80000560, "EOS D6000C"}};
|
|
|
|
|
|
|
|
|
|
|
|
//! SerialNumberFormat, tag 0x0015
|
|
|
|
//! SerialNumberFormat, tag 0x0015
|
|
|
|
constexpr TagDetails canonSerialNumberFormat[] = {
|
|
|
|
constexpr TagDetails canonSerialNumberFormat[] = {
|
|
|
|
{ static_cast<long int>(0x90000000), N_("Format 1") },
|
|
|
|
{ 0x90000000, N_("Format 1") },
|
|
|
|
{ static_cast<long int>(0xa0000000), N_("Format 2") },
|
|
|
|
{ 0xa0000000, N_("Format 2") },
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//! SuperMacro, tag 0x001a
|
|
|
|
//! SuperMacro, tag 0x001a
|
|
|
@ -2621,7 +2621,7 @@ namespace Exiv2 {
|
|
|
|
std::string model = pos->toString();
|
|
|
|
std::string model = pos->toString();
|
|
|
|
if (model.find("20D") != std::string::npos || model.find("350D") != std::string::npos ||
|
|
|
|
if (model.find("20D") != std::string::npos || model.find("350D") != std::string::npos ||
|
|
|
|
model.substr(model.size() - 8, 8) == "REBEL XT" || model.find("Kiss Digital N") != std::string::npos) {
|
|
|
|
model.substr(model.size() - 8, 8) == "REBEL XT" || model.find("Kiss Digital N") != std::string::npos) {
|
|
|
|
uint32_t val = value.toLong();
|
|
|
|
uint32_t val = value.toUint32();
|
|
|
|
uint32_t dn = (val & 0xffc0) >> 6;
|
|
|
|
uint32_t dn = (val & 0xffc0) >> 6;
|
|
|
|
uint32_t fn = ((val >> 16) & 0xff) + ((val & 0x3f) << 8);
|
|
|
|
uint32_t fn = ((val >> 16) & 0xff) + ((val & 0x3f) << 8);
|
|
|
|
os << std::dec << dn << "-" << std::setw(4) << std::setfill('0') << fn;
|
|
|
|
os << std::dec << dn << "-" << std::setw(4) << std::setfill('0') << fn;
|
|
|
@ -2631,7 +2631,7 @@ namespace Exiv2 {
|
|
|
|
if (model.find("30D") != std::string::npos || model.find("400D") != std::string::npos ||
|
|
|
|
if (model.find("30D") != std::string::npos || model.find("400D") != std::string::npos ||
|
|
|
|
model.find("REBEL XTi") != std::string::npos || model.find("Kiss Digital X") != std::string::npos ||
|
|
|
|
model.find("REBEL XTi") != std::string::npos || model.find("Kiss Digital X") != std::string::npos ||
|
|
|
|
model.find("K236") != std::string::npos) {
|
|
|
|
model.find("K236") != std::string::npos) {
|
|
|
|
uint32_t val = value.toLong();
|
|
|
|
uint32_t val = value.toUint32();
|
|
|
|
uint32_t dn = (val & 0xffc00) >> 10;
|
|
|
|
uint32_t dn = (val & 0xffc00) >> 10;
|
|
|
|
while (dn < 100)
|
|
|
|
while (dn < 100)
|
|
|
|
dn += 0x40;
|
|
|
|
dn += 0x40;
|
|
|
@ -2703,7 +2703,7 @@ namespace Exiv2 {
|
|
|
|
if ( value.typeId() != unsignedShort
|
|
|
|
if ( value.typeId() != unsignedShort
|
|
|
|
|| value.count() == 0) return os << value;
|
|
|
|
|| value.count() == 0) return os << value;
|
|
|
|
|
|
|
|
|
|
|
|
long l = value.toLong();
|
|
|
|
const auto l = value.toInt64();
|
|
|
|
if (l == 0) {
|
|
|
|
if (l == 0) {
|
|
|
|
os << "Off";
|
|
|
|
os << "Off";
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -2739,7 +2739,7 @@ namespace Exiv2 {
|
|
|
|
if (!metadata || value.typeId() != unsignedShort || value.count() == 0)
|
|
|
|
if (!metadata || value.typeId() != unsignedShort || value.count() == 0)
|
|
|
|
return os << value;
|
|
|
|
return os << value;
|
|
|
|
|
|
|
|
|
|
|
|
auto const lensType = value.toLong();
|
|
|
|
auto const lensType = value.toInt64();
|
|
|
|
|
|
|
|
|
|
|
|
if (lensType == 0xffff){
|
|
|
|
if (lensType == 0xffff){
|
|
|
|
return printCsLensFFFF(os, value, metadata);
|
|
|
|
return printCsLensFFFF(os, value, metadata);
|
|
|
@ -2755,8 +2755,8 @@ namespace Exiv2 {
|
|
|
|
return os;
|
|
|
|
return os;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int const exifFlMin = static_cast<int>(static_cast<float>(pos->value().toLong(1)) / pos->value().toFloat(2));
|
|
|
|
int const exifFlMin = static_cast<int>(static_cast<float>(pos->value().toInt64(1)) / pos->value().toFloat(2));
|
|
|
|
int const exifFlMax = static_cast<int>(static_cast<float>(pos->value().toLong(0)) / pos->value().toFloat(2));
|
|
|
|
int const exifFlMax = static_cast<int>(static_cast<float>(pos->value().toInt64(0)) / pos->value().toFloat(2));
|
|
|
|
|
|
|
|
|
|
|
|
ExifKey aperKey("Exif.CanonCs.MaxAperture");
|
|
|
|
ExifKey aperKey("Exif.CanonCs.MaxAperture");
|
|
|
|
pos = metadata->findKey(aperKey);
|
|
|
|
pos = metadata->findKey(aperKey);
|
|
|
@ -2765,7 +2765,7 @@ namespace Exiv2 {
|
|
|
|
return os;
|
|
|
|
return os;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
auto exifAperMax = fnumber(canonEv(static_cast<int16_t>(pos->value().toLong(0))));
|
|
|
|
auto exifAperMax = fnumber(canonEv(static_cast<int16_t>(pos->value().toInt64(0))));
|
|
|
|
|
|
|
|
|
|
|
|
// regex to extract short and tele focal length, max aperture at short and tele position
|
|
|
|
// regex to extract short and tele focal length, max aperture at short and tele position
|
|
|
|
// and the teleconverter factor from the lens label
|
|
|
|
// and the teleconverter factor from the lens label
|
|
|
@ -2865,8 +2865,8 @@ namespace Exiv2 {
|
|
|
|
float fu = value.toFloat(2);
|
|
|
|
float fu = value.toFloat(2);
|
|
|
|
if (fu == 0.0F)
|
|
|
|
if (fu == 0.0F)
|
|
|
|
return os << value;
|
|
|
|
return os << value;
|
|
|
|
float len1 = value.toLong(0) / fu;
|
|
|
|
float len1 = value.toInt64(0) / fu;
|
|
|
|
float len2 = value.toLong(1) / fu;
|
|
|
|
float len2 = value.toInt64(1) / fu;
|
|
|
|
std::ostringstream oss;
|
|
|
|
std::ostringstream oss;
|
|
|
|
oss.copyfmt(os);
|
|
|
|
oss.copyfmt(os);
|
|
|
|
os << std::fixed << std::setprecision(1);
|
|
|
|
os << std::fixed << std::setprecision(1);
|
|
|
@ -2887,7 +2887,7 @@ namespace Exiv2 {
|
|
|
|
std::ios::fmtflags f( os.flags() );
|
|
|
|
std::ios::fmtflags f( os.flags() );
|
|
|
|
if ( value.typeId() == unsignedShort
|
|
|
|
if ( value.typeId() == unsignedShort
|
|
|
|
&& value.count() > 0) {
|
|
|
|
&& value.count() > 0) {
|
|
|
|
os << std::exp(canonEv(value.toLong()) / 32 * std::log(2.0F)) * 100.0F;
|
|
|
|
os << std::exp(canonEv(value.toInt64()) / 32 * std::log(2.0F)) * 100.0F;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
os.flags(f);
|
|
|
|
os.flags(f);
|
|
|
|
return os;
|
|
|
|
return os;
|
|
|
@ -2901,7 +2901,7 @@ namespace Exiv2 {
|
|
|
|
if ( value.typeId() == unsignedShort
|
|
|
|
if ( value.typeId() == unsignedShort
|
|
|
|
&& value.count() > 0) {
|
|
|
|
&& value.count() > 0) {
|
|
|
|
// Ported from Exiftool by Will Stokes
|
|
|
|
// Ported from Exiftool by Will Stokes
|
|
|
|
os << std::exp(canonEv(value.toLong()) * std::log(2.0F)) * 100.0F / 32.0F;
|
|
|
|
os << std::exp(canonEv(value.toInt64()) * std::log(2.0F)) * 100.0F / 32.0F;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
os.flags(f);
|
|
|
|
os.flags(f);
|
|
|
|
return os;
|
|
|
|
return os;
|
|
|
@ -2919,7 +2919,7 @@ namespace Exiv2 {
|
|
|
|
// see also printSi0x0017
|
|
|
|
// see also printSi0x0017
|
|
|
|
std::ostringstream oss;
|
|
|
|
std::ostringstream oss;
|
|
|
|
oss.copyfmt(os);
|
|
|
|
oss.copyfmt(os);
|
|
|
|
int res = static_cast<int>(100.0 * (static_cast<short>(value.toLong()) / 32.0 + 5.0) + 0.5);
|
|
|
|
int res = static_cast<int>(100.0 * (static_cast<short>(value.toInt64()) / 32.0 + 5.0) + 0.5);
|
|
|
|
os << std::fixed << std::setprecision(2) << res / 100.0;
|
|
|
|
os << std::fixed << std::setprecision(2) << res / 100.0;
|
|
|
|
os.copyfmt(oss);
|
|
|
|
os.copyfmt(oss);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -2933,7 +2933,7 @@ namespace Exiv2 {
|
|
|
|
if ( value.typeId() != unsignedShort
|
|
|
|
if ( value.typeId() != unsignedShort
|
|
|
|
|| value.count() == 0) return os << value;
|
|
|
|
|| value.count() == 0) return os << value;
|
|
|
|
|
|
|
|
|
|
|
|
long l = value.toLong();
|
|
|
|
const auto l = value.toInt64();
|
|
|
|
os << l << "";
|
|
|
|
os << l << "";
|
|
|
|
// Todo: determine unit
|
|
|
|
// Todo: determine unit
|
|
|
|
return os;
|
|
|
|
return os;
|
|
|
@ -2943,18 +2943,18 @@ namespace Exiv2 {
|
|
|
|
const Value& value,
|
|
|
|
const Value& value,
|
|
|
|
const ExifData*)
|
|
|
|
const ExifData*)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (value.toLong() == 0) return os << "--";
|
|
|
|
if (value.toInt64() == 0) return os << "--";
|
|
|
|
|
|
|
|
|
|
|
|
return os << value.toLong() - 128 << " °C";
|
|
|
|
return os << value.toInt64() - 128 << " °C";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
std::ostream& CanonMakerNote::printSi0x000d(std::ostream& os,
|
|
|
|
std::ostream& CanonMakerNote::printSi0x000d(std::ostream& os,
|
|
|
|
const Value& value,
|
|
|
|
const Value& value,
|
|
|
|
const ExifData*)
|
|
|
|
const ExifData*)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (value.toLong() == 65535) return os << "--";
|
|
|
|
if (value.toInt64() == 65535) return os << "--";
|
|
|
|
|
|
|
|
|
|
|
|
return os << value.toLong() / 32;
|
|
|
|
return os << value.toInt64() / 32;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
std::ostream& CanonMakerNote::printSi0x000e(std::ostream& os,
|
|
|
|
std::ostream& CanonMakerNote::printSi0x000e(std::ostream& os,
|
|
|
@ -2964,10 +2964,10 @@ namespace Exiv2 {
|
|
|
|
if ( value.typeId() != unsignedShort
|
|
|
|
if ( value.typeId() != unsignedShort
|
|
|
|
|| value.count() == 0) return os << value;
|
|
|
|
|| value.count() == 0) return os << value;
|
|
|
|
|
|
|
|
|
|
|
|
long l = value.toLong();
|
|
|
|
const auto l = value.toInt64();
|
|
|
|
long num = (l & 0xf000) >> 12;
|
|
|
|
const auto num = (l & 0xf000) >> 12;
|
|
|
|
os << num << " focus points; ";
|
|
|
|
os << num << " focus points; ";
|
|
|
|
long used = l & 0x0fff;
|
|
|
|
const auto used = l & 0x0fff;
|
|
|
|
if (used == 0) {
|
|
|
|
if (used == 0) {
|
|
|
|
os << "none";
|
|
|
|
os << "none";
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -2986,12 +2986,12 @@ namespace Exiv2 {
|
|
|
|
if ( value.typeId() != unsignedShort
|
|
|
|
if ( value.typeId() != unsignedShort
|
|
|
|
|| value.count() == 0) return os << value;
|
|
|
|
|| value.count() == 0) return os << value;
|
|
|
|
|
|
|
|
|
|
|
|
long l = value.toLong();
|
|
|
|
const auto l = value.toInt64();
|
|
|
|
if (l == 0xffff) {
|
|
|
|
if (l == 0xffff) {
|
|
|
|
os << "Infinite";
|
|
|
|
os << "Infinite";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
os << value.toLong()/100.0 << " m";
|
|
|
|
os << value.toInt64()/100.0 << " m";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
os.flags(f);
|
|
|
|
os.flags(f);
|
|
|
|
return os;
|
|
|
|
return os;
|
|
|
@ -3006,7 +3006,7 @@ namespace Exiv2 {
|
|
|
|
|
|
|
|
|
|
|
|
std::ostringstream oss;
|
|
|
|
std::ostringstream oss;
|
|
|
|
oss.copyfmt(os);
|
|
|
|
oss.copyfmt(os);
|
|
|
|
long val = static_cast<int16_t>(value.toLong());
|
|
|
|
const auto val = static_cast<int16_t>(value.toInt64());
|
|
|
|
if (val < 0) return os << value;
|
|
|
|
if (val < 0) return os << value;
|
|
|
|
os << std::setprecision(2)
|
|
|
|
os << std::setprecision(2)
|
|
|
|
<< "F" << fnumber(canonEv(val));
|
|
|
|
<< "F" << fnumber(canonEv(val));
|
|
|
@ -3022,7 +3022,7 @@ namespace Exiv2 {
|
|
|
|
if ( value.typeId() != unsignedShort
|
|
|
|
if ( value.typeId() != unsignedShort
|
|
|
|
|| value.count() == 0) return os << value;
|
|
|
|
|| value.count() == 0) return os << value;
|
|
|
|
|
|
|
|
|
|
|
|
URational ur = exposureTime(canonEv(value.toLong()));
|
|
|
|
URational ur = exposureTime(canonEv(value.toInt64()));
|
|
|
|
os << ur.first;
|
|
|
|
os << ur.first;
|
|
|
|
if (ur.second > 1) {
|
|
|
|
if (ur.second > 1) {
|
|
|
|
os << "/" << ur.second;
|
|
|
|
os << "/" << ur.second;
|
|
|
@ -3041,7 +3041,7 @@ namespace Exiv2 {
|
|
|
|
std::ostringstream oss;
|
|
|
|
std::ostringstream oss;
|
|
|
|
oss.copyfmt(os);
|
|
|
|
oss.copyfmt(os);
|
|
|
|
os << std::fixed << std::setprecision(2)
|
|
|
|
os << std::fixed << std::setprecision(2)
|
|
|
|
<< value.toLong() / 8.0 - 6.0;
|
|
|
|
<< value.toInt64() / 8.0 - 6.0;
|
|
|
|
os.copyfmt(oss);
|
|
|
|
os.copyfmt(oss);
|
|
|
|
return os;
|
|
|
|
return os;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -3050,7 +3050,7 @@ namespace Exiv2 {
|
|
|
|
const Value& value,
|
|
|
|
const Value& value,
|
|
|
|
const ExifData*)
|
|
|
|
const ExifData*)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return os << value.toLong() / 10;
|
|
|
|
return os << value.toInt64() / 10;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
std::ostream& CanonMakerNote::printFiFocusDistance(std::ostream& os,
|
|
|
|
std::ostream& CanonMakerNote::printFiFocusDistance(std::ostream& os,
|
|
|
@ -3065,12 +3065,12 @@ namespace Exiv2 {
|
|
|
|
oss.copyfmt(os);
|
|
|
|
oss.copyfmt(os);
|
|
|
|
os << std::fixed << std::setprecision(2);
|
|
|
|
os << std::fixed << std::setprecision(2);
|
|
|
|
|
|
|
|
|
|
|
|
long l = value.toLong();
|
|
|
|
const auto l = value.toInt64();
|
|
|
|
if (l == -1) {
|
|
|
|
if (l == -1) {
|
|
|
|
os << "Infinite";
|
|
|
|
os << "Infinite";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
os << value.toLong()/100.0 << " m";
|
|
|
|
os << value.toInt64()/100.0 << " m";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
os.copyfmt(oss);
|
|
|
|
os.copyfmt(oss);
|
|
|
@ -3081,7 +3081,7 @@ namespace Exiv2 {
|
|
|
|
// *****************************************************************************
|
|
|
|
// *****************************************************************************
|
|
|
|
// free functions
|
|
|
|
// free functions
|
|
|
|
|
|
|
|
|
|
|
|
float canonEv(long val)
|
|
|
|
float canonEv(int64_t val)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// temporarily remove sign
|
|
|
|
// temporarily remove sign
|
|
|
|
int sign = 1;
|
|
|
|
int sign = 1;
|
|
|
@ -3090,8 +3090,9 @@ namespace Exiv2 {
|
|
|
|
val = -val;
|
|
|
|
val = -val;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// remove fraction
|
|
|
|
// remove fraction
|
|
|
|
auto frac = static_cast<float>(val & 0x1f);
|
|
|
|
const auto remainder = val & 0x1f;
|
|
|
|
val -= long(frac);
|
|
|
|
val -= remainder;
|
|
|
|
|
|
|
|
float frac = static_cast<float>(remainder);
|
|
|
|
// convert 1/3 (0x0c) and 2/3 (0x14) codes
|
|
|
|
// convert 1/3 (0x0c) and 2/3 (0x14) codes
|
|
|
|
if (frac == 0x0c) {
|
|
|
|
if (frac == 0x0c) {
|
|
|
|
frac = 32.0F / 3;
|
|
|
|
frac = 32.0F / 3;
|
|
|
|