/src/exiv2/src/casiomn_int.hpp
Line | Count | Source |
1 | | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | | |
3 | | /*! |
4 | | @file casiomn_int.hpp |
5 | | @brief Casio MakerNote implemented using the following references: |
6 | | <a href="http://gvsoft.homedns.org/exif/makernote-casio-type1.html">Casio MakerNote Information</a> by |
7 | | GVsoft, Casio.pm of <a href="http://www.sno.phy.queensu.ca/~phil/exiftool/">ExifTool</a> by Phil Harvey, <a |
8 | | href="http://www.ozhiker.com/electronics/pjmt/jpeg_info/casio_mn.html#Casio_Type_1_Tags">Casio Makernote Format |
9 | | Specification</a> by Evan Hunter. |
10 | | @date 30-Oct-13, ahu: created |
11 | | */ |
12 | | #ifndef EXIV2_CASIOMN_INT_HPP |
13 | | #define EXIV2_CASIOMN_INT_HPP |
14 | | |
15 | | // ***************************************************************************** |
16 | | // included header files |
17 | | #include <iosfwd> |
18 | | |
19 | | // ***************************************************************************** |
20 | | // namespace extensions |
21 | | namespace Exiv2 { |
22 | | class ExifData; |
23 | | class Value; |
24 | | struct TagInfo; |
25 | | |
26 | | namespace Internal { |
27 | | // ***************************************************************************** |
28 | | // class definitions |
29 | | |
30 | | //! MakerNote for Casio cameras |
31 | | class CasioMakerNote { |
32 | | public: |
33 | | //! Return read-only list of built-in Casio tags |
34 | 0 | static constexpr auto tagList() { |
35 | 0 | return tagInfo_; |
36 | 0 | } |
37 | | //! Print ObjectDistance |
38 | | static std::ostream& print0x0006(std::ostream& os, const Value& value, const ExifData*); |
39 | | //! Print FirmwareDate |
40 | | static std::ostream& print0x0015(std::ostream& os, const Value& value, const ExifData*); |
41 | | |
42 | | private: |
43 | | //! Makernote tag list |
44 | | static const TagInfo tagInfo_[]; |
45 | | |
46 | | }; // class CasioMakerNote |
47 | | |
48 | | //! MakerNote for Casio2 cameras |
49 | | class Casio2MakerNote { |
50 | | public: |
51 | | //! Return read-only list of built-in Casio2 tags |
52 | 302 | static constexpr auto tagList() { |
53 | 302 | return tagInfo_; |
54 | 302 | } |
55 | | //! Print FirmwareDate |
56 | | static std::ostream& print0x2001(std::ostream& os, const Value& value, const ExifData*); |
57 | | //! Print ObjectDistance |
58 | | static std::ostream& print0x2022(std::ostream& os, const Value& value, const ExifData*); |
59 | | |
60 | | private: |
61 | | //! Makernote tag list |
62 | | static const TagInfo tagInfo_[]; |
63 | | |
64 | | }; // class Casio2MakerNote |
65 | | |
66 | | } // namespace Internal |
67 | | } // namespace Exiv2 |
68 | | |
69 | | #endif // EXIV2_CASIOMN_INT_HPP |