Coverage Report

Created: 2026-04-29 07:00

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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_