66 |
66 |
std::ostream& printCsLensByFocalLength(std::ostream& os,
|
67 |
67 |
const Value& value,
|
68 |
68 |
const ExifData* metadata);
|
|
69 |
std::ostream& printCsLensByFocalLengthTC(std::ostream& os,
|
|
70 |
const Value& value,
|
|
71 |
const ExifData* metadata);
|
69 |
72 |
|
70 |
73 |
//! ModelId, tag 0x0010
|
71 |
74 |
extern const TagDetails canonModelId[] = {
|
... | ... | |
798 |
801 |
{ 173, "Canon EF 180mm Macro f/3.5L" }, // 0
|
799 |
802 |
{ 173, "Sigma 180mm EX HSM Macro f/3.5" }, // 1
|
800 |
803 |
{ 173, "Sigma APO Macro 150mm f/3.5 EX DG IF HSM" }, // 2
|
|
804 |
{ 173, "Sigma 150-500mm f/5-6.3 APO DG OS HSM + 2x" }, // 3
|
801 |
805 |
{ 174, "Canon EF 135mm f/2L" }, // 0
|
802 |
806 |
{ 174, "Sigma 70-200mm f/2.8 EX DG APO OS HSM" }, // 1
|
803 |
807 |
{ 174, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM" }, // 2
|
... | ... | |
949 |
953 |
{ 161, printCsLensByFocalLength },
|
950 |
954 |
{ 169, printCsLensByFocalLength },
|
951 |
955 |
{ 172, printCsLensByFocalLength }, // not tested
|
952 |
|
{ 173, printCsLensByFocalLength }, // works partly
|
|
956 |
{ 173, printCsLensByFocalLengthTC }, // works partly
|
953 |
957 |
{ 174, printCsLensByFocalLength }, // not tested
|
954 |
958 |
{ 180, printCsLensByFocalLength },
|
955 |
959 |
{ 183, printCsLensByFocalLength }, // not tested
|
... | ... | |
1632 |
1636 |
const TagDetails* td = find(canonCsLensType, ltfl);
|
1633 |
1637 |
if (!td) return os << value;
|
1634 |
1638 |
return os << td->label_;
|
|
1639 |
}
|
|
1640 |
|
|
1641 |
std::ostream& printCsLensByFocalLengthTC(std::ostream& os,
|
|
1642 |
const Value& value,
|
|
1643 |
const ExifData* metadata)
|
|
1644 |
{
|
|
1645 |
if ( !metadata || value.typeId() != unsignedShort
|
|
1646 |
|| value.count() == 0) return os << value;
|
|
1647 |
|
|
1648 |
LensTypeAndFocalLengthAndMaxAperture ltfl;
|
|
1649 |
ltfl.lensType_ = value.toLong();
|
|
1650 |
|
|
1651 |
extractLensFocalLength(ltfl, metadata);
|
|
1652 |
if (ltfl.focalLength_.empty()) return os << value;
|
|
1653 |
|
|
1654 |
if (ltfl.lensType_ == 173 && ltfl.focalLength_.compare("300-1000mm") == 0)
|
|
1655 |
return os << "Sigma 150-500mm f/5-6.3 APO DG OS HSM + 2x";
|
|
1656 |
const TagDetails* td = find(canonCsLensType, ltfl);
|
|
1657 |
if (!td) return os << value;
|
|
1658 |
return os << td->label_;
|
1635 |
1659 |
}
|
1636 |
1660 |
|
1637 |
1661 |
std::ostream& CanonMakerNote::printCsLensType(std::ostream& os,
|