/src/exiv2/src/sonymn_int.hpp
Line | Count | Source |
1 | | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | | |
3 | | #ifndef SONYMN_INT_HPP_ |
4 | | #define SONYMN_INT_HPP_ |
5 | | |
6 | | // ***************************************************************************** |
7 | | // included header files |
8 | | #include "tifffwd_int.hpp" |
9 | | #include "types.hpp" |
10 | | |
11 | | #include <cstddef> |
12 | | #include <cstdint> |
13 | | #include <iosfwd> |
14 | | |
15 | | // ***************************************************************************** |
16 | | // namespace extensions |
17 | | namespace Exiv2 { |
18 | | class ExifData; |
19 | | class Value; |
20 | | struct TagInfo; |
21 | | namespace Internal { |
22 | | // ***************************************************************************** |
23 | | // class definitions |
24 | | |
25 | | //! MakerNote for Sony cameras |
26 | | class SonyMakerNote { |
27 | | public: |
28 | | //! Return read-only list of built-in Sony tags |
29 | 0 | static constexpr auto tagList() { |
30 | 0 | return tagInfo_; |
31 | 0 | } |
32 | | //! Return read-only list of built-in Sony Standard Camera Settings tags |
33 | 0 | static constexpr auto tagListCs() { |
34 | 0 | return tagInfoCs_; |
35 | 0 | } |
36 | | //! Return read-only list of built-in Sony Standard Camera Settings version 2 tags |
37 | 0 | static constexpr auto tagListCs2() { |
38 | 0 | return tagInfoCs2_; |
39 | 0 | } |
40 | | //! Return read-only list of built-in Sony FocusPosition tags |
41 | 0 | static constexpr auto tagListFp() { |
42 | 0 | return tagInfoFp_; |
43 | 0 | } |
44 | | //! Return read-only list of built-in Sony Misc1 tags (Tag 9403) |
45 | 0 | static constexpr auto tagListSonyMisc1() { |
46 | 0 | return tagInfoSonyMisc1_; |
47 | 0 | } |
48 | | //! Return read-only list of built-in Sony Misc2b tags (Tag 9404) |
49 | 0 | static constexpr auto tagListSonyMisc2b() { |
50 | 0 | return tagInfoSonyMisc2b_; |
51 | 0 | } |
52 | | //! Return read-only list of built-in Sony Misc3c tags (Tag 9400) |
53 | 0 | static constexpr auto tagListSonyMisc3c() { |
54 | 0 | return tagInfoSonyMisc3c_; |
55 | 0 | } |
56 | | //! Return read-only list of built-in Sony SInfo1 tags (Tag 3000) |
57 | 0 | static constexpr auto tagListSonySInfo1() { |
58 | 0 | return tagInfoSonySInfo1_; |
59 | 0 | } |
60 | | //! Return read-only list of built-in Sony 2010e tags (Tag 2010) |
61 | 0 | static constexpr auto tagList2010e() { |
62 | 0 | return tagInfo2010e_; |
63 | 0 | } |
64 | | |
65 | | //! @name Print functions for Sony %MakerNote tags |
66 | | //@{ |
67 | | //! Print Sony white balance fine tune values |
68 | | static std::ostream& printWhiteBalanceFineTune(std::ostream&, const Value&, const ExifData*); |
69 | | //! Print Sony multi-burst mode values |
70 | | static std::ostream& printMultiBurstMode(std::ostream&, const Value&, const ExifData*); |
71 | | //! Print Sony multi-burst size values |
72 | | static std::ostream& printMultiBurstSize(std::ostream&, const Value&, const ExifData*); |
73 | | //! Print Sony HDR values |
74 | | static std::ostream& printAutoHDRStd(std::ostream&, const Value&, const ExifData*); |
75 | | //! Print Sony white balance shift amber/blue or green/magenta values |
76 | | static std::ostream& printWBShiftABGM(std::ostream&, const Value&, const ExifData*); |
77 | | //! Print Sony focus mode 2 values |
78 | | static std::ostream& printFocusMode2(std::ostream&, const Value&, const ExifData*); |
79 | | //! Print Sony auto-focus area mode Settings values |
80 | | static std::ostream& printAFAreaModeSetting(std::ostream&, const Value&, const ExifData*); |
81 | | //! Print Sony flexible spot position values |
82 | | static std::ostream& printFlexibleSpotPosition(std::ostream&, const Value&, const ExifData*); |
83 | | //! Print Sony auto-focus point selected values |
84 | | static std::ostream& printAFPointSelected(std::ostream&, const Value&, const ExifData*); |
85 | | //! Print Sony auto-focus points used values |
86 | | static std::ostream& printAFPointsUsed(std::ostream&, const Value&, const ExifData*); |
87 | | //! Print Sony auto-focus tracking values |
88 | | static std::ostream& printAFTracking(std::ostream&, const Value&, const ExifData*); |
89 | | //! Print Sony focal plane auto-focus points used values |
90 | | static std::ostream& printFocalPlaneAFPointsUsed(std::ostream&, const Value&, const ExifData*); |
91 | | //! Print Sony white balance shift amber/blue and green/magenta precise values |
92 | | static std::ostream& printWBShiftABGMPrecise(std::ostream&, const Value&, const ExifData*); |
93 | | //! Print Sony variable low pass filter values |
94 | | static std::ostream& printExposureStandardAdjustment(std::ostream&, const Value&, const ExifData*); |
95 | | //! Print Sony pixel shift information values |
96 | | static std::ostream& printPixelShiftInfo(std::ostream&, const Value&, const ExifData*); |
97 | | //! Print Sony focus frame size values |
98 | | static std::ostream& printFocusFrameSize(std::ostream&, const Value&, const ExifData*); |
99 | | //! Print Sony color temperature values |
100 | | static std::ostream& printColorTemperature(std::ostream&, const Value&, const ExifData*); |
101 | | //! Print Sony color compensation filter values |
102 | | static std::ostream& printColorCompensationFilter(std::ostream&, const Value&, const ExifData*); |
103 | | //! Print Sony lens specification values |
104 | | static std::ostream& printLensSpec(std::ostream&, const Value&, const ExifData*); |
105 | | //! Print Sony focus mode values |
106 | | static std::ostream& printFocusMode(std::ostream&, const Value&, const ExifData*); |
107 | | //! Print Sony full and preview image size values |
108 | | static std::ostream& printImageSize(std::ostream&, const Value&, const ExifData*); |
109 | | //! Print Sony auto-focus area mode values |
110 | | static std::ostream& printAFMode(std::ostream&, const Value&, const ExifData*); |
111 | | //! Print Sony focus mode 3 values |
112 | | static std::ostream& printFocusMode3(std::ostream&, const Value&, const ExifData*); |
113 | | //! Print Sony high ISO noise reduction 2 values |
114 | | static std::ostream& printHighISONoiseReduction2(std::ostream&, const Value&, const ExifData*); |
115 | | //! Print Sony SonyMisc1 CameraTemperature values (in degrees Celsius) |
116 | | static std::ostream& printSonyMisc1CameraTemperature(std::ostream&, const Value&, const ExifData*); |
117 | | //! Print Sony2Fp Focus Mode value |
118 | | static std::ostream& printSony2FpFocusMode(std::ostream&, const Value&, const ExifData*); |
119 | | //! Print Sony2Fp Focus Position 2 value |
120 | | static std::ostream& printSony2FpFocusPosition2(std::ostream&, const Value&, const ExifData* metadata); |
121 | | //! Print Sony 2Fp AmbientTemperature values (in degrees Celsius) |
122 | | static std::ostream& printSony2FpAmbientTemperature(std::ostream&, const Value&, const ExifData*); |
123 | | //! Print SonyMisc2b Lens Zoom Position value |
124 | | static std::ostream& printSonyMisc2bLensZoomPosition(std::ostream&, const Value&, const ExifData* metadata); |
125 | | //! Print SonyMisc2b Focus Position 2 value |
126 | | static std::ostream& printSonyMisc2bFocusPosition2(std::ostream&, const Value&, const ExifData* metadata); |
127 | | //! Print SonyMisc3c shot number since power up value |
128 | | static std::ostream& printSonyMisc3cShotNumberSincePowerUp(std::ostream&, const Value&, const ExifData*); |
129 | | //! Print SonyMisc3c sequence number |
130 | | static std::ostream& printSonyMisc3cSequenceNumber(std::ostream&, const Value&, const ExifData*); |
131 | | //! Print SonyMisc3c Sony image height value |
132 | | static std::ostream& printSonyMisc3cSonyImageHeight(std::ostream&, const Value&, const ExifData* metadata); |
133 | | //! Print SonyMisc3c model release year value |
134 | | static std::ostream& printSonyMisc3cModelReleaseYear(std::ostream&, const Value&, const ExifData* metadata); |
135 | | //! Print SonyMisc3c quality 2 value |
136 | | static std::ostream& printSonyMisc3cQuality2(std::ostream&, const Value&, const ExifData* metadata); |
137 | | |
138 | | private: |
139 | | //! Tag information |
140 | | static const TagInfo tagInfo_[]; |
141 | | static const TagInfo tagInfoCs_[]; |
142 | | static const TagInfo tagInfoCs2_[]; |
143 | | static const TagInfo tagInfoFp_[]; |
144 | | static const TagInfo tagInfoSonyMisc1_[]; |
145 | | static const TagInfo tagInfoSonyMisc2b_[]; |
146 | | static const TagInfo tagInfoSonyMisc3c_[]; |
147 | | static const TagInfo tagInfoSonySInfo1_[]; |
148 | | static const TagInfo tagInfo2010e_[]; |
149 | | |
150 | | }; // class SonyMakerNote |
151 | | |
152 | | DataBuf sonyTagDecipher(uint16_t, const byte*, size_t, TiffComponent*); |
153 | | DataBuf sonyTagEncipher(uint16_t, const byte*, size_t, TiffComponent*); |
154 | | |
155 | | } // namespace Internal |
156 | | } // namespace Exiv2 |
157 | | |
158 | | #endif // #ifndef SONYMN_INT_HPP_ |