/src/exiv2/src/olympusmn_int.hpp
Line | Count | Source |
1 | | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | | /*! |
3 | | @file olympusmn_int.hpp |
4 | | @brief Olympus makernote tags.<br>References:<br> |
5 | | [1] <a href="http://park2.wakwak.com/%7Etsuruzoh/Computer/Digicams/exif-e.html#APP1">Exif file format, |
6 | | Appendix 1: MakerNote of Olympus Digicams</a> by TsuruZoh Tachibanaya<br> [2] <a |
7 | | href="http://www.sno.phy.queensu.ca/~phil/exiftool/">ExifTool</a> by Phil Harvey<br> [3] <a |
8 | | href="http://www.ozhiker.com/electronics/pjmt/jpeg_info/olympus_mn.html">Olympus Makernote Format Specification</a> by |
9 | | Evan Hunter<br> [4] email communication with <a href="mailto:wstokes@gmail.com">Will Stokes</a> |
10 | | */ |
11 | | #ifndef OLYMPUSMN_INT_HPP_ |
12 | | #define OLYMPUSMN_INT_HPP_ |
13 | | |
14 | | // ***************************************************************************** |
15 | | // standard includes |
16 | | #include <iosfwd> |
17 | | |
18 | | // ***************************************************************************** |
19 | | // namespace extensions |
20 | | namespace Exiv2 { |
21 | | class ExifData; |
22 | | class Value; |
23 | | struct TagInfo; |
24 | | |
25 | | namespace Internal { |
26 | | // ***************************************************************************** |
27 | | // class definitions |
28 | | |
29 | | //! MakerNote for Olympus cameras |
30 | | class OlympusMakerNote { |
31 | | public: |
32 | | //! Return read-only list of built-in Olympus tags |
33 | 75.0k | static constexpr auto tagList() { |
34 | 75.0k | return tagInfo_; |
35 | 75.0k | } |
36 | | //! Return read-only list of built-in Olympus Camera Settings tags |
37 | 27.7k | static constexpr auto tagListCs() { |
38 | 27.7k | return tagInfoCs_; |
39 | 27.7k | } |
40 | | //! Return read-only list of built-in Olympus Equipment tags |
41 | 1.16k | static constexpr auto tagListEq() { |
42 | 1.16k | return tagInfoEq_; |
43 | 1.16k | } |
44 | | //! Return read-only list of built-in Olympus Raw Development tags |
45 | 324 | static constexpr auto tagListRd() { |
46 | 324 | return tagInfoRd_; |
47 | 324 | } |
48 | | //! Return read-only list of built-in Olympus Raw Development 2 tags |
49 | 302 | static constexpr auto tagListRd2() { |
50 | 302 | return tagInfoRd2_; |
51 | 302 | } |
52 | | //! Return read-only list of built-in Olympus Image Processing tags |
53 | 687 | static constexpr auto tagListIp() { |
54 | 687 | return tagInfoIp_; |
55 | 687 | } |
56 | | //! Return read-only list of built-in Olympus Focus Info tags |
57 | 669 | static constexpr auto tagListFi() { |
58 | 669 | return tagInfoFi_; |
59 | 669 | } |
60 | | //! Return read-only list of built-in Olympus FE tags |
61 | 709 | static constexpr auto tagListFe() { |
62 | 709 | return tagInfoFe_; |
63 | 709 | } |
64 | | //! Return read-only list of built-in Olympus Raw Info tags |
65 | 420 | static constexpr auto tagListRi() { |
66 | 420 | return tagInfoRi_; |
67 | 420 | } |
68 | | |
69 | | //! @name Print functions for Olympus %MakerNote tags |
70 | | //@{ |
71 | | //! Print 'Special Mode' |
72 | | static std::ostream& print0x0200(std::ostream& os, const Value& value, const ExifData*); |
73 | | //! Print Digital Zoom Factor |
74 | | static std::ostream& print0x0204(std::ostream& os, const Value& value, const ExifData*); |
75 | | //! Print White Balance Mode |
76 | | static std::ostream& print0x1015(std::ostream& os, const Value& value, const ExifData*); |
77 | | //! Print Olympus equipment Lens type |
78 | | static std::ostream& print0x0201(std::ostream& os, const Value& value, const ExifData*); |
79 | | //! Print Olympus CameraID |
80 | | static std::ostream& print0x0209(std::ostream& os, const Value& value, const ExifData*); |
81 | | //! Print Olympus equipment Extender |
82 | | static std::ostream& printEq0x0301(std::ostream& os, const Value& value, const ExifData*); |
83 | | //! Print Olympus camera settings Focus Mode |
84 | | static std::ostream& printCs0x0301(std::ostream& os, const Value& value, const ExifData*); |
85 | | //! Print Olympus camera settings Gradation |
86 | | static std::ostream& print0x050f(std::ostream& os, const Value& value, const ExifData*); |
87 | | //! Print Olympus camera settings Noise Filter |
88 | | static std::ostream& print0x0527(std::ostream& os, const Value& value, const ExifData*); |
89 | | //! Print Olympus ArtFilter |
90 | | static std::ostream& print0x0529(std::ostream& os, const Value& value, const ExifData*); |
91 | | //! Print Olympus focus info ManualFlash |
92 | | static std::ostream& print0x1209(std::ostream& os, const Value& value, const ExifData*); |
93 | | //! Print Olympus focus distance |
94 | | static std::ostream& print0x0305(std::ostream& os, const Value& value, const ExifData*); |
95 | | //! Print Olympus focus info AF Point |
96 | | static std::ostream& print0x0308(std::ostream& os, const Value& value, const ExifData*); |
97 | | //! Print Olympus generic |
98 | | static std::ostream& printGeneric(std::ostream& os, const Value& value, const ExifData*); |
99 | | //@} |
100 | | |
101 | | private: |
102 | | //! Tag information |
103 | | static const TagInfo tagInfo_[]; |
104 | | static const TagInfo tagInfoCs_[]; |
105 | | static const TagInfo tagInfoEq_[]; |
106 | | static const TagInfo tagInfoRd_[]; |
107 | | static const TagInfo tagInfoRd2_[]; |
108 | | static const TagInfo tagInfoIp_[]; |
109 | | static const TagInfo tagInfoFi_[]; |
110 | | static const TagInfo tagInfoFe_[]; |
111 | | static const TagInfo tagInfoRi_[]; |
112 | | |
113 | | }; // class OlympusMakerNote |
114 | | |
115 | | } // namespace Internal |
116 | | } // namespace Exiv2 |
117 | | |
118 | | #endif // #ifndef OLYMPUSMN_INT_HPP_ |