/src/exiv2/src/minoltamn_int.cpp
Line | Count | Source |
1 | | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | | |
3 | | // included header files |
4 | | #include "minoltamn_int.hpp" |
5 | | #include "exif.hpp" |
6 | | #include "i18n.h" // NLS support. |
7 | | #include "image_int.hpp" |
8 | | #include "makernote_int.hpp" |
9 | | #include "tags.hpp" |
10 | | #include "tags_int.hpp" |
11 | | #include "value.hpp" |
12 | | |
13 | | #include <cstdio> // popen to call exiftool |
14 | | |
15 | | // ***************************************************************************** |
16 | | // class member definitions |
17 | | namespace Exiv2::Internal { |
18 | | // -- Standard Minolta Makernotes tags --------------------------------------------------------------- |
19 | | |
20 | | //! Lookup table to translate Minolta Std (tag 0x0115) white balance values to readable labels |
21 | | constexpr TagDetails minoltaWhiteBalanceStd0x0115[] = { |
22 | | {0x00, N_("Auto")}, {0x01, N_("Color Temperature/Color Filter")}, |
23 | | {0x10, N_("Daylight")}, {0x20, N_("Cloudy")}, |
24 | | {0x30, N_("Shade")}, {0x40, N_("Tungsten")}, |
25 | | {0x50, N_("Flash")}, {0x60, N_("Fluorescent")}, |
26 | | {0x70, N_("Custom")}, |
27 | | }; |
28 | | |
29 | | //! Lookup table to translate Minolta color mode values to readable labels |
30 | | constexpr TagDetails minoltaColorMode[] = { |
31 | | {0, N_("Natural Color")}, {1, N_("Black & White")}, {2, N_("Vivid Color")}, {3, N_("Solarization")}, |
32 | | {4, N_("AdobeRGB")}, {5, N_("Sepia")}, {9, N_("Natural")}, {12, N_("Portrait")}, |
33 | | {13, N_("Natural sRGB")}, {14, N_("Natural+ sRGB")}, {15, N_("Landscape")}, {16, N_("Evening")}, |
34 | | {17, N_("Night Scene")}, {18, N_("Night Portrait")}, |
35 | | }; |
36 | | |
37 | | //! Lookup table to translate Minolta image quality values to readable labels |
38 | | constexpr TagDetails minoltaImageQuality[] = { |
39 | | {0, N_("Raw")}, {1, N_("Super Fine")}, {2, N_("Fine")}, |
40 | | {3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra Fine")}, |
41 | | }; |
42 | | |
43 | | //! Lookup table to translate Minolta image stabilization values |
44 | | constexpr TagDetails minoltaImageStabilization[] = { |
45 | | {1, N_("Off")}, |
46 | | {5, N_("On")}, |
47 | | }; |
48 | | |
49 | | // Minolta Tag Info |
50 | | constexpr TagInfo MinoltaMakerNote::tagInfo_[] = { |
51 | | {0x0000, "Version", N_("Makernote Version"), N_("String 'MLT0' (not null terminated)"), IfdId::minoltaId, |
52 | | SectionId::makerTags, undefined, -1, printValue}, |
53 | | {0x0001, "CameraSettingsStdOld", N_("Camera Settings (Std Old)"), |
54 | | N_("Standard Camera settings (Old Camera models like D5, D7, S304, and S404)"), IfdId::minoltaId, |
55 | | SectionId::makerTags, undefined, -1, printValue}, |
56 | | {0x0003, "CameraSettingsStdNew", N_("Camera Settings (Std New)"), |
57 | | N_("Standard Camera settings (New Camera Models like D7u, D7i, and D7hi)"), IfdId::minoltaId, SectionId::makerTags, |
58 | | undefined, -1, printValue}, |
59 | | {0x0004, "CameraSettings7D", N_("Camera Settings (7D)"), N_("Camera Settings (for Dynax 7D model)"), |
60 | | IfdId::minoltaId, SectionId::makerTags, undefined, -1, printValue}, |
61 | | {0x0018, "ImageStabilizationData", N_("Image Stabilization Data"), N_("Image stabilization data"), IfdId::minoltaId, |
62 | | SectionId::makerTags, undefined, -1, printValue}, |
63 | | |
64 | | // TODO: Implement WB Info A100 tags decoding. |
65 | | {0x0020, "WBInfoA100", N_("WB Info A100"), N_("White balance information for the Sony DSLR-A100"), IfdId::minoltaId, |
66 | | SectionId::makerTags, undefined, -1, printValue}, |
67 | | |
68 | | {0x0040, "CompressedImageSize", N_("Compressed Image Size"), N_("Compressed image size"), IfdId::minoltaId, |
69 | | SectionId::makerTags, unsignedLong, -1, printValue}, |
70 | | {0x0081, "Thumbnail", N_("Thumbnail"), N_("Jpeg thumbnail 640x480 pixels"), IfdId::minoltaId, SectionId::makerTags, |
71 | | undefined, -1, printValue}, |
72 | | {0x0088, "ThumbnailOffset", N_("Thumbnail Offset"), N_("Offset of the thumbnail"), IfdId::minoltaId, |
73 | | SectionId::makerTags, unsignedLong, -1, printValue}, |
74 | | {0x0089, "ThumbnailLength", N_("Thumbnail Length"), N_("Size of the thumbnail"), IfdId::minoltaId, |
75 | | SectionId::makerTags, unsignedLong, -1, printValue}, |
76 | | {0x0100, "SceneMode", N_("Scene Mode"), N_("Scene Mode"), IfdId::minoltaId, SectionId::makerTags, unsignedLong, -1, |
77 | | printMinoltaSonySceneMode}, |
78 | | |
79 | | // TODO: for A100, use Sony table from printMinoltaSonyColorMode(). |
80 | | {0x0101, "ColorMode", N_("Color Mode"), N_("Color mode"), IfdId::minoltaId, SectionId::makerTags, unsignedLong, -1, |
81 | | EXV_PRINT_TAG(minoltaColorMode)}, |
82 | | |
83 | | {0x0102, "Quality", N_("Image Quality"), N_("Image quality"), IfdId::minoltaId, SectionId::makerTags, unsignedLong, |
84 | | -1, EXV_PRINT_TAG(minoltaImageQuality)}, |
85 | | |
86 | | // TODO: Tag 0x0103 : quality or image size (see ExifTool doc). |
87 | | {0x0103, "0x0103", N_("0x0103"), N_("Unknown"), IfdId::minoltaId, SectionId::makerTags, unsignedLong, -1, |
88 | | printValue}, |
89 | | |
90 | | {0x0104, "FlashExposureComp", N_("Flash Exposure Compensation"), N_("Flash exposure compensation in EV"), |
91 | | IfdId::minoltaId, SectionId::makerTags, signedRational, -1, print0x9204}, |
92 | | {0x0105, "Teleconverter", N_("Teleconverter Model"), N_("Teleconverter Model"), IfdId::minoltaId, |
93 | | SectionId::makerTags, unsignedLong, -1, printMinoltaSonyTeleconverterModel}, |
94 | | {0x0107, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), IfdId::minoltaId, |
95 | | SectionId::makerTags, unsignedLong, -1, EXV_PRINT_TAG(minoltaImageStabilization)}, |
96 | | {0x0109, "RawAndJpgRecording", N_("RAW+JPG Recording"), N_("RAW and JPG files recording"), IfdId::minoltaId, |
97 | | SectionId::makerTags, unsignedLong, -1, printMinoltaSonyBoolValue}, |
98 | | {0x010a, "ZoneMatching", N_("Zone Matching"), N_("Zone matching"), IfdId::minoltaId, SectionId::makerTags, |
99 | | unsignedLong, -1, printMinoltaSonyZoneMatching}, |
100 | | {0x010b, "ColorTemperature", N_("Color Temperature"), N_("Color temperature"), IfdId::minoltaId, |
101 | | SectionId::makerTags, unsignedLong, -1, printValue}, |
102 | | {0x010c, "LensID", N_("Lens ID"), N_("Lens identifier"), IfdId::minoltaId, SectionId::makerTags, unsignedLong, -1, |
103 | | printMinoltaSonyLensID}, |
104 | | {0x0111, "ColorCompensationFilter", N_("Color Compensation Filter"), |
105 | | N_("Color Compensation Filter: negative is green, positive is magenta"), IfdId::minoltaId, SectionId::makerTags, |
106 | | unsignedLong, -1, printValue}, |
107 | | {0x0112, "WhiteBalanceFineTune", N_("White Balance Fine Tune"), N_("White Balance Fine Tune Value"), |
108 | | IfdId::minoltaId, SectionId::makerTags, unsignedLong, -1, printValue}, |
109 | | {0x0113, "ImageStabilizationA100", N_("Image Stabilization A100"), N_("Image Stabilization for the Sony DSLR-A100"), |
110 | | IfdId::minoltaId, SectionId::makerTags, unsignedLong, -1, printMinoltaSonyBoolValue}, |
111 | | |
112 | | // TODO: implement CameraSettingsA100 tags decoding. |
113 | | {0x0114, "CameraSettings5D", N_("Camera Settings (5D)"), N_("Camera Settings (for Dynax 5D model)"), |
114 | | IfdId::minoltaId, SectionId::makerTags, undefined, -1, printValue}, |
115 | | |
116 | | {0x0115, "WhiteBalance", N_("White Balance"), N_("White balance"), IfdId::minoltaId, SectionId::makerTags, |
117 | | unsignedLong, -1, EXV_PRINT_TAG(minoltaWhiteBalanceStd0x0115)}, |
118 | | {0x0e00, "PrintIM", N_("Print IM"), N_("PrintIM information"), IfdId::minoltaId, SectionId::makerTags, undefined, |
119 | | -1, printValue}, |
120 | | {0x0f00, "CameraSettingsZ1", N_("Camera Settings (Z1)"), N_("Camera Settings (for Z1, DImage X, and F100 models)"), |
121 | | IfdId::minoltaId, SectionId::makerTags, undefined, -1, printValue}, |
122 | | // End of list marker |
123 | | {0xffff, "(UnknownMinoltaMakerNoteTag)", "(UnknownMinoltaMakerNoteTag)", N_("Unknown Minolta MakerNote tag"), |
124 | | IfdId::minoltaId, SectionId::makerTags, asciiString, -1, printValue}, |
125 | | }; |
126 | | |
127 | | // -- Standard Minolta camera settings --------------------------------------------------------------- |
128 | | |
129 | | //! Lookup table to translate Minolta Std camera settings exposure mode values to readable labels |
130 | | constexpr TagDetails minoltaExposureModeStd[] = { |
131 | | {0, N_("Program")}, |
132 | | {1, N_("Aperture priority")}, |
133 | | {2, N_("Shutter priority")}, |
134 | | {3, N_("Manual")}, |
135 | | }; |
136 | | |
137 | | //! Lookup table to translate Minolta Std camera settings flash mode values to readable labels |
138 | | constexpr TagDetails minoltaFlashModeStd[] = { |
139 | | {0, N_("Fill flash")}, {1, N_("Red-eye reduction")}, {2, N_("Rear flash sync")}, {3, N_("Wireless")}, |
140 | | {4, N_("Off")}, |
141 | | }; |
142 | | |
143 | | //! Lookup table to translate Minolta Std camera settings white balance values to readable labels |
144 | | constexpr TagDetails minoltaWhiteBalanceStd[] = { |
145 | | {0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Tungsten")}, {5, N_("Custom")}, |
146 | | {7, N_("Fluorescent")}, {8, N_("Fluorescent 2")}, {11, N_("Custom 2")}, {12, N_("Custom 3")}, |
147 | | }; |
148 | | |
149 | | //! Lookup table to translate Minolta Std camera settings image size values to readable labels |
150 | | constexpr TagDetails minoltaImageSizeStd[] = { |
151 | | {0, N_("Full size")}, {1, "1600x1200"}, {2, "1280x960"}, {3, "640x480"}, |
152 | | {6, "2080x1560"}, {7, "2560x1920"}, {8, "3264x2176"}, |
153 | | }; |
154 | | |
155 | | //! Lookup table to translate Minolta Std camera settings image quality values to readable labels |
156 | | constexpr TagDetails minoltaImageQualityStd[] = { |
157 | | {0, N_("Raw")}, {1, N_("Super fine")}, {2, N_("Fine")}, |
158 | | {3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra fine")}, |
159 | | }; |
160 | | |
161 | | //! Lookup table to translate Minolta Std camera settings drive mode values to readable labels |
162 | | constexpr TagDetails minoltaDriveModeStd[] = { |
163 | | {0, N_("Single Frame")}, {1, N_("Continuous")}, {2, N_("Self-timer")}, {4, N_("Bracketing")}, |
164 | | {5, N_("Interval")}, {6, N_("UHS continuous")}, {7, N_("HS continuous")}, |
165 | | }; |
166 | | |
167 | | //! Lookup table to translate Minolta Std camera settings metering mode values to readable labels |
168 | | constexpr TagDetails minoltaMeteringModeStd[] = { |
169 | | {0, N_("Multi-segment")}, |
170 | | {1, N_("Center weighted average")}, |
171 | | {2, N_("Spot")}, |
172 | | }; |
173 | | |
174 | | //! Lookup table to translate Minolta Std camera settings digital zoom values to readable labels |
175 | | constexpr TagDetails minoltaDigitalZoomStd[] = { |
176 | | {0, N_("Off")}, |
177 | | {1, N_("Electronic magnification")}, |
178 | | {2, "2x"}, |
179 | | }; |
180 | | |
181 | | //! Lookup table to translate Minolta Std camera bracket step mode values to readable labels |
182 | | constexpr TagDetails minoltaBracketStepStd[] = { |
183 | | {0, "1/3 EV"}, |
184 | | {1, "2/3 EV"}, |
185 | | {2, "1 EV"}, |
186 | | }; |
187 | | |
188 | | //! Lookup table to translate Minolta Std camera settings AF points values to readable labels |
189 | | [[maybe_unused]] constexpr TagDetails minoltaAFPointsStd[] = { |
190 | | {0, N_("Center")}, {1, N_("Top")}, {2, N_("Top-right")}, {3, N_("Right")}, {4, N_("Bottom-right")}, |
191 | | {5, N_("Bottom")}, {6, N_("Bottom-left")}, {7, N_("Left")}, {8, N_("Top-left")}, |
192 | | }; |
193 | | |
194 | | //! Lookup table to translate Minolta Std camera settings flash fired values to readable labels |
195 | | constexpr TagDetails minoltaFlashFired[] = { |
196 | | {0, N_("Did not fire")}, |
197 | | {1, N_("Fired")}, |
198 | | }; |
199 | | |
200 | | //! Lookup table to translate Minolta Std camera settings sharpness values to readable labels |
201 | | constexpr TagDetails minoltaSharpnessStd[] = { |
202 | | {0, N_("Hard")}, |
203 | | {1, N_("Normal")}, |
204 | | {2, N_("Soft")}, |
205 | | }; |
206 | | |
207 | | //! Lookup table to translate Minolta Std camera settings subject program values to readable labels |
208 | | constexpr TagDetails minoltaSubjectProgramStd[] = { |
209 | | {0, N_("None")}, {1, N_("Portrait")}, {2, N_("Text")}, |
210 | | {3, N_("Night portrait")}, {4, N_("Sunset")}, {5, N_("Sports action")}, |
211 | | }; |
212 | | |
213 | | //! Lookup table to translate Minolta Std camera settings ISO settings values to readable labels |
214 | | constexpr TagDetails minoltaISOSettingStd[] = { |
215 | | {0, "100"}, {1, "200"}, {2, "400"}, {3, "800"}, {4, N_("Auto")}, {5, "64"}, |
216 | | }; |
217 | | |
218 | | //! Lookup table to translate Minolta Std camera settings model values to readable labels |
219 | | constexpr TagDetails minoltaModelStd[] = { |
220 | | {0, "DiMAGE 7 | X1 | X21 | X31"}, |
221 | | {1, "DiMAGE 5"}, |
222 | | {2, "DiMAGE S304"}, |
223 | | {3, "DiMAGE S404"}, |
224 | | {4, "DiMAGE 7i"}, |
225 | | {5, "DiMAGE 7Hi"}, |
226 | | {6, "DiMAGE A1"}, |
227 | | {7, "DiMAGE A2 | S414"}, |
228 | | }; |
229 | | |
230 | | //! Lookup table to translate Minolta Std camera settings interval mode values to readable labels |
231 | | constexpr TagDetails minoltaIntervalModeStd[] = { |
232 | | {0, N_("Still image")}, |
233 | | {1, N_("Time-lapse movie")}, |
234 | | }; |
235 | | |
236 | | //! Lookup table to translate Minolta Std camera settings folder name values to readable labels |
237 | | constexpr TagDetails minoltaFolderNameStd[] = { |
238 | | {0, N_("Standard form")}, |
239 | | {1, N_("Data form")}, |
240 | | }; |
241 | | |
242 | | //! Lookup table to translate Minolta Std camera settings color mode values to readable labels |
243 | | constexpr TagDetails minoltaColorModeStd[] = { |
244 | | {0, N_("Natural color")}, {1, N_("Black and white")}, {2, N_("Vivid color")}, |
245 | | {3, N_("Solarization")}, {4, N_("Adobe RGB")}, |
246 | | }; |
247 | | |
248 | | //! Lookup table to translate Minolta Std camera settings wide focus zone values to readable labels |
249 | | constexpr TagDetails minoltaWideFocusZoneStd[] = { |
250 | | {0, N_("No zone")}, |
251 | | {1, N_("Center zone (horizontal orientation)")}, |
252 | | {1, N_("Center zone (vertical orientation)")}, |
253 | | {1, N_("Left zone")}, |
254 | | {4, N_("Right zone")}, |
255 | | }; |
256 | | |
257 | | //! Lookup table to translate Minolta Std camera settings focus mode values to readable labels |
258 | | constexpr TagDetails minoltaFocusModeStd[] = { |
259 | | {0, N_("Auto focus")}, |
260 | | {1, N_("Manual focus")}, |
261 | | }; |
262 | | |
263 | | //! Lookup table to translate Minolta Std camera settings focus area values to readable labels |
264 | | constexpr TagDetails minoltaFocusAreaStd[] = { |
265 | | {0, N_("Wide focus (normal)")}, |
266 | | {1, N_("Spot focus")}, |
267 | | }; |
268 | | |
269 | | //! Lookup table to translate Minolta Std camera settings DEC switch position values to readable labels |
270 | | constexpr TagDetails minoltaDECPositionStd[] = { |
271 | | {0, N_("Exposure")}, |
272 | | {1, N_("Contrast")}, |
273 | | {2, N_("Saturation")}, |
274 | | {3, N_("Filter")}, |
275 | | }; |
276 | | |
277 | | //! Lookup table to translate Minolta Std camera settings color profile values to readable labels |
278 | | constexpr TagDetails minoltaColorProfileStd[] = { |
279 | | {0, N_("Not embedded")}, |
280 | | {1, N_("Embedded")}, |
281 | | }; |
282 | | |
283 | | //! Lookup table to translate Minolta Std camera settings data Imprint values to readable labels |
284 | | constexpr TagDetails minoltaDataImprintStd[] = { |
285 | | {0, N_("None")}, {1, "YYYY/MM/DD"}, {2, "MM/DD/HH:MM"}, {3, N_("Text")}, {4, N_("Text + ID#")}, |
286 | | }; |
287 | | |
288 | | //! Lookup table to translate Minolta Std camera settings flash metering values to readable labels |
289 | | constexpr TagDetails minoltaFlashMeteringStd[] = { |
290 | | {0, N_("ADI (Advanced Distance Integration)")}, |
291 | | {1, N_("Pre-flash TTl")}, |
292 | | {2, N_("Manual flash control")}, |
293 | | }; |
294 | | |
295 | 888 | std::ostream& MinoltaMakerNote::printMinoltaExposureSpeedStd(std::ostream& os, const Value& value, const ExifData*) { |
296 | | // From the PHP JPEG Metadata Toolkit |
297 | 888 | os << (value.toInt64() / 8) - 1; |
298 | 888 | return os; |
299 | 888 | } |
300 | | |
301 | 888 | std::ostream& MinoltaMakerNote::printMinoltaExposureTimeStd(std::ostream& os, const Value& value, const ExifData*) { |
302 | | // From the PHP JPEG Metadata Toolkit |
303 | 888 | os << (value.toInt64() / 8) - 6; |
304 | 888 | return os; |
305 | 888 | } |
306 | | |
307 | 852 | std::ostream& MinoltaMakerNote::printMinoltaFNumberStd(std::ostream& os, const Value& value, const ExifData*) { |
308 | | // From the PHP JPEG Metadata Toolkit |
309 | 852 | os << (value.toInt64() / 8) - 1; |
310 | 852 | return os; |
311 | 852 | } |
312 | | |
313 | | std::ostream& MinoltaMakerNote::printMinoltaExposureCompensationStd(std::ostream& os, const Value& value, |
314 | 844 | const ExifData*) { |
315 | | // From the PHP JPEG Metadata Toolkit |
316 | 844 | os << value.toInt64() / 256; |
317 | 844 | return os; |
318 | 844 | } |
319 | | |
320 | 840 | std::ostream& MinoltaMakerNote::printMinoltaFocalLengthStd(std::ostream& os, const Value& value, const ExifData*) { |
321 | | // From the PHP JPEG Metadata Toolkit |
322 | 840 | os << (value.toInt64() / 3) - 2; |
323 | 840 | return os; |
324 | 840 | } |
325 | | |
326 | 838 | std::ostream& MinoltaMakerNote::printMinoltaDateStd(std::ostream& os, const Value& value, const ExifData*) { |
327 | | // From the PHP JPEG Metadata Toolkit |
328 | 838 | auto val = value.toInt64(); |
329 | 838 | os << stringFormat("{}:{:02}:{:02}", val / 65536, (val % 65536) / 256, val % 256); |
330 | 838 | return os; |
331 | 838 | } |
332 | | |
333 | 804 | std::ostream& MinoltaMakerNote::printMinoltaTimeStd(std::ostream& os, const Value& value, const ExifData*) { |
334 | | // From the PHP JPEG Metadata Toolkit |
335 | 804 | auto val = value.toInt64(); |
336 | 804 | os << stringFormat("{:02}:{:02}:{:02}", val / 65536, (val % 65536) / 256, val % 256); |
337 | 804 | return os; |
338 | 804 | } |
339 | | |
340 | | std::ostream& MinoltaMakerNote::printMinoltaFlashExposureCompStd(std::ostream& os, const Value& value, |
341 | 794 | const ExifData*) { |
342 | | // From the PHP JPEG Metadata Toolkit |
343 | 794 | os << (value.toInt64() - 6) / 3; |
344 | 794 | return os; |
345 | 794 | } |
346 | | |
347 | 2.39k | std::ostream& MinoltaMakerNote::printMinoltaWhiteBalanceStd(std::ostream& os, const Value& value, const ExifData*) { |
348 | | // From the PHP JPEG Metadata Toolkit |
349 | 2.39k | os << value.toInt64() / 256; |
350 | 2.39k | return os; |
351 | 2.39k | } |
352 | | |
353 | 784 | std::ostream& MinoltaMakerNote::printMinoltaBrightnessStd(std::ostream& os, const Value& value, const ExifData*) { |
354 | | // From the PHP JPEG Metadata Toolkit |
355 | 784 | os << (value.toInt64() / 8) - 6; |
356 | 784 | return os; |
357 | 784 | } |
358 | | |
359 | | // Minolta Standard Camera Settings Tag Info (Old and New) |
360 | | constexpr TagInfo MinoltaMakerNote::tagInfoCsStd_[] = { |
361 | | {0x0001, "ExposureMode", N_("Exposure Mode"), N_("Exposure mode"), IfdId::minoltaCsNewId, SectionId::makerTags, |
362 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaExposureModeStd)}, |
363 | | {0x0002, "FlashMode", N_("Flash Mode"), N_("Flash mode"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, |
364 | | 1, EXV_PRINT_TAG(minoltaFlashModeStd)}, |
365 | | {0x0003, "WhiteBalance", N_("White Balance"), N_("White balance"), IfdId::minoltaCsNewId, SectionId::makerTags, |
366 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaWhiteBalanceStd)}, |
367 | | {0x0004, "ImageSize", N_("Image Size"), N_("Image size"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, |
368 | | 1, EXV_PRINT_TAG(minoltaImageSizeStd)}, |
369 | | {0x0005, "Quality", N_("Image Quality"), N_("Image quality"), IfdId::minoltaCsNewId, SectionId::makerTags, |
370 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaImageQualityStd)}, |
371 | | {0x0006, "DriveMode", N_("Drive Mode"), N_("Drive mode"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, |
372 | | 1, EXV_PRINT_TAG(minoltaDriveModeStd)}, |
373 | | {0x0007, "MeteringMode", N_("Metering Mode"), N_("Metering mode"), IfdId::minoltaCsNewId, SectionId::makerTags, |
374 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaMeteringModeStd)}, |
375 | | {0x0008, "ISO", N_("ISO"), N_("ISO Value"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, 1, |
376 | | printMinoltaExposureSpeedStd}, |
377 | | {0x0009, "ExposureTime", N_("Exposure Time"), N_("Exposure time"), IfdId::minoltaCsNewId, SectionId::makerTags, |
378 | | unsignedLong, 1, printMinoltaExposureTimeStd}, |
379 | | {0x000A, "FNumber", N_("FNumber"), N_("The F-Number"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, 1, |
380 | | printMinoltaFNumberStd}, |
381 | | {0x000B, "MacroMode", N_("Macro Mode"), N_("Macro mode"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, |
382 | | 1, printMinoltaSonyBoolValue}, |
383 | | {0x000C, "DigitalZoom", N_("Digital Zoom"), N_("Digital zoom"), IfdId::minoltaCsNewId, SectionId::makerTags, |
384 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaDigitalZoomStd)}, |
385 | | {0x000D, "ExposureCompensation", N_("Exposure Compensation"), N_("Exposure compensation"), IfdId::minoltaCsNewId, |
386 | | SectionId::makerTags, unsignedLong, 1, printMinoltaExposureCompensationStd}, |
387 | | {0x000E, "BracketStep", N_("Bracket Step"), N_("Bracket step"), IfdId::minoltaCsNewId, SectionId::makerTags, |
388 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaBracketStepStd)}, |
389 | | {0x0010, "IntervalLength", N_("Interval Length"), N_("Interval length"), IfdId::minoltaCsNewId, |
390 | | SectionId::makerTags, unsignedLong, 1, printValue}, |
391 | | {0x0011, "IntervalNumber", N_("Interval Number"), N_("Interval number"), IfdId::minoltaCsNewId, |
392 | | SectionId::makerTags, unsignedLong, 1, printValue}, |
393 | | {0x0012, "FocalLength", N_("Focal Length"), N_("Focal length"), IfdId::minoltaCsNewId, SectionId::makerTags, |
394 | | unsignedLong, 1, printMinoltaFocalLengthStd}, |
395 | | {0x0013, "FocusDistance", N_("Focus Distance"), N_("Focus distance"), IfdId::minoltaCsNewId, SectionId::makerTags, |
396 | | unsignedLong, 1, printValue}, |
397 | | {0x0014, "FlashFired", N_("Flash Fired"), N_("Flash fired"), IfdId::minoltaCsNewId, SectionId::makerTags, |
398 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashFired)}, |
399 | | {0x0015, "MinoltaDate", N_("Minolta Date"), N_("Minolta date"), IfdId::minoltaCsNewId, SectionId::makerTags, |
400 | | unsignedLong, 1, printMinoltaDateStd}, |
401 | | {0x0016, "MinoltaTime", N_("Minolta Time"), N_("Minolta time"), IfdId::minoltaCsNewId, SectionId::makerTags, |
402 | | unsignedLong, 1, printMinoltaTimeStd}, |
403 | | {0x0017, "MaxAperture", N_("Max Aperture"), N_("Max aperture"), IfdId::minoltaCsNewId, SectionId::makerTags, |
404 | | unsignedLong, 1, printValue}, |
405 | | {0x001A, "FileNumberMemory", N_("File Number Memory"), N_("File number memory"), IfdId::minoltaCsNewId, |
406 | | SectionId::makerTags, unsignedLong, 1, printMinoltaSonyBoolValue}, |
407 | | {0x001B, "LastFileNumber", N_("Last Image Number"), N_("Last image number"), IfdId::minoltaCsNewId, |
408 | | SectionId::makerTags, unsignedLong, 1, printValue}, |
409 | | {0x001C, "ColorBalanceRed", N_("Color Balance Red"), N_("Color balance red"), IfdId::minoltaCsNewId, |
410 | | SectionId::makerTags, unsignedLong, 1, printMinoltaWhiteBalanceStd}, |
411 | | {0x001D, "ColorBalanceGreen", N_("Color Balance Green"), N_("Color balance green"), IfdId::minoltaCsNewId, |
412 | | SectionId::makerTags, unsignedLong, 1, printMinoltaWhiteBalanceStd}, |
413 | | {0x001E, "ColorBalanceBlue", N_("Color Balance Blue"), N_("Color balance blue"), IfdId::minoltaCsNewId, |
414 | | SectionId::makerTags, unsignedLong, 1, printMinoltaWhiteBalanceStd}, |
415 | | {0x001F, "Saturation", N_("Saturation"), N_("Saturation"), IfdId::minoltaCsNewId, SectionId::makerTags, |
416 | | unsignedLong, 1, printValue}, |
417 | | {0x0020, "Contrast", N_("Contrast"), N_("Contrast"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, 1, |
418 | | printValue}, |
419 | | {0x0021, "Sharpness", N_("Sharpness"), N_("Sharpness"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, |
420 | | 1, EXV_PRINT_TAG(minoltaSharpnessStd)}, |
421 | | {0x0022, "SubjectProgram", N_("Subject Program"), N_("Subject program"), IfdId::minoltaCsNewId, |
422 | | SectionId::makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaSubjectProgramStd)}, |
423 | | {0x0023, "FlashExposureComp", N_("Flash Exposure Compensation"), N_("Flash exposure compensation in EV"), |
424 | | IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, 1, printMinoltaFlashExposureCompStd}, |
425 | | {0x0024, "ISOSetting", N_("ISO Settings"), N_("ISO setting"), IfdId::minoltaCsNewId, SectionId::makerTags, |
426 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaISOSettingStd)}, |
427 | | {0x0025, "MinoltaModel", N_("Minolta Model"), N_("Minolta model"), IfdId::minoltaCsNewId, SectionId::makerTags, |
428 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaModelStd)}, |
429 | | {0x0026, "IntervalMode", N_("Interval Mode"), N_("Interval mode"), IfdId::minoltaCsNewId, SectionId::makerTags, |
430 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaIntervalModeStd)}, |
431 | | {0x0027, "FolderName", N_("Folder Name"), N_("Folder name"), IfdId::minoltaCsNewId, SectionId::makerTags, |
432 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaFolderNameStd)}, |
433 | | {0x0028, "ColorMode", N_("ColorMode"), N_("ColorMode"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, |
434 | | 1, EXV_PRINT_TAG(minoltaColorModeStd)}, |
435 | | {0x0029, "ColorFilter", N_("Color Filter"), N_("Color filter"), IfdId::minoltaCsNewId, SectionId::makerTags, |
436 | | unsignedLong, 1, printValue}, |
437 | | {0x002A, "BWFilter", N_("Black and White Filter"), N_("Black and white filter"), IfdId::minoltaCsNewId, |
438 | | SectionId::makerTags, unsignedLong, 1, printValue}, |
439 | | {0x002B, "Internal Flash", N_("Internal Flash"), N_("Internal Flash"), IfdId::minoltaCsNewId, SectionId::makerTags, |
440 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashFired)}, |
441 | | {0x002C, "Brightness", N_("Brightness"), N_("Brightness"), IfdId::minoltaCsNewId, SectionId::makerTags, |
442 | | unsignedLong, 1, printMinoltaBrightnessStd}, |
443 | | {0x002D, "SpotFocusPointX", N_("Spot Focus Point X"), N_("Spot focus point X"), IfdId::minoltaCsNewId, |
444 | | SectionId::makerTags, unsignedLong, 1, printValue}, |
445 | | {0x002E, "SpotFocusPointY", N_("Spot Focus Point Y"), N_("Spot focus point Y"), IfdId::minoltaCsNewId, |
446 | | SectionId::makerTags, unsignedLong, 1, printValue}, |
447 | | {0x002F, "WideFocusZone", N_("Wide Focus Zone"), N_("Wide focus zone"), IfdId::minoltaCsNewId, SectionId::makerTags, |
448 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaWideFocusZoneStd)}, |
449 | | {0x0030, "FocusMode", N_("Focus Mode"), N_("Focus mode"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, |
450 | | 1, EXV_PRINT_TAG(minoltaFocusModeStd)}, |
451 | | {0x0031, "FocusArea", N_("Focus area"), N_("Focus area"), IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, |
452 | | 1, EXV_PRINT_TAG(minoltaFocusAreaStd)}, |
453 | | {0x0032, "DECPosition", N_("DEC Switch Position"), N_("DEC switch position"), IfdId::minoltaCsNewId, |
454 | | SectionId::makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaDECPositionStd)}, |
455 | | {0x0033, "ColorProfile", N_("Color Profile"), N_("Color profile"), IfdId::minoltaCsNewId, SectionId::makerTags, |
456 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaColorProfileStd)}, |
457 | | {0x0034, "DataImprint", N_("Data Imprint"), N_("Data Imprint"), IfdId::minoltaCsNewId, SectionId::makerTags, |
458 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaDataImprintStd)}, |
459 | | {0x003F, "FlashMetering", N_("Flash Metering"), N_("Flash metering"), IfdId::minoltaCsNewId, SectionId::makerTags, |
460 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashMeteringStd)}, |
461 | | // End of list marker |
462 | | {0xffff, "(UnknownMinoltaCsStdTag)", "(UnknownMinoltaCsStdTag)", N_("Unknown Minolta Camera Settings tag"), |
463 | | IfdId::minoltaCsNewId, SectionId::makerTags, unsignedLong, 1, printValue}, |
464 | | }; |
465 | | |
466 | | // -- Minolta Dynax 7D camera settings --------------------------------------------------------------- |
467 | | |
468 | | //! Lookup table to translate Minolta Dynax 7D camera settings exposure mode values to readable labels |
469 | | constexpr TagDetails minoltaExposureMode7D[] = { |
470 | | {0, N_("Program")}, {1, N_("Aperture priority")}, {2, N_("Shutter priority")}, {3, N_("Manual")}, |
471 | | {4, N_("Auto")}, {5, N_("Program-shift A")}, {6, N_("Program-shift S")}, |
472 | | }; |
473 | | |
474 | | //! Lookup table to translate Minolta Dynax 7D camera settings image size values to readable labels |
475 | | constexpr TagDetails minoltaImageSize7D[] = { |
476 | | {0, N_("Large")}, |
477 | | {1, N_("Medium")}, |
478 | | {2, N_("Small")}, |
479 | | }; |
480 | | |
481 | | //! Lookup table to translate Minolta Dynax 7D camera settings image quality values to readable labels |
482 | | constexpr TagDetails minoltaImageQuality7D[] = { |
483 | | {0, N_("Raw")}, {16, N_("Fine")}, {32, N_("Normal")}, {34, N_("Raw+Jpeg")}, {48, N_("Economy")}, |
484 | | }; |
485 | | |
486 | | //! Lookup table to translate Minolta Dynax 7D camera settings white balance values to readable labels |
487 | | constexpr TagDetails minoltaWhiteBalance7D[] = { |
488 | | {0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Shade")}, {3, N_("Cloudy")}, |
489 | | {4, N_("Tungsten")}, {5, N_("Fluorescent")}, {256, N_("Kelvin")}, {512, N_("Manual")}, |
490 | | }; |
491 | | |
492 | | //! Lookup table to translate Minolta Dynax 7D camera settings focus mode values to readable labels |
493 | | constexpr TagDetails minoltaFocusMode7D[] = { |
494 | | {0, N_("Single-shot AF")}, |
495 | | {1, N_("Continuous AF")}, |
496 | | {3, N_("Manual")}, |
497 | | {4, N_("Automatic AF")}, |
498 | | }; |
499 | | |
500 | | //! Lookup table to translate Minolta Dynax 7D camera settings AF points values to readable labels |
501 | | constexpr TagDetails minoltaAFPoints7D[] = { |
502 | | {1, N_("Center")}, {2, N_("Top")}, {4, N_("Top-right")}, {8, N_("Right")}, {16, N_("Bottom-right")}, |
503 | | {32, N_("Bottom")}, {64, N_("Bottom-left")}, {128, N_("Left")}, {256, N_("Top-left")}, |
504 | | }; |
505 | | |
506 | | //! Lookup table to translate Minolta Dynax 7D camera settings ISO settings values to readable labels |
507 | | constexpr TagDetails minoltaISOSetting7D[] = { |
508 | | {0, N_("Auto")}, {1, "100"}, {3, "200"}, {4, "400"}, {5, "800"}, {6, "1600"}, {7, "3200"}, |
509 | | }; |
510 | | |
511 | | //! Lookup table to translate Minolta Dynax 7D camera settings color space values to readable labels |
512 | | constexpr TagDetails minoltaColorSpace7D[] = { |
513 | | {0, N_("sRGB (Natural)")}, |
514 | | {1, N_("sRGB (Natural+)")}, |
515 | | {4, N_("Adobe RGB")}, |
516 | | }; |
517 | | |
518 | | //! Lookup table to translate Minolta Dynax 7D camera settings rotation values to readable labels |
519 | | constexpr TagDetails minoltaRotation7D[] = { |
520 | | {72, N_("Horizontal (normal)")}, |
521 | | {76, N_("Rotate 90 CW")}, |
522 | | {82, N_("Rotate 270 CW")}, |
523 | | }; |
524 | | |
525 | | // Minolta Dynax 7D Camera Settings Tag Info |
526 | | constexpr TagInfo MinoltaMakerNote::tagInfoCs7D_[] = { |
527 | | {0x0000, "ExposureMode", N_("Exposure Mode"), N_("Exposure mode"), IfdId::minoltaCs7DId, SectionId::makerTags, |
528 | | unsignedShort, 1, EXV_PRINT_TAG(minoltaExposureMode7D)}, |
529 | | {0x0002, "ImageSize", N_("Image Size"), N_("Image size"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, |
530 | | 1, EXV_PRINT_TAG(minoltaImageSize7D)}, |
531 | | {0x0003, "Quality", N_("Image Quality"), N_("Image quality"), IfdId::minoltaCs7DId, SectionId::makerTags, |
532 | | unsignedShort, 1, EXV_PRINT_TAG(minoltaImageQuality7D)}, |
533 | | {0x0004, "WhiteBalance", N_("White Balance"), N_("White balance"), IfdId::minoltaCs7DId, SectionId::makerTags, |
534 | | unsignedShort, 1, EXV_PRINT_TAG(minoltaWhiteBalance7D)}, |
535 | | {0x000E, "FocusMode", N_("Focus Mode"), N_("Focus mode"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, |
536 | | 1, EXV_PRINT_TAG(minoltaFocusMode7D)}, |
537 | | {0x0010, "AFPoints", N_("AF Points"), N_("AF points"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, |
538 | | EXV_PRINT_TAG(minoltaAFPoints7D)}, |
539 | | {0x0015, "FlashFired", N_("Flash Fired"), N_("Flash fired"), IfdId::minoltaCs7DId, SectionId::makerTags, |
540 | | unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashFired)}, |
541 | | {0x0016, "FlashMode", N_("Flash Mode"), N_("Flash mode"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, |
542 | | 1, printValue}, |
543 | | {0x001C, "ISOSpeed", N_("ISO Speed Mode"), N_("ISO speed setting"), IfdId::minoltaCs7DId, SectionId::makerTags, |
544 | | unsignedShort, 1, EXV_PRINT_TAG(minoltaISOSetting7D)}, |
545 | | {0x001E, "ExposureCompensation", N_("Exposure Compensation"), N_("Exposure compensation"), IfdId::minoltaCs7DId, |
546 | | SectionId::makerTags, signedShort, 1, printValue}, |
547 | | {0x0025, "ColorSpace", N_("Color Space"), N_("Color space"), IfdId::minoltaCs7DId, SectionId::makerTags, |
548 | | unsignedShort, 1, EXV_PRINT_TAG(minoltaColorSpace7D)}, |
549 | | {0x0026, "Sharpness", N_("Sharpness"), N_("Sharpness"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, |
550 | | 1, printValue}, |
551 | | {0x0027, "Contrast", N_("Contrast"), N_("Contrast"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, |
552 | | printValue}, |
553 | | {0x0028, "Saturation", N_("Saturation"), N_("Saturation"), IfdId::minoltaCs7DId, SectionId::makerTags, |
554 | | unsignedShort, 1, printValue}, |
555 | | {0x002D, "FreeMemoryCardImages", N_("Free Memory Card Images"), N_("Free memory card images"), IfdId::minoltaCs7DId, |
556 | | SectionId::makerTags, unsignedShort, 1, printValue}, |
557 | | {0x003F, "ColorTemperature", N_("Color Temperature"), N_("Color temperature"), IfdId::minoltaCs7DId, |
558 | | SectionId::makerTags, signedShort, 1, printValue}, |
559 | | {0x0040, "Hue", N_("Hue"), N_("Hue"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, printValue}, |
560 | | {0x0046, "Rotation", N_("Rotation"), N_("Rotation"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, |
561 | | EXV_PRINT_TAG(minoltaRotation7D)}, |
562 | | {0x0047, "FNumber", N_("FNumber"), N_("The F-Number"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, |
563 | | printValue}, |
564 | | {0x0048, "ExposureTime", N_("Exposure Time"), N_("Exposure time"), IfdId::minoltaCs7DId, SectionId::makerTags, |
565 | | unsignedShort, 1, printValue}, |
566 | | // 0x004A is a duplicate than 0x002D. |
567 | | {0x004A, "FreeMemoryCardImages2", N_("Free Memory Card Images 2"), N_("Free memory card images 2"), |
568 | | IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, printValue}, |
569 | | {0x005E, "ImageNumber", N_("Image Number"), N_("Image number"), IfdId::minoltaCs7DId, SectionId::makerTags, |
570 | | unsignedShort, 1, printValue}, |
571 | | {0x0060, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), IfdId::minoltaCs7DId, SectionId::makerTags, |
572 | | unsignedShort, 1, printMinoltaSonyBoolValue}, |
573 | | // 0x0062 is a duplicate than 0x005E. |
574 | | {0x0062, "ImageNumber2", N_("Image Number 2"), N_("Image number 2"), IfdId::minoltaCs7DId, SectionId::makerTags, |
575 | | unsignedShort, 1, printValue}, |
576 | | {0x0071, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), IfdId::minoltaCs7DId, |
577 | | SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolValue}, |
578 | | {0x0075, "ZoneMatchingOn", N_("Zone Matching On"), N_("Zone matching on"), IfdId::minoltaCs7DId, |
579 | | SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolValue}, |
580 | | // End of list marker |
581 | | {0xffff, "(UnknownMinoltaCs7DTag)", "(UnknownMinoltaCs7DTag)", N_("Unknown Minolta Camera Settings 7D tag"), |
582 | | IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, printValue}, |
583 | | }; |
584 | | |
585 | | // -- Minolta Dynax 5D camera settings --------------------------------------------------------------- |
586 | | |
587 | | //! Lookup table to translate Minolta Dynax 5D camera settings exposure mode values to readable labels |
588 | | constexpr TagDetails minoltaExposureMode5D[] = { |
589 | | {0, N_("Program")}, |
590 | | {1, N_("Aperture priority")}, |
591 | | {2, N_("Shutter priority")}, |
592 | | {3, N_("Manual")}, |
593 | | {4, N_("Auto")}, |
594 | | {5, N_("Program Shift A")}, |
595 | | {6, N_("Program Shift S")}, |
596 | | {0x1013, N_("Portrait")}, |
597 | | {0x1023, N_("Sports")}, |
598 | | {0x1033, N_("Sunset")}, |
599 | | {0x1043, N_("Night View/Portrait")}, |
600 | | {0x1053, N_("Landscape")}, |
601 | | {0x1083, N_("Macro")}, |
602 | | }; |
603 | | |
604 | | //! Lookup table to translate Minolta Dynax 5D camera settings image size values to readable labels |
605 | | constexpr TagDetails minoltaImageSize5D[] = { |
606 | | {0, N_("Large")}, |
607 | | {1, N_("Medium")}, |
608 | | {2, N_("Small")}, |
609 | | }; |
610 | | |
611 | | //! Lookup table to translate Minolta Dynax 5D camera settings image quality values to readable labels |
612 | | constexpr TagDetails minoltaImageQuality5D[] = { |
613 | | {0, N_("Raw")}, {16, N_("Fine")}, {32, N_("Normal")}, {34, N_("Raw+Jpeg")}, {48, N_("Economy")}, |
614 | | }; |
615 | | |
616 | | //! Lookup table to translate Minolta Dynax 5D camera settings white balance values to readable labels |
617 | | constexpr TagDetails minoltaWhiteBalance5D[] = { |
618 | | {0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")}, {4, N_("Tungsten")}, |
619 | | {5, N_("Fluorescent")}, {6, N_("Flash")}, {256, N_("Kelvin")}, {512, N_("Manual")}, |
620 | | }; |
621 | | |
622 | | //! Lookup table to translate Minolta Dynax 5D camera settings metering mode values to readable labels |
623 | | constexpr TagDetails minoltaMeteringMode5D[] = { |
624 | | {0, N_("Multi-segment")}, |
625 | | {1, N_("Center weighted")}, |
626 | | {2, N_("Spot")}, |
627 | | }; |
628 | | |
629 | | //! Lookup table to translate Minolta Dynax 5D camera settings ISO settings values to readable labels |
630 | | constexpr TagDetails minoltaISOSetting5D[] = { |
631 | | {0, N_("Auto")}, |
632 | | {1, "100"}, |
633 | | {3, "200"}, |
634 | | {4, "400"}, |
635 | | {5, "800"}, |
636 | | {6, "1600"}, |
637 | | {7, "3200"}, |
638 | | {8, N_("200 (Zone Matching High)")}, |
639 | | {10, N_("80 (Zone Matching Low)")}, |
640 | | }; |
641 | | |
642 | | //! Lookup table to translate Minolta Dynax 5D camera settings color space values to readable labels |
643 | | constexpr TagDetails minoltaColorSpace5D[] = { |
644 | | {0, N_("sRGB (Natural)")}, {1, N_("sRGB (Natural+)")}, {2, N_("Monochrome")}, |
645 | | {3, N_("Adobe RGB (ICC)")}, {4, N_("Adobe RGB")}, |
646 | | }; |
647 | | |
648 | | //! Lookup table to translate Minolta Dynax 5D camera settings rotation values to readable labels |
649 | | constexpr TagDetails minoltaRotation5D[] = { |
650 | | {72, N_("Horizontal (normal)")}, |
651 | | {76, N_("Rotate 90 CW")}, |
652 | | {82, N_("Rotate 270 CW")}, |
653 | | }; |
654 | | |
655 | | //! Lookup table to translate Minolta Dynax 5D camera settings focus position values to readable labels |
656 | | constexpr TagDetails minoltaFocusPosition5D[] = { |
657 | | {0, N_("Wide")}, {1, N_("Central")}, {2, N_("Up")}, {3, N_("Up right")}, {4, N_("Right")}, |
658 | | {5, N_("Down right")}, {6, N_("Down")}, {7, N_("Down left")}, {8, N_("Left")}, {9, N_("Up left")}, |
659 | | }; |
660 | | |
661 | | //! Lookup table to translate Minolta Dynax 5D camera settings focus area values to readable labels |
662 | | constexpr TagDetails minoltaFocusArea5D[] = { |
663 | | {0, N_("Wide")}, |
664 | | {1, N_("Selection")}, |
665 | | {2, N_("Spot")}, |
666 | | }; |
667 | | |
668 | | //! Lookup table to translate Minolta Dynax 5D camera settings focus mode values to readable labels |
669 | | constexpr TagDetails minoltaAFMode5D[] = { |
670 | | {0, "AF-A"}, |
671 | | {1, "AF-S"}, |
672 | | {2, "AF-D"}, |
673 | | {3, "DMF"}, |
674 | | }; |
675 | | |
676 | | //! Lookup table to translate Minolta Dynax 5D camera settings picture finish values to readable labels |
677 | | constexpr TagDetails minoltaPictureFinish5D[] = { |
678 | | {0, N_("Natural")}, {1, N_("Natural+")}, {2, N_("Portrait")}, {3, N_("Wind Scene")}, |
679 | | {4, N_("Evening Scene")}, {5, N_("Night Scene")}, {6, N_("Night Portrait")}, {7, N_("Monochrome")}, |
680 | | {8, N_("Adobe RGB")}, {9, N_("Adobe RGB (ICC)")}, |
681 | | }; |
682 | | |
683 | | //! Method to convert Minolta Dynax 5D exposure manual bias values. |
684 | | std::ostream& MinoltaMakerNote::printMinoltaExposureManualBias5D(std::ostream& os, const Value& value, |
685 | 60 | const ExifData*) { |
686 | | // From Xavier Raynaud: the value is converted from 0:256 to -5.33:5.33 |
687 | 60 | return os << stringFormat("{:.2f}", static_cast<float>(value.toInt64() - 128) / 24); |
688 | 60 | } |
689 | | |
690 | | //! Method to convert Minolta Dynax 5D exposure compensation values. |
691 | | std::ostream& MinoltaMakerNote::printMinoltaExposureCompensation5D(std::ostream& os, const Value& value, |
692 | 90 | const ExifData*) { |
693 | 90 | return os << stringFormat("{:.2f}", static_cast<float>(value.toInt64() - 300) / 100); |
694 | 90 | } |
695 | | |
696 | | // Minolta Dynax 5D Camera Settings Tag Info |
697 | | constexpr TagInfo MinoltaMakerNote::tagInfoCs5D_[] = { |
698 | | {0x000A, "ExposureMode", N_("Exposure Mode"), N_("Exposure mode"), IfdId::minoltaCs5DId, SectionId::makerTags, |
699 | | unsignedShort, -1, EXV_PRINT_TAG(minoltaExposureMode5D)}, |
700 | | {0x000C, "ImageSize", N_("Image Size"), N_("Image size"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, |
701 | | -1, EXV_PRINT_TAG(minoltaImageSize5D)}, |
702 | | {0x000D, "Quality", N_("Image Quality"), N_("Image quality"), IfdId::minoltaCs5DId, SectionId::makerTags, |
703 | | unsignedShort, -1, EXV_PRINT_TAG(minoltaImageQuality5D)}, |
704 | | {0x000E, "WhiteBalance", N_("White Balance"), N_("White balance"), IfdId::minoltaCs5DId, SectionId::makerTags, |
705 | | unsignedShort, -1, EXV_PRINT_TAG(minoltaWhiteBalance5D)}, |
706 | | {0x001A, "FocusPosition", N_("Focus Position"), N_("Focus position"), IfdId::minoltaCs5DId, SectionId::makerTags, |
707 | | unsignedShort, -1, EXV_PRINT_TAG(minoltaFocusPosition5D)}, |
708 | | {0x001B, "FocusArea", N_("Focus Area"), N_("Focus area"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, |
709 | | -1, EXV_PRINT_TAG(minoltaFocusArea5D)}, |
710 | | {0x001F, "FlashFired", N_("Flash Fired"), N_("Flash fired"), IfdId::minoltaCs5DId, SectionId::makerTags, |
711 | | unsignedShort, -1, EXV_PRINT_TAG(minoltaFlashFired)}, |
712 | | {0x0025, "MeteringMode", N_("Metering Mode"), N_("Metering mode"), IfdId::minoltaCs5DId, SectionId::makerTags, |
713 | | unsignedShort, -1, EXV_PRINT_TAG(minoltaMeteringMode5D)}, |
714 | | {0x0026, "ISOSpeed", N_("ISO Speed Mode"), N_("ISO speed setting"), IfdId::minoltaCs5DId, SectionId::makerTags, |
715 | | unsignedShort, -1, EXV_PRINT_TAG(minoltaISOSetting5D)}, |
716 | | {0x002F, "ColorSpace", N_("Color Space"), N_("Color space"), IfdId::minoltaCs5DId, SectionId::makerTags, |
717 | | unsignedShort, -1, EXV_PRINT_TAG(minoltaColorSpace5D)}, |
718 | | {0x0030, "Sharpness", N_("Sharpness"), N_("Sharpness"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, |
719 | | -1, printValue}, |
720 | | {0x0031, "Contrast", N_("Contrast"), N_("Contrast"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, -1, |
721 | | printValue}, |
722 | | {0x0032, "Saturation", N_("Saturation"), N_("Saturation"), IfdId::minoltaCs5DId, SectionId::makerTags, |
723 | | unsignedShort, -1, printValue}, |
724 | | {0x0035, "ExposureTime", N_("Exposure Time"), N_("Exposure time"), IfdId::minoltaCs5DId, SectionId::makerTags, |
725 | | unsignedShort, -1, printValue}, |
726 | | {0x0036, "FNumber", N_("FNumber"), N_("The F-Number"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, |
727 | | -1, printValue}, |
728 | | {0x0037, "FreeMemoryCardImages", N_("Free Memory Card Images"), N_("Free memory card images"), IfdId::minoltaCs5DId, |
729 | | SectionId::makerTags, unsignedShort, -1, printValue}, |
730 | | {0x0038, "ExposureRevision", N_("Exposure Revision"), N_("Exposure revision"), IfdId::minoltaCs5DId, |
731 | | SectionId::makerTags, unsignedShort, -1, printValue}, |
732 | | {0x0048, "FocusMode", N_("Focus Mode"), N_("Focus mode"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, |
733 | | -1, EXV_PRINT_TAG(minoltaFocusModeStd)}, |
734 | | {0x0049, "ColorTemperature", N_("Color Temperature"), N_("Color temperature"), IfdId::minoltaCs5DId, |
735 | | SectionId::makerTags, signedShort, -1, printValue}, |
736 | | {0x0050, "Rotation", N_("Rotation"), N_("Rotation"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, -1, |
737 | | EXV_PRINT_TAG(minoltaRotation5D)}, |
738 | | {0x0053, "ExposureCompensation", N_("Exposure Compensation"), N_("Exposure compensation"), IfdId::minoltaCs5DId, |
739 | | SectionId::makerTags, unsignedShort, -1, printMinoltaExposureCompensation5D}, |
740 | | {0x0054, "FreeMemoryCardImages2", N_("Free Memory Card Images 2"), N_("Free memory card images 2"), |
741 | | IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, -1, printValue}, |
742 | | {0x0065, "Rotation2", N_("Rotation2"), N_("Rotation2"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, |
743 | | -1, printMinoltaSonyRotation}, |
744 | | {0x006E, "Color Temperature", N_("Color Temperature"), N_("Color Temperature"), IfdId::minoltaCs5DId, |
745 | | SectionId::makerTags, signedShort, -1, printValue}, |
746 | | {0x0071, "PictureFinish", N_("Picture Finish"), N_("Picture Finish"), IfdId::minoltaCs5DId, SectionId::makerTags, |
747 | | unsignedShort, -1, EXV_PRINT_TAG(minoltaPictureFinish5D)}, |
748 | | {0x0091, "ExposureManualBias", N_("Exposure Manual Bias"), N_("Exposure manual bias"), IfdId::minoltaCs5DId, |
749 | | SectionId::makerTags, unsignedShort, -1, printMinoltaExposureManualBias5D}, |
750 | | {0x009E, "AFMode", N_("AF Mode"), N_("AF mode"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, -1, |
751 | | EXV_PRINT_TAG(minoltaAFMode5D)}, |
752 | | {0x00AE, "ImageNumber", N_("Image Number"), N_("Image number"), IfdId::minoltaCs5DId, SectionId::makerTags, |
753 | | unsignedShort, -1, printValue}, |
754 | | {0x00B0, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), IfdId::minoltaCs5DId, SectionId::makerTags, |
755 | | unsignedShort, -1, printMinoltaSonyBoolValue}, |
756 | | {0x00BD, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), IfdId::minoltaCs5DId, |
757 | | SectionId::makerTags, unsignedShort, -1, printMinoltaSonyBoolValue}, |
758 | | |
759 | | // From Xavier Raynaud: some notes on missing tags. |
760 | | // 0x0051 seems to be identical to FNumber (0x0036). An approx. relation between Tag value |
761 | | // and Fstop is exp(-0.335+value*0.043) |
762 | | // 0x0052 seems to be identical to ExposureTime (0x0035). An approx. relation between Tag |
763 | | // value and Exposure time is exp(-4+value*0.085) |
764 | | |
765 | | // End of list marker |
766 | | {0xFFFF, "(UnknownMinoltaCs5DTag)", "(UnknownMinoltaCs5DTag)", N_("Unknown Minolta Camera Settings 5D tag"), |
767 | | IfdId::minoltaCs5DId, SectionId::makerTags, invalidTypeId, -1, printValue}, |
768 | | }; |
769 | | |
770 | | // -- Sony A100 camera settings --------------------------------------------------------------- |
771 | | |
772 | | //! Lookup table to translate Sony A100 camera settings drive mode 2 values to readable labels |
773 | | constexpr TagDetails sonyDriveMode2A100[] = { |
774 | | {0, N_("Self-timer 10 sec")}, |
775 | | {1, N_("Continuous")}, |
776 | | {4, N_("Self-timer 2 sec")}, |
777 | | {5, N_("Single Frame")}, |
778 | | {8, N_("White Balance Bracketing Low")}, |
779 | | {9, N_("White Balance Bracketing High")}, |
780 | | {770, N_("Single-frame Bracketing Low")}, |
781 | | {771, N_("Continuous Bracketing Low")}, |
782 | | {1794, N_("Single-frame Bracketing High")}, |
783 | | {1795, N_("Continuous Bracketing High")}, |
784 | | }; |
785 | | |
786 | | //! Lookup table to translate Sony A100 camera settings focus mode values to readable labels |
787 | | constexpr TagDetails sonyFocusModeA100[] = { |
788 | | {0, "AF-S"}, {1, "AF-C"}, {4, "AF-A"}, {5, "Manual"}, {6, "DMF"}, |
789 | | }; |
790 | | |
791 | | //! Lookup table to translate Sony A100 camera settings flash mode values to readable labels |
792 | | constexpr TagDetails sonyFlashModeA100[] = { |
793 | | {0, N_("Auto")}, |
794 | | {2, N_("Rear flash sync")}, |
795 | | {3, N_("Wireless")}, |
796 | | {4, N_("Fill flash")}, |
797 | | }; |
798 | | |
799 | | //! Lookup table to translate Sony A100 camera settings metering mode values to readable labels |
800 | | constexpr TagDetails sonyMeteringModeA100[] = { |
801 | | {0, N_("Multi-segment")}, |
802 | | {1, N_("Center weighted average")}, |
803 | | {2, N_("Spot")}, |
804 | | }; |
805 | | |
806 | | //! Lookup table to translate Sony A100 camera settings zone matching mode values to readable labels |
807 | | constexpr TagDetails sonyZoneMatchingModeA100[] = { |
808 | | {0, N_("Off")}, |
809 | | {1, N_("Standard")}, |
810 | | {2, N_("Advanced")}, |
811 | | }; |
812 | | |
813 | | //! Lookup table to translate Sony A100 camera settings color space values to readable labels |
814 | | |
815 | | constexpr TagDetails sonyColorSpaceA100[] = { |
816 | | {0, N_("sRGB")}, |
817 | | {5, N_("Adobe RGB")}, |
818 | | }; |
819 | | |
820 | | //! Lookup table to translate Sony A100 camera settings drive mode values to readable labels |
821 | | constexpr TagDetails sonyDriveModeA100[] = { |
822 | | {0, N_("Single Frame")}, |
823 | | {1, N_("Continuous")}, |
824 | | {2, N_("Self-timer")}, |
825 | | {3, N_("Continuous Bracketing")}, |
826 | | {4, N_("Single-Frame Bracketing")}, |
827 | | {5, N_("White Balance Bracketing")}, |
828 | | }; |
829 | | |
830 | | //! Lookup table to translate Sony A100 camera settings self timer time values to readable labels |
831 | | constexpr TagDetails sonySelfTimerTimeA100[] = { |
832 | | {0, "10s"}, |
833 | | {4, "2s"}, |
834 | | }; |
835 | | |
836 | | //! Lookup table to translate Sony A100 camera settings continuous bracketing values to readable labels |
837 | | constexpr TagDetails sonyContinuousBracketingA100[] = { |
838 | | {0x303, N_("Low")}, |
839 | | {0x703, N_("High")}, |
840 | | }; |
841 | | |
842 | | //! Lookup table to translate Sony A100 camera settings single frame bracketing values to readable labels |
843 | | constexpr TagDetails sonySingleFrameBracketingA100[] = { |
844 | | {0x302, N_("Low")}, |
845 | | {0x702, N_("High")}, |
846 | | }; |
847 | | |
848 | | //! Lookup table to translate Sony A100 camera settings white balance bracketing values to readable labels |
849 | | constexpr TagDetails sonyWhiteBalanceBracketingA100[] = { |
850 | | {0x8, N_("Low")}, |
851 | | {0x9, N_("High")}, |
852 | | }; |
853 | | |
854 | | //! Lookup table to translate Sony A100 camera settings white balance setting values to readable labels |
855 | | constexpr TagDetails sonyWhiteBalanceSettingA100[] = { |
856 | | {0x0000, N_("Auto")}, |
857 | | {0x0001, N_("Preset")}, |
858 | | {0x0002, N_("Custom")}, |
859 | | {0x0003, N_("Color Temperature/Color Filter")}, |
860 | | {0x8001, N_("Preset")}, |
861 | | {0x8002, N_("Custom")}, |
862 | | {0x8003, N_("Color Temperature/Color Filter")}, |
863 | | }; |
864 | | |
865 | | //! Lookup table to translate Sony A100 camera settings preset white balance values to readable labels |
866 | | constexpr TagDetails sonyPresetWhiteBalanceA100[] = { |
867 | | {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")}, |
868 | | {4, N_("Tungsten")}, {5, N_("Fluorescent")}, {6, N_("Flash")}, |
869 | | }; |
870 | | |
871 | | //! Lookup table to translate Sony A100 camera settings color temperature setting values to readable labels |
872 | | constexpr TagDetails sonyColorTemperatureSettingA100[] = { |
873 | | {0, N_("Temperature")}, |
874 | | {2, N_("Color Filter")}, |
875 | | }; |
876 | | |
877 | | //! Lookup table to translate Sony A100 camera settings custom WB setting values to readable labels |
878 | | constexpr TagDetails sonyCustomWBSettingA100[] = { |
879 | | {0, N_("Setup")}, |
880 | | {2, N_("Recall")}, |
881 | | }; |
882 | | |
883 | | //! Lookup table to translate Sony A100 camera settings custom WB error values to readable labels |
884 | | constexpr TagDetails sonyCustomWBErrorA100[] = { |
885 | | {0, N_("Ok")}, |
886 | | {2, N_("Error")}, |
887 | | }; |
888 | | |
889 | | //! Lookup table to translate Sony A100 camera settings image size values to readable labels |
890 | | constexpr TagDetails sonyImageSizeA100[] = { |
891 | | {0, N_("Standard")}, |
892 | | {1, N_("Medium")}, |
893 | | {2, N_("Small")}, |
894 | | }; |
895 | | |
896 | | //! Lookup table to translate Sony A100 camera settings instant playback setup values to readable labels |
897 | | constexpr TagDetails sonyInstantPlaybackSetupA100[] = { |
898 | | {0, N_("Image and Information")}, |
899 | | {1, N_("Image Only")}, |
900 | | {3, N_("Image and Histogram")}, |
901 | | }; |
902 | | |
903 | | //! Lookup table to translate Sony A100 camera settings flash default setup values to readable labels |
904 | | constexpr TagDetails sonyFlashDefaultA100[] = { |
905 | | {0, N_("Auto")}, |
906 | | {1, N_("Fill Flash")}, |
907 | | }; |
908 | | |
909 | | //! Lookup table to translate Sony A100 camera settings auto bracket order values to readable labels |
910 | | constexpr TagDetails sonyAutoBracketOrderA100[] = { |
911 | | {0, "0-+"}, |
912 | | {1, "-0+"}, |
913 | | }; |
914 | | |
915 | | //! Lookup table to translate Sony A100 camera settings focus hold button values to readable labels |
916 | | constexpr TagDetails sonyFocusHoldButtonA100[] = { |
917 | | {0, N_("Focus Hold")}, |
918 | | {1, N_("DOF Preview")}, |
919 | | }; |
920 | | |
921 | | //! Lookup table to translate Sony A100 camera settings AEL button values to readable labels |
922 | | constexpr TagDetails sonyAELButtonA100[] = { |
923 | | {0, N_("Hold")}, |
924 | | {1, N_("Toggle")}, |
925 | | {2, N_("Spot Hold")}, |
926 | | {3, N_("Spot Toggle")}, |
927 | | }; |
928 | | |
929 | | //! Lookup table to translate Sony A100 camera settings control dial set values to readable labels |
930 | | constexpr TagDetails sonyControlDialSetA100[] = { |
931 | | {0, N_("Shutter Speed")}, |
932 | | {1, N_("Aperture")}, |
933 | | }; |
934 | | |
935 | | //! Lookup table to translate Sony A100 camera settings exposure compensation mode values to readable labels |
936 | | constexpr TagDetails sonyExposureCompensationModeA100[] = { |
937 | | {0, N_("Ambient and Flash")}, |
938 | | {1, N_("Ambient Only")}, |
939 | | }; |
940 | | |
941 | | //! Lookup table to translate Sony A100 camera settings sony AF area illumination values to readable labels |
942 | | constexpr TagDetails sonyAFAreaIlluminationA100[] = { |
943 | | {0, N_("0.3 seconds")}, |
944 | | {1, N_("0.6 seconds")}, |
945 | | {2, N_("Off")}, |
946 | | }; |
947 | | |
948 | | //! Lookup table to translate Sony A100 camera settings monitor display off values to readable labels |
949 | | constexpr TagDetails sonyMonitorDisplayOffA100[] = { |
950 | | {0, N_("Automatic")}, |
951 | | {1, N_("Manual")}, |
952 | | }; |
953 | | |
954 | | //! Lookup table to translate Sony A100 camera settings record display values to readable labels |
955 | | constexpr TagDetails sonyRecordDisplayA100[] = { |
956 | | {0, N_("Auto-rotate")}, |
957 | | {1, N_("Horizontal")}, |
958 | | }; |
959 | | |
960 | | //! Lookup table to translate Sony A100 camera settings play display values to readable labels |
961 | | constexpr TagDetails sonyPlayDisplayA100[] = { |
962 | | {0, N_("Auto-rotate")}, |
963 | | {1, N_("Manual Rotate")}, |
964 | | }; |
965 | | |
966 | | //! Lookup table to translate Sony A100 camera settings metering off scale indicator values to readable labels |
967 | | constexpr TagDetails sonyMeteringOffScaleIndicatorA100[] = { |
968 | | {0, N_("Within Range")}, |
969 | | {1, N_("Under/Over Range")}, |
970 | | {255, N_("Out of Range")}, |
971 | | }; |
972 | | |
973 | | //! Lookup table to translate Sony A100 camera settings exposure indicator values to readable labels |
974 | | constexpr TagDetails sonyExposureIndicatorA100[] = { |
975 | | {0, N_("Not Indicated")}, |
976 | | {1, N_("Under Scale")}, |
977 | | {119, N_("Bottom of Scale")}, |
978 | | {120, "-2.0"}, |
979 | | {121, "-1.7"}, |
980 | | {122, "-1.5"}, |
981 | | {123, "-1.3"}, |
982 | | {124, "-1.0"}, |
983 | | {125, "-0.7"}, |
984 | | {126, "-0.5"}, |
985 | | {127, "-0.3"}, |
986 | | {128, "-0.0"}, |
987 | | {129, "+0.3"}, |
988 | | {130, "+0.5"}, |
989 | | {131, "+0.7"}, |
990 | | {132, "+1.0"}, |
991 | | {133, "+1.3"}, |
992 | | {134, "+1.5"}, |
993 | | {135, "+1.7"}, |
994 | | {136, "+2.0"}, |
995 | | {253, N_("Top of Scale")}, |
996 | | {254, N_("Over Scale")}, |
997 | | }; |
998 | | |
999 | | //! Lookup table to translate Sony A100 camera settings focus mode switch values to readable labels |
1000 | | constexpr TagDetails sonyFocusModeSwitchA100[] = { |
1001 | | {0, N_("AM")}, |
1002 | | {1, N_("MF")}, |
1003 | | }; |
1004 | | |
1005 | | //! Lookup table to translate Sony A100 camera settings flash type switch values to readable labels |
1006 | | constexpr TagDetails sonyFlashTypeA100[] = { |
1007 | | {0, N_("Off")}, |
1008 | | {1, N_("Built-in")}, |
1009 | | {2, N_("External")}, |
1010 | | }; |
1011 | | |
1012 | | //! Lookup table to translate Sony A100 camera settings battery level switch values to readable labels |
1013 | | constexpr TagDetails sonyBatteryLevelA100[] = { |
1014 | | {3, N_("Very Low")}, |
1015 | | {4, N_("Low")}, |
1016 | | {5, N_("Half Full")}, |
1017 | | {6, N_("Sufficient Power Remaining")}, |
1018 | | }; |
1019 | | |
1020 | | // Sony A100 Camera Settings Tag Info |
1021 | | constexpr TagInfo MinoltaMakerNote::tagInfoCsA100_[] = { |
1022 | | {0x0000, "ExposureMode", N_("Exposure Mode"), N_("Exposure mode"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1023 | | unsignedShort, 1, EXV_PRINT_TAG(minoltaExposureMode5D)}, |
1024 | | {0x0001, "ExposureCompensationSetting", N_("Exposure Compensation Setting"), N_("Exposure compensation setting"), |
1025 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, printValue}, |
1026 | | {0x0005, "HighSpeedSync", N_("High Speed Sync"), N_("High speed sync"), IfdId::sony1MltCsA100Id, |
1027 | | SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolValue}, |
1028 | | {0x0006, "ManualExposureTime", N_("Manual Exposure Time"), N_("Manual exposure time"), IfdId::sony1MltCsA100Id, |
1029 | | SectionId::makerTags, unsignedShort, 1, printValue}, |
1030 | | {0x0007, "ManualFNumber", N_("Manual FNumber"), N_("Manual FNumber"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1031 | | unsignedShort, 1, printValue}, |
1032 | | {0x0008, "ExposureTime", N_("Exposure Time"), N_("Exposure time"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1033 | | unsignedShort, 1, printValue}, |
1034 | | {0x0009, "FNumber", N_("FNumber"), N_("FNumber"), IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, |
1035 | | printValue}, |
1036 | | {0x000A, "DriveMode2", N_("Drive Mode 2"), N_("Drive mode 2"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1037 | | unsignedShort, 1, EXV_PRINT_TAG(sonyDriveMode2A100)}, |
1038 | | {0x000B, "WhiteBalance", N_("White Balance"), N_("White balance"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1039 | | unsignedShort, 1, EXV_PRINT_TAG(minoltaWhiteBalance5D)}, |
1040 | | {0x000C, "FocusMode", N_("Focus Mode"), N_("Focus mode"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1041 | | unsignedShort, 1, EXV_PRINT_TAG(sonyFocusModeA100)}, |
1042 | | {0x000D, "LocalAFAreaPoint", N_("Local AF Area Point"), N_("Local AF Area Point"), IfdId::sony1MltCsA100Id, |
1043 | | SectionId::makerTags, unsignedShort, 1, printMinoltaSonyLocalAFAreaPoint}, |
1044 | | {0x000E, "AFAreaMode", N_("AF Area Mode"), N_("AF Area Mode"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1045 | | unsignedShort, 1, printMinoltaSonyAFAreaMode}, |
1046 | | {0x000F, "FlashMode", N_("FlashMode"), N_("FlashMode"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1047 | | unsignedShort, 1, EXV_PRINT_TAG(sonyFlashModeA100)}, |
1048 | | {0x0010, "FlashExposureCompSetting", N_("Flash Exposure Comp Setting"), N_("Flash exposure compensation setting"), |
1049 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, printValue}, |
1050 | | {0x0012, "MeteringMode", N_("Metering Mode"), N_("Metering mode"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1051 | | unsignedShort, 1, EXV_PRINT_TAG(sonyMeteringModeA100)}, |
1052 | | {0x0013, "ISOSetting", N_("ISO Setting"), N_("ISO setting"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1053 | | unsignedShort, 1, printValue}, |
1054 | | {0x0014, "ZoneMatchingMode", N_("Zone Matching Mode"), N_("Zone Matching Mode"), IfdId::sony1MltCsA100Id, |
1055 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyZoneMatchingModeA100)}, |
1056 | | {0x0015, "DynamicRangeOptimizerMode", N_("Dynamic Range Optimizer Mode"), N_("Dynamic range optimizer mode"), |
1057 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, printMinoltaSonyDynamicRangeOptimizerMode}, |
1058 | | {0x0016, "ColorMode", N_("Color Mode"), N_("Color mode"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1059 | | unsignedShort, 1, printMinoltaSonyColorMode}, |
1060 | | {0x0017, "ColorSpace", N_("Color Space"), N_("Color space"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1061 | | unsignedShort, 1, EXV_PRINT_TAG(sonyColorSpaceA100)}, |
1062 | | {0x0018, "Sharpness", N_("Sharpness"), N_("Sharpness"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1063 | | unsignedShort, 1, printValue}, |
1064 | | {0x0019, "Contrast", N_("Contrast"), N_("Contrast"), IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, |
1065 | | 1, printValue}, |
1066 | | {0x001A, "Saturation", N_("Saturation"), N_("Saturation"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1067 | | unsignedShort, 1, printValue}, |
1068 | | {0x001C, "FlashMetering", N_("Flash Metering"), N_("Flash metering"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1069 | | unsignedShort, 1, EXV_PRINT_TAG(minoltaFlashMeteringStd)}, |
1070 | | {0x001D, "PrioritySetupShutterRelease", N_("Priority Setup Shutter Release"), N_("Priority Setup Shutter Release"), |
1071 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, printMinoltaSonyPrioritySetupShutterRelease}, |
1072 | | {0x001E, "DriveMode", N_("Drive Mode"), N_("Drive mode"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1073 | | unsignedShort, 1, EXV_PRINT_TAG(sonyDriveModeA100)}, |
1074 | | {0x001F, "SelfTimerTime", N_("Self Timer Time"), N_("Self timer time"), IfdId::sony1MltCsA100Id, |
1075 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonySelfTimerTimeA100)}, |
1076 | | {0x0020, "ContinuousBracketing", N_("Continuous Bracketing"), N_("Continuous bracketing"), IfdId::sony1MltCsA100Id, |
1077 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyContinuousBracketingA100)}, |
1078 | | {0x0021, "SingleFrameBracketing", N_("Single Frame Bracketing"), N_("Single frame bracketing"), |
1079 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonySingleFrameBracketingA100)}, |
1080 | | {0x0022, "WhiteBalanceBracketing", N_("White Balance Bracketing"), N_("White balance bracketing"), |
1081 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyWhiteBalanceBracketingA100)}, |
1082 | | {0x0023, "WhiteBalanceSetting", N_("White Balance Setting"), N_("White balance setting"), IfdId::sony1MltCsA100Id, |
1083 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyWhiteBalanceSettingA100)}, |
1084 | | {0x0024, "PresetWhiteBalance", N_("Preset White Balance"), N_("Preset white balance"), IfdId::sony1MltCsA100Id, |
1085 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyPresetWhiteBalanceA100)}, |
1086 | | {0x0025, "ColorTemperatureSetting", N_("Color Temperature Setting"), N_("Color temperature setting"), |
1087 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyColorTemperatureSettingA100)}, |
1088 | | {0x0026, "CustomWBSetting", N_("Custom WB Setting"), N_("Custom WB setting"), IfdId::sony1MltCsA100Id, |
1089 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCustomWBSettingA100)}, |
1090 | | {0x0027, "DynamicRangeOptimizerSettings", N_("Dynamic Range Optimizer Settings"), |
1091 | | N_("Dynamic Range Optimizer Settings"), IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, |
1092 | | printMinoltaSonyDynamicRangeOptimizerMode}, |
1093 | | {0x0032, "FreeMemoryCardImages", N_("Free Memory Card Images"), N_("Free memory card images"), |
1094 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, printValue}, |
1095 | | {0x0034, "CustomWBRedLevel", N_("Custom WB Red Level"), N_("Custom WB red level"), IfdId::sony1MltCsA100Id, |
1096 | | SectionId::makerTags, unsignedShort, 1, printValue}, |
1097 | | {0x0035, "CustomWBGreenLevel", N_("Custom WB Green Level"), N_("Custom WB green level"), IfdId::sony1MltCsA100Id, |
1098 | | SectionId::makerTags, unsignedShort, 1, printValue}, |
1099 | | {0x0036, "CustomWBBlueLevel", N_("Custom WB Blue Level"), N_("Custom WB blue level"), IfdId::sony1MltCsA100Id, |
1100 | | SectionId::makerTags, unsignedShort, 1, printValue}, |
1101 | | {0x0037, "CustomWBError", N_("Custom WB Error"), N_("Custom WB Error"), IfdId::sony1MltCsA100Id, |
1102 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCustomWBErrorA100)}, |
1103 | | {0x0038, "WhiteBalanceFineTune", N_("White Balance Fine Tune"), N_("White balance fine tune"), |
1104 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, signedShort, 1, printValue}, |
1105 | | {0x0039, "ColorTemperature", N_("Color Temperature"), N_("Color temperature"), IfdId::sony1MltCsA100Id, |
1106 | | SectionId::makerTags, unsignedShort, 1, printValue}, |
1107 | | {0x003A, "ColorCompensationFilter", N_("Color Compensation Filter"), N_("Color compensation filter"), |
1108 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, signedShort, 1, printValue}, |
1109 | | {0x003B, "SonyImageSize", N_("Sony Image Size"), N_("Sony Image Size"), IfdId::sony1MltCsA100Id, |
1110 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyImageSizeA100)}, |
1111 | | {0x003C, "Quality", N_("Quality"), N_("Quality"), IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, |
1112 | | printMinoltaSonyQualityCs}, |
1113 | | {0x003D, "InstantPlaybackTime", N_("Instant Playback Time"), N_("Instant playback time"), IfdId::sony1MltCsA100Id, |
1114 | | SectionId::makerTags, unsignedShort, 1, printValue}, |
1115 | | {0x003E, "InstantPlaybackSetup", N_("Instant Playback Setup"), N_("Instant playback setup"), |
1116 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyInstantPlaybackSetupA100)}, |
1117 | | {0x003F, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), IfdId::sony1MltCsA100Id, |
1118 | | SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolValue}, |
1119 | | {0x0040, "EyeStartAF", N_("Eye Start AF"), N_("Eye start AF"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1120 | | unsignedShort, 1, printMinoltaSonyBoolInverseValue}, |
1121 | | {0x0041, "RedEyeReduction", N_("Red Eye Reduction"), N_("Red eye reduction"), IfdId::sony1MltCsA100Id, |
1122 | | SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolValue}, |
1123 | | {0x0042, "FlashDefault", N_("Flash Default"), N_("Flash default"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1124 | | unsignedShort, 1, EXV_PRINT_TAG(sonyFlashDefaultA100)}, |
1125 | | {0x0043, "AutoBracketOrder", N_("Auto Bracket Order"), N_("Auto bracket order"), IfdId::sony1MltCsA100Id, |
1126 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAutoBracketOrderA100)}, |
1127 | | {0x0044, "FocusHoldButton", N_("Focus Hold Button"), N_("Focus hold button"), IfdId::sony1MltCsA100Id, |
1128 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFocusHoldButtonA100)}, |
1129 | | {0x0045, "AELButton", N_("AEL Button"), N_("AEL button"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1130 | | unsignedShort, 1, EXV_PRINT_TAG(sonyAELButtonA100)}, |
1131 | | {0x0046, "ControlDialSet", N_("Control Dial Set"), N_("Control dial set"), IfdId::sony1MltCsA100Id, |
1132 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyControlDialSetA100)}, |
1133 | | {0x0047, "ExposureCompensationMode", N_("Exposure Compensation Mode"), N_("Exposure compensation mode"), |
1134 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureCompensationModeA100)}, |
1135 | | {0x0048, "AFAssist", N_("AF Assist"), N_("AF assist"), IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, |
1136 | | 1, printMinoltaSonyBoolInverseValue}, |
1137 | | {0x0049, "CardShutterLock", N_("Card Shutter Lock"), N_("Card shutter lock"), IfdId::sony1MltCsA100Id, |
1138 | | SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue}, |
1139 | | {0x004A, "LensShutterLock", N_("Lens Shutter Lock"), N_("Lens shutter lock"), IfdId::sony1MltCsA100Id, |
1140 | | SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue}, |
1141 | | {0x004B, "AFAreaIllumination", N_("AF Area Illumination"), N_("AF area illumination"), IfdId::sony1MltCsA100Id, |
1142 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAFAreaIlluminationA100)}, |
1143 | | {0x004C, "MonitorDisplayOff", N_("Monitor Display Off"), N_("Monitor display off"), IfdId::sony1MltCsA100Id, |
1144 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMonitorDisplayOffA100)}, |
1145 | | {0x004D, "RecordDisplay", N_("Record Display"), N_("Record display"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1146 | | unsignedShort, 1, EXV_PRINT_TAG(sonyRecordDisplayA100)}, |
1147 | | {0x004E, "PlayDisplay", N_("Play Display"), N_("Play display"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1148 | | unsignedShort, 1, EXV_PRINT_TAG(sonyPlayDisplayA100)}, |
1149 | | {0x0050, "ExposureIndicator", N_("Exposure Indicator"), N_("Exposure indicator"), IfdId::sony1MltCsA100Id, |
1150 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)}, |
1151 | | {0x0051, "AELExposureIndicator", N_("AEL Exposure Indicator"), |
1152 | | N_("AEL exposure indicator (also indicates exposure for next shot when bracketing)"), IfdId::sony1MltCsA100Id, |
1153 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)}, |
1154 | | {0x0052, "ExposureBracketingIndicatorLast", N_("Exposure Bracketing Indicator Last"), |
1155 | | N_("Exposure bracketing indicator last (indicator for last shot when bracketing)"), IfdId::sony1MltCsA100Id, |
1156 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)}, |
1157 | | {0x0053, "MeteringOffScaleIndicator", N_("Metering Off Scale Indicator"), |
1158 | | N_("Metering off scale indicator (two flashing triangles when under or over metering scale)"), |
1159 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMeteringOffScaleIndicatorA100)}, |
1160 | | {0x0054, "FlashExposureIndicator", N_("Flash Exposure Indicator"), N_("Flash exposure indicator"), |
1161 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)}, |
1162 | | {0x0055, "FlashExposureIndicatorNext", N_("Flash Exposure Indicator Next"), |
1163 | | N_("Flash exposure indicator next (indicator for next shot when bracketing)"), IfdId::sony1MltCsA100Id, |
1164 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)}, |
1165 | | {0x0056, "FlashExposureIndicatorLast", N_("Flash Exposure Indicator Last"), |
1166 | | N_("Flash exposure indicator last (indicator for last shot when bracketing)"), IfdId::sony1MltCsA100Id, |
1167 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)}, |
1168 | | {0x0057, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), IfdId::sony1MltCsA100Id, |
1169 | | SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolValue}, |
1170 | | {0x0058, "FocusModeSwitch", N_("Focus Mode Switch"), N_("Focus mode switch"), IfdId::sony1MltCsA100Id, |
1171 | | SectionId::makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFocusModeSwitchA100)}, |
1172 | | {0x0059, "FlashType", N_("Flash Type"), N_("Flash type"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1173 | | unsignedShort, 1, EXV_PRINT_TAG(sonyFlashTypeA100)}, |
1174 | | {0x005A, "Rotation", N_("Rotation"), N_("Rotation"), IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, |
1175 | | 1, printMinoltaSonyRotation}, |
1176 | | {0x004B, "AELock", N_("AE Lock"), N_("AE lock"), IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, |
1177 | | printMinoltaSonyBoolValue}, |
1178 | | {0x005E, "ColorTemperature2", N_("Color Temperature 2"), N_("Color temperature 2"), IfdId::sony1MltCsA100Id, |
1179 | | SectionId::makerTags, unsignedLong, 1, printValue}, |
1180 | | {0x005F, "ColorCompensationFilter2", N_("Color Compensation Filter 2"), |
1181 | | N_("Color compensation filter: negative is green, positive is magenta"), IfdId::sony1MltCsA100Id, |
1182 | | SectionId::makerTags, unsignedLong, 1, printValue}, |
1183 | | {0x0060, "BatteryLevel", N_("Battery Level"), N_("Battery level"), IfdId::sony1MltCsA100Id, SectionId::makerTags, |
1184 | | unsignedShort, 1, EXV_PRINT_TAG(sonyBatteryLevelA100)}, |
1185 | | // End of list marker |
1186 | | {0xffff, "(UnknownSonyCsA100Tag)", "(UnknownSonyCsA100Tag)", N_("Unknown Sony Camera Settings A100 tag"), |
1187 | | IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, printValue}, |
1188 | | }; |
1189 | | |
1190 | | // TODO : Add camera settings tags info "New2"... |
1191 | | |
1192 | | // -- Minolta and Sony MakerNote Common Values --------------------------------------- |
1193 | | |
1194 | | //! Lookup table to translate Minolta/Sony Lens id values to readable labels |
1195 | | /* NOTE: |
1196 | | - duplicate tags value are: |
1197 | | 0/25520, 4/25920, 13/25610, 19/25910, 22/26050/26070, |
1198 | | 25500/25501/26130, 25540/25541/25850, 25580/25581, 2564025641, |
1199 | | 25720/25721, 25790/25791, 25960/25961, 25980/25981, 26150/26151 |
1200 | | - No need to i18n these string. |
1201 | | */ |
1202 | | static constexpr TagDetails minoltaSonyLensID[] = { |
1203 | | {0, "Minolta AF 28-85mm F3.5-4.5 New"}, |
1204 | | {1, "Minolta AF 80-200mm F2.8 HS-APO G"}, |
1205 | | {2, "Minolta AF 28-70mm F2.8 G"}, |
1206 | | {3, "Minolta AF 28-80mm F4-5.6"}, |
1207 | | {4, "Minolta AF 85mm F1.4G"}, |
1208 | | {5, "Minolta AF 35-70mm F3.5-4.5 [II]"}, |
1209 | | {6, "Minolta AF 24-85mm F3.5-4.5 [New]"}, |
1210 | | {7, |
1211 | | "Minolta AF 100-300mm F4.5-5.6 (D) APO [New] | " |
1212 | | "Minolta AF 100-400mm F4.5-6.7 (D) | " |
1213 | | "Sigma AF 100-300mm F4 EX DG IF"}, |
1214 | | {8, "Minolta AF 70-210mm F4.5-5.6 [II]"}, |
1215 | | {9, "Minolta AF 50mm F3.5 Macro"}, |
1216 | | {10, "Minolta AF 28-105mm F3.5-4.5 [New]"}, |
1217 | | {11, "Minolta AF 300mm F4 HS-APO G"}, |
1218 | | {12, "Minolta AF 100mm F2.8 Soft Focus"}, |
1219 | | {13, "Minolta AF 75-300mm F4.5-5.6 (New or II)"}, |
1220 | | {14, "Minolta AF 100-400mm F4.5-6.7 APO"}, |
1221 | | {15, "Minolta AF 400mm F4.5 HS-APO G"}, |
1222 | | {16, "Minolta AF 17-35mm F3.5 G"}, |
1223 | | {17, "Minolta AF 20-35mm F3.5-4.5"}, |
1224 | | {18, "Minolta AF 28-80mm F3.5-5.6 II"}, |
1225 | | {19, "Minolta AF 35mm F1.4 G"}, |
1226 | | {20, "Minolta/Sony 135mm F2.8 [T4.5] STF"}, |
1227 | | {22, "Minolta AF 35-80mm F4-5.6 II"}, |
1228 | | {23, "Minolta AF 200mm F4 Macro APO G"}, |
1229 | | {24, |
1230 | | "Minolta/Sony AF 24-105mm F3.5-4.5 (D) | " |
1231 | | "Sigma 18-50mm F2.8 | " |
1232 | | "Sigma 17-70mm F2.8-4.5 (D) | " |
1233 | | "Sigma 20-40mm F2.8 EX DG Aspherical IF | " |
1234 | | "Sigma 18-200mm F3.5-6.3 DC | " |
1235 | | "Sigma DC 18-125mm F4-5,6 D | " |
1236 | | "Tamron SP AF 28-75mm F2.8 XR Di LD Aspherical [IF] Macro"}, |
1237 | | {25, |
1238 | | "Minolta AF 100-300mm F4.5-5.6 APO (D) | " |
1239 | | "Sigma 100-300mm F4 EX (APO (D) or D IF) | " |
1240 | | "Sigma 70mm F2.8 EX DG Macro | " |
1241 | | "Sigma 20mm F1.8 EX DG Aspherical RF | " |
1242 | | "Sigma 30mm F1.4 DG EX | " |
1243 | | "Sigma 24mm F1.8 EX DG ASP Macro"}, |
1244 | | {27, "Minolta AF 85mm F1.4 G (D)"}, |
1245 | | {0x1c, |
1246 | | "Minolta/Sony AF 100mm F2.8 Macro (D) | " // 1 |
1247 | | "Tamron SP AF 90mm F2.8 Di Macro | " // 2 |
1248 | | "Tamron SP AF 180mm F3.5 SP Di LD [IF] Macro"}, // 3 |
1249 | | {29, "Minolta/Sony AF 75-300mm F4.5-5.6 (D) "}, |
1250 | | {30, |
1251 | | "Minolta AF 28-80mm F3.5-5.6 (D) | " |
1252 | | "Sigma AF 10-20mm F4-5.6 EX DC | " |
1253 | | "Sigma AF 12-24mm F4.5-5.6 EX DG | " |
1254 | | "Sigma 28-70mm EX DG F2.8 | " |
1255 | | "Sigma 55-200mm F4-5.6 DC"}, |
1256 | | {31, |
1257 | | "Minolta/Sony AF 50mm F2.8 Macro (D) | " |
1258 | | "Minolta/Sony AF 50mm F3.5 Macro"}, |
1259 | | {32, |
1260 | | "Minolta AF 100-400mm F4.5-6.7 (D) | " |
1261 | | "Minolta/Sony AF 300mm F2.8G APO (D) SSM"}, |
1262 | | {33, "Minolta/Sony AF 70-200mm F2.8 APO G (D) SSM"}, |
1263 | | {35, "Minolta AF 85mm F1.4 G (D) Limited"}, |
1264 | | {36, "Minolta AF 28-100mm F3.5-5.6 (D)"}, |
1265 | | {38, "Minolta AF 17-35mm F2.8-4 (D)"}, |
1266 | | {39, "Minolta AF 28-75mm F2.8 (D)"}, |
1267 | | {40, |
1268 | | "Minolta/Sony AF DT 18-70mm F3.5-5.6 (D) | " |
1269 | | "Sony AF DT 18-200mm F3.5-6.3"}, |
1270 | | {0x29, |
1271 | | "Minolta/Sony AF DT 11-18mm F4.5-5.6 (D) | " // 1 |
1272 | | "Tamron SP AF 11-18mm F4.5-5.6 Di II LD Aspherical IF"}, // 2 |
1273 | | {42, "Minolta/Sony AF DT 18-200mm F3.5-6.3 (D)"}, |
1274 | | {43, "Sony 35mm F1.4 G (SAL35F14G)"}, |
1275 | | {44, "Sony 50mm F1.4 (SAL50F14)"}, |
1276 | | {45, "Carl Zeiss Planar T* 85mm F1.4 ZA (SAL85F14Z)"}, |
1277 | | {46, "Carl Zeiss Vario-Sonnar T* DT 16-80mm F3.5-4.5 ZA (SAL1680Z)"}, |
1278 | | {47, "Carl Zeiss Sonnar T* 135mm F1.8 ZA (SAL135F18Z)"}, |
1279 | | {48, |
1280 | | "Carl Zeiss Vario-Sonnar T* 24-70mm F2.8 ZA SSM (SAL2470Z) | " |
1281 | | "Carl Zeiss Vario-Sonnar T* 24-70mm F2.8 ZA SSM II (SAL2470Z2)"}, |
1282 | | {49, "Sony AF DT 55-200mm F4-5.6 (SAL55200)"}, |
1283 | | {50, "Sony AF DT 18-250mm F3.5-6.3 (SAL18250)"}, |
1284 | | {51, "Sony AF DT 16-105mm F3.5-5.6 (SAL16105)"}, |
1285 | | // { 51, "Sony AF DT 55-200mm F4-5.5" }, // Anomaly? - unconfirmed. |
1286 | | {0x34, |
1287 | | "Sony 70-300mm F4.5-5.6 G SSM (SAL70300G) | " // 1 |
1288 | | "Sony 70-300mm F4.5-5.6 G SSM II (SAL70300G2) | " // 2 |
1289 | | "Tamron SP 70-300mm F4-5.6 Di USD | " // 3 |
1290 | | "Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical"}, // 4 |
1291 | | {53, "Sony AF 70-400mm F4.5-5.6 G SSM (SAL70400G)"}, |
1292 | | {54, |
1293 | | "Carl Zeiss Vario-Sonnar T* 16-35mm F2.8 ZA SSM (SAL1635Z) | " |
1294 | | "Carl Zeiss Vario-Sonnar T* 16-35mm F2.8 ZA SSM II (SAL1635Z2)"}, |
1295 | | {55, |
1296 | | "Sony DT 18-55mm F3.5-5.6 SAM (SAL1855) | " |
1297 | | "Sony DT 18-55mm F3.5-5.6 SAM II (SAL18552)"}, |
1298 | | {56, "Sony AF DT 55-200mm F4-5.6 SAM (SAL55200-2)"}, |
1299 | | {57, |
1300 | | "Sony DT 50mm F1.8 SAM (SAL50F18) | " |
1301 | | "Tamron SP AF 60mm F2 Di II LD [IF] Macro 1:1 | " |
1302 | | "Tamron 18-270mm F3.5-6.3 Di II PZD"}, |
1303 | | {58, "Sony AF DT 30mm F2.8 SAM Macro (SAL30M28)"}, |
1304 | | {59, "Sony 28-75mm F2.8 SAM (SAL2875)"}, |
1305 | | {60, "Carl Zeiss Distagon T* 24mm F2 ZA SSM (SAL24F20Z)"}, |
1306 | | {61, "Sony 85mm F2.8 SAM (SAL85F28)"}, |
1307 | | {62, "Sony DT 35mm F1.8 SAM (SAL35F18)"}, |
1308 | | {63, "Sony DT 16-50mm F2.8 SSM (SAL1650)"}, |
1309 | | {64, "Sony 500mm F4.0 G SSM (SAL500F40G)"}, |
1310 | | {65, "Sony DT 18-135mm F3.5-5.6 SAM (SAL18135)"}, |
1311 | | {66, "Sony 300mm F2.8 G SSM II (SAL300F28G2)"}, |
1312 | | {67, "Sony 70-200mm F2.8 G SSM II (SAL70200G2)"}, |
1313 | | {68, "Sony DT 55-300mm F4.5-5.6 SAM (SAL55300)"}, |
1314 | | {69, "Sony 70-400mm F4-5.6 G SSM II (SAL70400G2)"}, |
1315 | | {70, "Sony Carl Zeiss Planar T* 50mm F1.4 ZA SSM (SALF0F14Z)"}, |
1316 | | {0x80, |
1317 | | "Sigma 70-200mm F2.8 APO EX DG MACRO | " // 1 |
1318 | | "Tamron AF 18-200mm F3.5-6.3 XR Di II LD Aspherical [IF] Macro | " // 2 |
1319 | | "Tamron AF 28-300mm F3.5-6.3 XR Di LD Aspherical [IF] Macro | " // 3 |
1320 | | "Tamron 80-300mm F3.5-6.3 | " // 4 |
1321 | | "Tamron AF 28-200mm F3.8-5.6 XR Di Aspherical [IF] MACRO | " // 5 |
1322 | | "Tamron SP AF 17-35mm F2.8-4 Di LD Aspherical IF | " // 6 |
1323 | | "Sigma AF 50-150mm F2.8 EX DC APO HSM II | " // 7 |
1324 | | "Sigma 10-20mm F3.5 EX DC HSM | " // 8 |
1325 | | "Sigma 70-200mm F2.8 II EX DG APO MACRO HSM | " // 9 |
1326 | | "Sigma 10mm F2.8 EX DC HSM Fisheye | " // 10 |
1327 | | "Sigma 50mm F1.4 EX DG HSM | " // 11 |
1328 | | "Sigma 85mm F1.4 EX DG HSM | " // 12 |
1329 | | "Sigma 24-70mm F2.8 IF EX DG HSM | " // 13 |
1330 | | "Sigma 18-250mm F3.5-6.3 DC OS HSM | " // 14 |
1331 | | "Sigma 17-50mm F2.8 EX DC HSM | " // 15 |
1332 | | "Sigma 17-70mm F2.8-4 DC Macro HSM | " // 16 |
1333 | | "Sigma 150mm F2.8 EX DG OS HSM APO Macro | " // 17 |
1334 | | "Sigma 150-500mm F5-6.3 APO DG OS HSM | " // 18 |
1335 | | "Tamron AF 28-105mm F4-5.6 [IF] | " // 19 |
1336 | | "Sigma 35mm F1.4 DG HSM | " // 20 |
1337 | | "Sigma 18-35mm F1.8 DC HSM | " // 21 |
1338 | | "Sigma 50-500mm F4.5-6.3 APO DG OS HSM | " // 22 |
1339 | | "Sigma 24-105mm F4 DG HSM | Art 013"}, // 23 |
1340 | | {129, |
1341 | | "Tamron 200-400mm F5.6 LD | " |
1342 | | "Tamron 70-300mm F4-5.6 LD"}, |
1343 | | {131, "Tamron 20-40mm F2.7-3.5 SP Aspherical IF"}, |
1344 | | {135, "Vivitar 28-210mm F3.5-5.6"}, |
1345 | | {136, "Tokina EMZ M100 AF 100mm F3.5"}, |
1346 | | {137, "Cosina 70-210mm F2.8-4 AF"}, |
1347 | | {138, "Soligor 19-35mm F3.5-4.5"}, |
1348 | | {139, "Tokina AF 28-300mm F4-6.3"}, |
1349 | | {142, "Voigtlander 70-300mm F4.5-5.6"}, |
1350 | | {146, "Voigtlander Macro APO-Lanthar 125mm F2.5 SL"}, |
1351 | | {193, "Minolta AF 1.4x APO II"}, |
1352 | | {194, "Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical [IF]"}, |
1353 | | {202, "Tamron SP AF 70-200mm F2.8 Di LD [IF] Macro"}, |
1354 | | {203, "Tamron SP 70-200mm F2.8 Di USD"}, |
1355 | | {204, "Tamron SP 24-70mm F2.8 Di USD"}, |
1356 | | {212, "Tamron 28-300mm F3.5-6.3 Di PZD"}, |
1357 | | {213, "Tamron 16-300mm F3.5-6.3 Di II PZD Macro"}, |
1358 | | {214, "Tamron Tamron SP 150-600mm F5-6.3 Di USD"}, |
1359 | | {215, "Tamron SP 15-30mm F2.8 Di USD"}, |
1360 | | {218, "Tamron SP 90mm F2.8 Di Macro 1:1 USD (F017)"}, |
1361 | | {224, "Tamron SP 90mm F2.8 Di Macro 1:1 USD (F004)"}, |
1362 | | {0xff, |
1363 | | "Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical | " // 1 |
1364 | | "Tamron AF 18-250mm F3.5-6.3 XR Di II LD | " // 2 |
1365 | | "Tamron AF 55-200mm F4-5.6 Di II LD Macro | " // 3 |
1366 | | "Tamron AF 70-300mm F4-5.6 Di LD Macro 1:2 | " // 4 |
1367 | | "Tamron SP AF 200-500mm F5.0-6.3 Di LD IF | " // 5 |
1368 | | "Tamron SP AF 10-24mm F3.5-4.5 Di II LD Aspherical IF | " // 6 |
1369 | | "Tamron SP AF 70-200mm F2.8 Di LD IF Macro | " // 7 |
1370 | | "Tamron SP AF 28-75mm F2.8 XR Di LD Aspherical IF | " // 8 |
1371 | | "Tamron AF 90-300mm F4.5-5.6 Telemacro"}, // 9 |
1372 | | {25500, "Minolta AF 50mm F1.7"}, |
1373 | | {25501, "Minolta AF 50mm F1.7"}, |
1374 | | {25510, "Minolta AF 35-70mm F4"}, |
1375 | | {25511, |
1376 | | "Minolta AF 35-70mm F4 | " |
1377 | | "Sigma UC AF 28-70mm F3.5-4.5 | " |
1378 | | "Sigma AF 28-70mm F2.8 | " |
1379 | | "Sigma M-AF 70-200mm F2.8 EX Aspherical | " |
1380 | | "Quantaray M-AF 35-80mm F4-5.6 | " |
1381 | | "Tokina 28-70mm F2.8-4.5 AF"}, |
1382 | | {25520, "Minolta AF 28-85mm F3.5-4.5"}, |
1383 | | {25521, |
1384 | | "Minolta AF 28-85mm F3.5-4.5 | " |
1385 | | "Tokina 19-35mm F3.5-4.5 | " |
1386 | | "Tokina 28-70mm F2.8 AT-X | " |
1387 | | "Tokina 80-400mm F4.5-5.6 AT-X AF II 840 | " |
1388 | | "Tokina AF PRO 28-80mm F2.8 AT-X 280 | " |
1389 | | "Tokina AT-X PRO [II] AF 28-70mm F2.6-2.8 270 | " |
1390 | | "Tamron AF 19-35mm F3.5-4.5 | " |
1391 | | "Angenieux AF 28-70mm F2.6 | " |
1392 | | "Tokina AT-X 17 AF 17mm F3.5 | " |
1393 | | "Tokina 20-35mm F3.5-4.5 II AF"}, |
1394 | | {25530, "Minolta AF 28-135mm F4-4.5"}, |
1395 | | {25531, |
1396 | | "Minolta AF 28-135mm F4-4.5 | " |
1397 | | "Sigma ZOOM-alpha 35-135mm F3.5-4.5 | " |
1398 | | "Sigma 28-105mm F2.8-4 Aspherical | " |
1399 | | "Sigma 28-105mm F4-5.6 UC"}, |
1400 | | {25540, "Minolta AF 35-105mm F3.5-4.5"}, |
1401 | | {25541, "Minolta AF 35-105mm F3.5-4.5"}, |
1402 | | {25550, "Minolta AF 70-210mm F4"}, |
1403 | | {25551, |
1404 | | "Minolta AF 70-210mm F4 Macro | " |
1405 | | "Sigma 70-210mm F4-5.6 APO | " |
1406 | | "Sigma M-AF 70-200mm F2.8 EX APO | " |
1407 | | "Sigma 75-200mm F2.8-3.5"}, |
1408 | | {25560, "Minolta AF 135mm F2.8"}, |
1409 | | {25561, "Minolta AF 135mm F2.8"}, |
1410 | | {25570, "Minolta AF 28mm F2.8"}, |
1411 | | {25571, "Minolta/Sony AF 28mm F2.8"}, |
1412 | | {25580, "Minolta AF 24-50mm F4"}, |
1413 | | {25581, "Minolta AF 24-50mm F4"}, |
1414 | | {25600, "Minolta AF 100-200mm F4.5"}, |
1415 | | {25601, "Minolta AF 100-200mm F4.5"}, |
1416 | | {25610, "Minolta AF 75-300mm F4.5-5.6"}, |
1417 | | {25611, |
1418 | | "Minolta AF 75-300mm F4.5-5.6 | " |
1419 | | "Sigma 70-300mm F4-5.6 DL Macro | " |
1420 | | "Sigma 300mm F4 APO Macro | " |
1421 | | "Sigma AF 500mm F4.5 APO | " |
1422 | | "Sigma AF 170-500mm F5-6.3 APO Aspherical | " |
1423 | | "Tokina AT-X AF 300mm F4 | " |
1424 | | "Tokina AT-X AF 400mm F5.6 SD | " |
1425 | | "Tokina AF 730 II 75-300mm F4.5-5.6 | " |
1426 | | "Sigma 800mm F5.6 APO | " |
1427 | | "Sigma AF 400mm F5.6 APO Macro"}, |
1428 | | {25620, "Minolta AF 50mm F1.4"}, |
1429 | | {25621, "Minolta AF 50mm F1.4 [New]"}, |
1430 | | {25630, "Minolta AF 300mm F2.8G APO"}, |
1431 | | {25631, |
1432 | | "Minolta AF 300mm F2.8 APO | " |
1433 | | "Sigma AF 50-500mm F4-6.3 EX DG APO | " |
1434 | | "Sigma AF 170-500mm F5-6.3 APO Aspherical | " |
1435 | | "Sigma AF 500mm F4.5 EX DG APO | " |
1436 | | "Sigma 400mm F5.6 APO"}, |
1437 | | {25640, "Minolta AF 50mm F2.8 Macro"}, |
1438 | | {25641, |
1439 | | "Minolta AF 50mm F2.8 Macro | " |
1440 | | "Sigma 50mm F2.8 EX Macro"}, |
1441 | | {25650, "Minolta AF 600mm F4 APO"}, |
1442 | | {25651, "Minolta AF 600mm F4 APO"}, |
1443 | | {25660, "Minolta AF 24mm F2.8"}, |
1444 | | {25661, |
1445 | | "Minolta AF 24mm F2.8 | " |
1446 | | "Sigma 17-35mm F2.8-4.0 EX-D"}, |
1447 | | {25720, "Minolta AF 500mm F8 Reflex"}, |
1448 | | {25721, "Minolta/Sony AF 500mm F8 Reflex"}, |
1449 | | {25780, "Minolta/Sony AF 16mm F2.8 Fisheye"}, |
1450 | | {25781, |
1451 | | "Minolta/Sony AF 16mm F2.8 Fisheye | " |
1452 | | "Sigma 8mm F4 EX [DG] Fisheye | " |
1453 | | "Sigma 14mm F3.5 | " |
1454 | | "Sigma 15mm F2.8 Fisheye"}, |
1455 | | {25790, "Minolta AF 20mm F2.8"}, |
1456 | | {25791, |
1457 | | "Minolta/Sony AF 20mm F2.8 | " |
1458 | | "Tokina AT-X 116 PRO DX AF 11-16mm F2.8"}, |
1459 | | {25810, "Minolta AF 100mm F2.8 Macro"}, |
1460 | | {25811, |
1461 | | "Minolta AF 100mm F2.8 Macro [New] | " |
1462 | | "Sigma AF 90mm F2.8 Macro | " |
1463 | | "Sigma AF 105mm F2.8 EX [DG] Macro | " |
1464 | | "Sigma 180mm F5.6 Macro | " |
1465 | | "Sigma 180mm F3.5 EX DG Macro | " |
1466 | | "Tamron 90mm F2.8 Macro"}, |
1467 | | {25850, "Minolta AF 35-105mm F3.5-4.5"}, |
1468 | | {25851, "Beroflex 35-135mm F3.5-4.5"}, |
1469 | | {25858, |
1470 | | "Minolta AF 35-105mm F3.5-4.5 New | " |
1471 | | "Tamron 24-135mm F3.5-5.6"}, |
1472 | | {25880, "Minolta AF 70-210mm F3.5-4.5"}, |
1473 | | {25881, "Minolta AF 70-210mm F3.5-4.5"}, |
1474 | | {25890, "Minolta AF 80-200mm F2.8 APO"}, |
1475 | | {25891, |
1476 | | "Minolta AF 80-200mm F2.8 APO | " |
1477 | | "Tokina 80-200mm F2.8"}, |
1478 | | {25900, "Minolta AF 200mm F2.8 G APO + Minolta AF 1.4x APO"}, |
1479 | | {25901, |
1480 | | "Minolta AF 200mm F2.8 G APO + Minolta AF 1.4x APO | " |
1481 | | "Minolta AF 600mm F4 HS-APO G + Minolta AF 1.4x APO"}, |
1482 | | {25910, "Minolta AF 35mm F1.4G"}, |
1483 | | {25911, "Minolta AF 35mm F1.4"}, |
1484 | | {25920, "Minolta AF 85mm F1.4G"}, |
1485 | | {25921, "Minolta AF 85mm F1.4G (D)"}, |
1486 | | {25930, "Minolta AF 200mm F2.8 APO"}, |
1487 | | {25931, "Minolta AF 200mm F2.8 APO"}, |
1488 | | {25940, "Minolta AF 3X-1X F1.7-2.8 Macro"}, |
1489 | | {25941, "Minolta AF 3x-1x F1.7-2.8 Macro"}, |
1490 | | {25960, "Minolta AF 28mm F2"}, |
1491 | | {25961, "Minolta AF 28mm F2"}, |
1492 | | {25970, "Minolta AF 35mm F2"}, |
1493 | | {25971, "Minolta AF 35mm F2 [New]"}, |
1494 | | {25980, "Minolta AF 100mm F2"}, |
1495 | | {25981, "Minolta AF 100mm F2"}, |
1496 | | {26010, "Minolta AF 200mm F2.8 G APO + Minolta AF 2x APO"}, |
1497 | | {26011, |
1498 | | "Minolta AF 200mm F2.8 G APO + Minolta AF 2x APO | " |
1499 | | "Minolta AF 600mm F4 HS-APO G + Minolta AF 2x APO"}, |
1500 | | {26040, "Minolta AF 80-200mm F4.5-5.6"}, |
1501 | | {26041, "Minolta AF 80-200mm F4.5-5.6"}, |
1502 | | {26050, "Minolta AF 35-80mm F4-5.6"}, |
1503 | | {26051, "Minolta AF 35-80mm F4-5.6"}, |
1504 | | {26060, "Minolta AF 100-300mm F4.5-5.6"}, |
1505 | | {26061, |
1506 | | "Minolta AF 100-300mm F4.5-5.6 (D) | " |
1507 | | "Sigma 105mm F2.8 Macro EX DG"}, |
1508 | | {26070, "Minolta AF 35-80mm F4-5.6"}, |
1509 | | {26071, "Minolta AF 35-80mm F4-5.6"}, |
1510 | | {26080, "Minolta AF 300mm F2.8 G"}, |
1511 | | {26081, "Minolta AF 300mm F2.8 G APO High Speed"}, |
1512 | | {26090, "Minolta AF 600mm F4 G"}, |
1513 | | {26091, "Minolta AF 600mm F4 G APO High Speed"}, |
1514 | | {26120, "Minolta AF 200mm F2.8 G"}, |
1515 | | {26121, "Minolta AF 200mm F2.8 G APO High Speed"}, |
1516 | | {26130, "Minolta AF 50mm F1.7"}, |
1517 | | {26131, "Minolta AF 50mm F1.7 New"}, |
1518 | | {26150, "Minolta AF 28-105mm F3.5-4.5 Xi"}, |
1519 | | {26151, "Minolta AF 28-105mm F3.5-4.5 xi"}, |
1520 | | {26160, "Minolta AF 35-200mm F4.5-5.6 Xi"}, |
1521 | | {26161, "Minolta AF 35-200mm F4.5-5.6 Xi"}, |
1522 | | {26180, "Minolta AF 28-80mm F4-5.6 Xi"}, |
1523 | | {26181, "Minolta AF 28-80mm F4-5.6 xi"}, |
1524 | | {26190, "Minolta AF 80-200mm F4.5-5.6 Xi"}, |
1525 | | {26191, "Minolta AF 80-200mm F4.5-5.6 Xi"}, |
1526 | | {26201, "Minolta AF 28-70mm F2.8 G"}, |
1527 | | {26210, "Minolta AF 100-300mm F4.5-5.6 Xi"}, |
1528 | | {26211, "Minolta AF 100-300mm F4.5-5.6 xi"}, |
1529 | | {26240, "Minolta AF 35-80mm F4-5.6 Power Zoom"}, |
1530 | | {26241, "Minolta AF 35-80mm F4-5.6 Power Zoom"}, |
1531 | | {26281, "Minolta AF 80-200mm F2.8 HS-APO G"}, |
1532 | | {26291, "Minolta AF 85mm F1.4 New"}, |
1533 | | {26311, "Minolta/Sony AF 100-300mm F4.5-5.6 APO"}, |
1534 | | {26321, "Minolta AF 24-50mm F4 New"}, |
1535 | | {26381, "Minolta AF 50mm F2.8 Macro New"}, |
1536 | | {26391, "Minolta AF 100mm F2.8 Macro"}, |
1537 | | {26411, "Minolta/Sony AF 20mm F2.8 New"}, |
1538 | | {26421, "Minolta AF 24mm F2.8 New"}, |
1539 | | {26441, "Minolta AF 100-400mm F4.5-6.7 APO"}, |
1540 | | {26621, "Minolta AF 50mm F1.4 New"}, |
1541 | | {26671, "Minolta AF 35mm F2 New"}, |
1542 | | {26681, "Minolta AF 28mm F2 New"}, |
1543 | | {26721, "Minolta AF 24-105mm F3.5-4.5 (D)"}, |
1544 | | {45671, "Tokina 70-210mm F4-5.6"}, |
1545 | | {45711, "Vivitar 70-210mm F4.5-5.6"}, |
1546 | | {45741, |
1547 | | "Minolta AF200mm F2.8G x2 | " |
1548 | | "Tokina 300mm F2.8 x2 | " |
1549 | | "Tokina RF 500mm F8.0 x2 | " |
1550 | | "Tamron SP AF 90mm F2.5"}, |
1551 | | {45751, "1.4x Teleconverter "}, |
1552 | | {45851, "Tamron SP AF 300mm F2.8 LD IF"}, |
1553 | | {45861, "Tamron SP AF 35-105mm F2.8 LD Aspherical IF"}, |
1554 | | {45871, "Tamron AF 70-210mm F2.8 SP LD"}, |
1555 | | {65280, "Sigma 16mm F2.8 Filtermatic Fisheye"}, |
1556 | | { |
1557 | | 0xffff, |
1558 | | "Manual lens | " // 1 |
1559 | | "Sony E 50mm F1.8 OSS | " // 2 |
1560 | | "E PZ 16-50mm F3.5-5.6 OSS" // 3 |
1561 | | }, |
1562 | | }; |
1563 | | |
1564 | | // ---------------------------------------------------------------------- |
1565 | | // #1145 begin - respect lenses with shared LensID |
1566 | | |
1567 | | #if 0 |
1568 | | // resolveLensTypeUsingExiftool has been debugged on the Mac |
1569 | | // It's not in service because: |
1570 | | // 1 we don't know the path to the file being processed |
1571 | | // 2 can't work for a remote file as exiftool doesn't handle remote IO |
1572 | | // 3 almost certainly throws an ugly ugly dos box on the screen in Windows |
1573 | | // 4 I haven't asked Phil's permission to do this |
1574 | | static std::ostream& resolveLensTypeUsingExiftool(std::ostream& os, const Value& value, |
1575 | | const ExifData* metadata) |
1576 | | { |
1577 | | // #if ! defined(_WIN32) && ! defined(__CYGWIN__) && ! defined(__MINGW__) |
1578 | | #ifndef _MSC_VER |
1579 | | FILE* f = ::popen("/bin/bash -c \"exiftool ~/temp/screen.jpg | grep 'Lens ID' | cut -d: -f 2 | sed -E -e 's/^ //g'\"","r"); |
1580 | | if ( f ) { |
1581 | | char buffer[200]; |
1582 | | int n=::fread(buffer,1,sizeof buffer-1,f); |
1583 | | ::pclose(f); |
1584 | | // just to be sure, add a null byte |
1585 | | if ( 0 <= n && n < (int) sizeof(buffer) ) buffer[n] = 0 ; |
1586 | | |
1587 | | // and stop at any non-printing character such as line-feed |
1588 | | for (int c = 0 ; c < 32 ; c++) |
1589 | | if ( ::strchr(buffer,c) ) |
1590 | | *::strchr(buffer,c)=0; |
1591 | | return os << buffer; |
1592 | | } |
1593 | | #endif |
1594 | | return EXV_PRINT_TAG(minoltaSonyLensID)(os, value, metadata); |
1595 | | } |
1596 | | #endif |
1597 | | |
1598 | 3.53k | static std::string getKeyString(const std::string& key, const ExifData* metadata) { |
1599 | 3.53k | std::string result; |
1600 | 3.53k | if (metadata->findKey(ExifKey(key)) != metadata->end()) { |
1601 | 1.59k | result = metadata->findKey(ExifKey(key))->toString(); |
1602 | 1.59k | } |
1603 | 3.53k | return result; |
1604 | 3.53k | } |
1605 | | |
1606 | | static long getKeyLong(const std::string& key, const ExifData* metadata, int which = 0); |
1607 | 1.46k | static long getKeyLong(const std::string& key, const ExifData* metadata, int which) { |
1608 | 1.46k | long result = -1; |
1609 | 1.46k | if (metadata->findKey(ExifKey(key)) != metadata->end()) { |
1610 | 643 | result = static_cast<long>(metadata->findKey(ExifKey(key))->toFloat(which)); |
1611 | 643 | } |
1612 | 1.46k | return result; |
1613 | 1.46k | } |
1614 | | |
1615 | | /*! http://stackoverflow.com/questions/1798112/removing-leading-and-trailing-spaces-from-a-string |
1616 | | trim from left |
1617 | | */ |
1618 | 120 | static std::string& ltrim(std::string& s, const char* t = " \t\n\r\f\v") { |
1619 | 120 | s.erase(0, s.find_first_not_of(t)); |
1620 | 120 | return s; |
1621 | 120 | } |
1622 | | |
1623 | | //! trim from right |
1624 | 120 | static std::string& rtrim(std::string& s, const char* t = " \t\n\r\f\v") { |
1625 | 120 | s.erase(s.find_last_not_of(t) + 1); |
1626 | 120 | return s; |
1627 | 120 | } |
1628 | | |
1629 | | //! trim from left & right |
1630 | 120 | static std::string& trim(std::string& s, const char* t = " \t\n\r\f\v") { |
1631 | 120 | return ltrim(rtrim(s, t), t); |
1632 | 120 | } |
1633 | | |
1634 | | // https://stackoverflow.com/questions/14265581/parse-split-a-string-in-c-using-string-delimiter-standard-c |
1635 | 120 | static std::vector<std::string> split(const std::string& str, const std::string& delim) { |
1636 | 120 | std::vector<std::string> tokens; |
1637 | 120 | size_t prev = 0; |
1638 | 120 | size_t pos = 0; |
1639 | 490 | while (pos < str.length() && prev < str.length()) { |
1640 | 370 | pos = str.find(delim, prev); |
1641 | 370 | if (pos == std::string::npos) |
1642 | 120 | pos = str.length(); |
1643 | 370 | std::string token = str.substr(prev, pos - prev); |
1644 | 370 | if (!token.empty()) |
1645 | 370 | tokens.push_back(std::move(token)); |
1646 | 370 | prev = pos + delim.length(); |
1647 | 370 | } |
1648 | 120 | return tokens; |
1649 | 120 | } |
1650 | | |
1651 | 58 | static bool inRange(long value, long min, long max) { |
1652 | 58 | return min <= value && value <= max; |
1653 | 58 | } |
1654 | | |
1655 | 120 | static std::ostream& resolvedLens(std::ostream& os, long lensID, long index) { |
1656 | 120 | auto td = Exiv2::find(minoltaSonyLensID, lensID); |
1657 | 120 | std::vector<std::string> tokens = split(td[0].label_, "|"); |
1658 | 120 | return os << _(trim(tokens.at(index - 1)).c_str()); |
1659 | 120 | } |
1660 | | |
1661 | 148 | static std::ostream& resolveLens0x1c(std::ostream& os, const Value& value, const ExifData* metadata) { |
1662 | 148 | try { |
1663 | 148 | long index = 0; |
1664 | | |
1665 | 148 | std::string model = getKeyString("Exif.Image.Model", metadata); |
1666 | 148 | std::string lens = getKeyString("Exif.Photo.LensModel", metadata); |
1667 | | |
1668 | 148 | if (model == "SLT-A77V" && lens == "100mm F2.8 Macro") { |
1669 | 0 | index = 2; |
1670 | 0 | } |
1671 | | |
1672 | 148 | if (index > 0) { |
1673 | 0 | const long lensID = 0x1c; |
1674 | 0 | return resolvedLens(os, lensID, index); |
1675 | 0 | } |
1676 | 148 | } catch (...) { |
1677 | 0 | } |
1678 | 148 | return EXV_PRINT_TAG(minoltaSonyLensID)(os, value, metadata); |
1679 | 148 | } |
1680 | | |
1681 | 177 | static std::ostream& resolveLens0x29(std::ostream& os, const Value& value, const ExifData* metadata) { |
1682 | 177 | try { |
1683 | 177 | long index = 0; |
1684 | | |
1685 | 177 | std::string model = getKeyString("Exif.Image.Model", metadata); |
1686 | 177 | std::string lens = getKeyString("Exif.Photo.LensModel", metadata); |
1687 | | |
1688 | 177 | if (model == "SLT-A77V" && lens == "DT 11-18mm F4.5-5.6") { |
1689 | 0 | index = 2; |
1690 | 0 | } |
1691 | | |
1692 | 177 | if (index > 0) { |
1693 | 0 | const long lensID = 0x29; |
1694 | 0 | return resolvedLens(os, lensID, index); |
1695 | 0 | } |
1696 | 177 | } catch (...) { |
1697 | 0 | } |
1698 | 177 | return EXV_PRINT_TAG(minoltaSonyLensID)(os, value, metadata); |
1699 | 177 | } |
1700 | | |
1701 | 370 | static std::ostream& resolveLens0x34(std::ostream& os, const Value& value, const ExifData* metadata) { |
1702 | 370 | try { |
1703 | 370 | long index = 0; |
1704 | | |
1705 | 370 | std::string model = getKeyString("Exif.Image.Model", metadata); |
1706 | 370 | std::string maxAperture = getKeyString("Exif.Photo.MaxApertureValue", metadata); |
1707 | 370 | long focalLength = getKeyLong("Exif.Photo.FocalLength", metadata); |
1708 | | |
1709 | | // F2_8 |
1710 | 370 | if (model == "SLT-A77V" && maxAperture == "760/256") { |
1711 | 0 | index = 4; |
1712 | 0 | } |
1713 | 370 | if (model == "SLT-A77V" && inRange(focalLength, 70, 300)) { |
1714 | 10 | index = 3; |
1715 | 10 | } |
1716 | | |
1717 | 370 | if (index > 0) { |
1718 | 10 | const long lensID = 0x34; |
1719 | 10 | return resolvedLens(os, lensID, index); |
1720 | 10 | } |
1721 | 370 | } catch (...) { |
1722 | 152 | } |
1723 | 360 | return EXV_PRINT_TAG(minoltaSonyLensID)(os, value, metadata); |
1724 | 370 | } |
1725 | | |
1726 | 456 | static std::ostream& resolveLens0x80(std::ostream& os, const Value& value, const ExifData* metadata) { |
1727 | 456 | try { |
1728 | 456 | long index = 0; |
1729 | | |
1730 | 456 | std::string model = getKeyString("Exif.Image.Model", metadata); |
1731 | 456 | std::string maxAperture = getKeyString("Exif.Photo.MaxApertureValue", metadata); |
1732 | 456 | long focalLength = getKeyLong("Exif.Photo.FocalLength", metadata); |
1733 | | |
1734 | | // F4 |
1735 | 456 | if (model == "SLT-A77V" && maxAperture == "1024/256" && inRange(focalLength, 18, 200)) { |
1736 | 0 | index = 2; |
1737 | 0 | } |
1738 | | |
1739 | 456 | if (index > 0) { |
1740 | 0 | const long lensID = 0x80; |
1741 | 0 | return resolvedLens(os, lensID, index); |
1742 | 0 | } |
1743 | 456 | } catch (...) { |
1744 | 108 | } |
1745 | 456 | return EXV_PRINT_TAG(minoltaSonyLensID)(os, value, metadata); |
1746 | 456 | } |
1747 | | |
1748 | 636 | static std::ostream& resolveLens0xff(std::ostream& os, const Value& value, const ExifData* metadata) { |
1749 | 636 | try { |
1750 | 636 | long index = 0; |
1751 | | |
1752 | 636 | std::string model = getKeyString("Exif.Image.Model", metadata); |
1753 | 636 | long focalLength = getKeyLong("Exif.Photo.FocalLength", metadata); |
1754 | 636 | std::string maxAperture = getKeyString("Exif.Photo.MaxApertureValue", metadata); |
1755 | | |
1756 | | // F2_8 |
1757 | 636 | if (model == "SLT-A77V" && maxAperture == "760/256" && inRange(focalLength, 17, 50)) { |
1758 | 0 | index = 1; |
1759 | 0 | } |
1760 | | |
1761 | 636 | if (index > 0) { |
1762 | 0 | const long lensID = 0xff; |
1763 | 0 | return resolvedLens(os, lensID, index); |
1764 | 0 | } |
1765 | 636 | } catch (...) { |
1766 | 264 | } |
1767 | 636 | return EXV_PRINT_TAG(minoltaSonyLensID)(os, value, metadata); |
1768 | 636 | } |
1769 | | |
1770 | 110 | static std::ostream& resolveLens0xffff(std::ostream& os, const Value& value, const ExifData* metadata) { |
1771 | 110 | try { |
1772 | 110 | long index = 1; |
1773 | | |
1774 | | // #1153 |
1775 | 110 | std::string model = getKeyString("Exif.Image.Model", metadata); |
1776 | 110 | std::string maxAperture = getKeyString("Exif.Photo.MaxApertureValue", metadata); |
1777 | | |
1778 | 110 | std::string F1_8 = "434/256"; |
1779 | 110 | static constexpr const char* maxApertures[] = { |
1780 | 110 | "926/256", // F3.5 |
1781 | 110 | "1024/256", // F4 |
1782 | 110 | "1110/256", // F4.5 |
1783 | 110 | "1188/256", // F5 |
1784 | 110 | "1272/256", // F5.6 |
1785 | 110 | }; |
1786 | | |
1787 | 110 | if (model == "ILCE-6000" && maxAperture == F1_8) |
1788 | 0 | try { |
1789 | 0 | long focalLength = getKeyLong("Exif.Photo.FocalLength", metadata); |
1790 | 0 | if (focalLength > 0) { |
1791 | 0 | long focalL35mm = getKeyLong("Exif.Photo.FocalLengthIn35mmFilm", metadata); |
1792 | 0 | long focalRatio = (focalL35mm * 100) / focalLength; |
1793 | 0 | if (inRange(focalRatio, 145, 155)) |
1794 | 0 | index = 2; |
1795 | 0 | } |
1796 | 0 | } catch (...) { |
1797 | 0 | } |
1798 | | |
1799 | 110 | if (model == "ILCE-6000" && Exiv2::find(maxApertures, maxAperture)) |
1800 | 0 | try { |
1801 | 0 | long focalLength = getKeyLong("Exif.Photo.FocalLength", metadata); |
1802 | 0 | if (focalLength > 0) { |
1803 | 0 | long focalL35mm = getKeyLong("Exif.Photo.FocalLengthIn35mmFilm", metadata); |
1804 | 0 | long focalRatio = (focalL35mm * 100) / focalLength; |
1805 | 0 | if (inRange(focalRatio, 145, 155)) |
1806 | 0 | index = 3; |
1807 | 0 | } |
1808 | 0 | } catch (...) { |
1809 | 0 | } |
1810 | | |
1811 | 110 | if (index > 0) { |
1812 | 110 | const long lensID = 0xffff; |
1813 | 110 | return resolvedLens(os, lensID, index); |
1814 | 110 | } |
1815 | 110 | } catch (...) { |
1816 | 0 | } |
1817 | | |
1818 | 0 | return EXV_PRINT_TAG(minoltaSonyLensID)(os, value, metadata); |
1819 | 110 | } |
1820 | | |
1821 | 5.05k | std::ostream& printMinoltaSonyLensID(std::ostream& os, const Value& value, const ExifData* metadata) { |
1822 | | //! List of lens ids which require special treatment from printMinoltaSonyLensID |
1823 | 5.05k | static constexpr struct LensIdFct { |
1824 | 5.05k | uint32_t idx; |
1825 | 5.05k | PrintFct fct; |
1826 | | |
1827 | 11.0k | bool operator==(uint32_t i) const { |
1828 | 11.0k | return i == idx; |
1829 | 11.0k | } |
1830 | 5.05k | } lensIdFct[] = { |
1831 | 5.05k | {0x001cu, &resolveLens0x1c}, {0x0029u, &resolveLens0x29}, {0x0034u, &resolveLens0x34}, |
1832 | 5.05k | {0x0080u, &resolveLens0x80}, {0x00ffu, &resolveLens0xff}, {0xffffu, &resolveLens0xffff}, |
1833 | | //{0x00ffu, &resolveLensTypeUsingExiftool}, // was used for debugging |
1834 | 5.05k | }; |
1835 | | // #1145 end - respect lenses with shared LensID |
1836 | | // ---------------------------------------------------------------------- |
1837 | | |
1838 | | // #1034 |
1839 | 5.05k | const std::string undefined("undefined"); |
1840 | 5.05k | const std::string minolta("minolta"); |
1841 | 5.05k | const std::string sony("sony"); |
1842 | 5.05k | if (Internal::readExiv2Config(minolta, value.toString(), undefined) != undefined) { |
1843 | 0 | return os << Internal::readExiv2Config(minolta, value.toString(), undefined); |
1844 | 0 | } |
1845 | 5.05k | if (Internal::readExiv2Config(sony, value.toString(), undefined) != undefined) { |
1846 | 0 | return os << Internal::readExiv2Config(sony, value.toString(), undefined); |
1847 | 0 | } |
1848 | | |
1849 | | // #1145 - respect lenses with shared LensID |
1850 | 5.05k | uint32_t index = value.toUint32(); |
1851 | 5.05k | if (metadata) |
1852 | 2.52k | if (auto f = Exiv2::find(lensIdFct, index)) |
1853 | 1.89k | return f->fct(os, value, metadata); |
1854 | 3.15k | return EXV_PRINT_TAG(minoltaSonyLensID)(os, value, metadata); |
1855 | 5.05k | } |
1856 | | |
1857 | | // ---------------------------------------------------------------------------------------------------- |
1858 | | |
1859 | | //! Lookup table to translate Minolta A100 and all other Sony Alpha camera color mode values to readable labels |
1860 | | constexpr TagDetails minoltaSonyColorMode[] = { |
1861 | | {0, N_("Standard")}, {1, N_("Vivid Color")}, {2, N_("Portrait")}, {3, N_("Landscape")}, |
1862 | | {4, N_("Sunset")}, {5, N_("Night View/Portrait")}, {6, N_("Black & White")}, {7, N_("AdobeRGB")}, |
1863 | | {12, N_("Neutral")}, {100, N_("Neutral")}, {101, N_("Clear")}, {102, N_("Deep")}, |
1864 | | {103, N_("Light")}, {104, N_("Night View")}, {105, N_("Autumn Leaves")}, |
1865 | | }; |
1866 | | |
1867 | 196 | std::ostream& printMinoltaSonyColorMode(std::ostream& os, const Value& value, const ExifData* metadata) { |
1868 | 196 | return EXV_PRINT_TAG(minoltaSonyColorMode)(os, value, metadata); |
1869 | 196 | } |
1870 | | |
1871 | | // ---------------------------------------------------------------------------------------------------- |
1872 | | |
1873 | | //! Lookup table to translate Minolta/Sony bool function values to readable labels |
1874 | | constexpr TagDetails minoltaSonyBoolFunction[] = { |
1875 | | {0, N_("Off")}, |
1876 | | {1, N_("On")}, |
1877 | | }; |
1878 | | |
1879 | 3.87k | std::ostream& printMinoltaSonyBoolValue(std::ostream& os, const Value& value, const ExifData* metadata) { |
1880 | 3.87k | return EXV_PRINT_TAG(minoltaSonyBoolFunction)(os, value, metadata); |
1881 | 3.87k | } |
1882 | | |
1883 | | // ---------------------------------------------------------------------------------------------------- |
1884 | | |
1885 | | //! Lookup table to translate Minolta/Sony bool inverse function values to readable labels |
1886 | | constexpr TagDetails minoltaSonyBoolInverseFunction[] = { |
1887 | | {0, N_("On")}, |
1888 | | {1, N_("Off")}, |
1889 | | }; |
1890 | | |
1891 | 906 | std::ostream& printMinoltaSonyBoolInverseValue(std::ostream& os, const Value& value, const ExifData* metadata) { |
1892 | 906 | return EXV_PRINT_TAG(minoltaSonyBoolInverseFunction)(os, value, metadata); |
1893 | 906 | } |
1894 | | |
1895 | | // ---------------------------------------------------------------------------------------------------- |
1896 | | |
1897 | | //! Lookup table to translate Sony camera settings focus mode values to readable labels |
1898 | | constexpr TagDetails minoltaSonyAFAreaMode[] = { |
1899 | | {0, N_("Wide")}, |
1900 | | {1, N_("Local")}, |
1901 | | {2, N_("Spot")}, |
1902 | | }; |
1903 | | |
1904 | 712 | std::ostream& printMinoltaSonyAFAreaMode(std::ostream& os, const Value& value, const ExifData* metadata) { |
1905 | 712 | return EXV_PRINT_TAG(minoltaSonyAFAreaMode)(os, value, metadata); |
1906 | 712 | } |
1907 | | |
1908 | | // ---------------------------------------------------------------------------------------------------- |
1909 | | |
1910 | | //! Lookup table to translate Sony camera settings Local AF Area Point values to readable labels |
1911 | | constexpr TagDetails minoltaSonyLocalAFAreaPoint[] = { |
1912 | | {1, N_("Center")}, {2, N_("Top")}, {3, N_("Top-Right")}, {4, N_("Right")}, |
1913 | | {5, N_("Bottom-Right")}, {6, N_("Bottom")}, {7, N_("Bottom-Left")}, {8, N_("Left")}, |
1914 | | {9, N_("Top-Left")}, {10, N_("Far-Right")}, {11, N_("Far-Left")}, |
1915 | | }; |
1916 | | |
1917 | 712 | std::ostream& printMinoltaSonyLocalAFAreaPoint(std::ostream& os, const Value& value, const ExifData* metadata) { |
1918 | 712 | return EXV_PRINT_TAG(minoltaSonyLocalAFAreaPoint)(os, value, metadata); |
1919 | 712 | } |
1920 | | |
1921 | | // ---------------------------------------------------------------------------------------------------- |
1922 | | |
1923 | | //! Lookup table to translate Sony camera settings dynamic range optimizer mode values to readable labels |
1924 | | constexpr TagDetails minoltaSonyDynamicRangeOptimizerMode[] = { |
1925 | | {0, N_("Off")}, {1, N_("Standard")}, {2, N_("Advanced Auto")}, {3, N_("Advanced Level")}, {4097, N_("Auto")}, |
1926 | | }; |
1927 | | |
1928 | | std::ostream& printMinoltaSonyDynamicRangeOptimizerMode(std::ostream& os, const Value& value, |
1929 | 908 | const ExifData* metadata) { |
1930 | 908 | return EXV_PRINT_TAG(minoltaSonyDynamicRangeOptimizerMode)(os, value, metadata); |
1931 | 908 | } |
1932 | | |
1933 | | // ---------------------------------------------------------------------------------------------------- |
1934 | | |
1935 | | //! Lookup table to translate Sony camera settings priority setup shutter release values to readable labels |
1936 | | constexpr TagDetails minoltaSonyPrioritySetupShutterRelease[] = { |
1937 | | {0, N_("AF")}, |
1938 | | {1, N_("Release")}, |
1939 | | }; |
1940 | | |
1941 | | std::ostream& printMinoltaSonyPrioritySetupShutterRelease(std::ostream& os, const Value& value, |
1942 | 646 | const ExifData* metadata) { |
1943 | 646 | return EXV_PRINT_TAG(minoltaSonyPrioritySetupShutterRelease)(os, value, metadata); |
1944 | 646 | } |
1945 | | |
1946 | | // ---------------------------------------------------------------------------------------------------- |
1947 | | |
1948 | | //! Lookup table to translate Sony camera settings quality values to readable labels |
1949 | | constexpr TagDetails minoltaSonyQualityCs[] = { |
1950 | | {0, N_("RAW")}, {2, N_("CRAW")}, {16, N_("Extra Fine")}, {32, N_("Fine")}, |
1951 | | {34, N_("RAW+JPEG")}, {35, N_("CRAW+JPEG")}, {48, N_("Standard")}, |
1952 | | }; |
1953 | | |
1954 | 554 | std::ostream& printMinoltaSonyQualityCs(std::ostream& os, const Value& value, const ExifData* metadata) { |
1955 | 554 | return EXV_PRINT_TAG(minoltaSonyQualityCs)(os, value, metadata); |
1956 | 554 | } |
1957 | | |
1958 | | // ---------------------------------------------------------------------------------------------------- |
1959 | | |
1960 | | //! Lookup table to translate Sony camera settings rotation values to readable labels |
1961 | | constexpr TagDetails minoltaSonyRotation[] = { |
1962 | | {0, N_("Horizontal (normal)")}, |
1963 | | {1, N_("Rotate 90 CW")}, |
1964 | | {2, N_("Rotate 270 CW")}, |
1965 | | }; |
1966 | | |
1967 | 592 | std::ostream& printMinoltaSonyRotation(std::ostream& os, const Value& value, const ExifData* metadata) { |
1968 | 592 | return EXV_PRINT_TAG(minoltaSonyRotation)(os, value, metadata); |
1969 | 592 | } |
1970 | | |
1971 | | // ---------------------------------------------------------------------------------------------------- |
1972 | | |
1973 | | //! Lookup table to translate Minolta/Sony scene mode values to readable labels |
1974 | | constexpr TagDetails minoltaSonySceneMode[] = { |
1975 | | {0, N_("Standard")}, |
1976 | | {1, N_("Portrait")}, |
1977 | | {2, N_("Text")}, |
1978 | | {3, N_("Night Scene")}, |
1979 | | {4, N_("Sunset")}, |
1980 | | {5, N_("Sports")}, |
1981 | | {6, N_("Landscape")}, |
1982 | | {7, N_("Night Portrait")}, |
1983 | | {8, N_("Macro")}, |
1984 | | {9, N_("Super Macro")}, |
1985 | | {16, N_("Auto")}, |
1986 | | {17, N_("Night View/Portrait")}, |
1987 | | {18, N_("Sweep Panorama")}, |
1988 | | {19, N_("Handheld Night Shot")}, |
1989 | | {20, N_("Anti Motion Blur")}, |
1990 | | {21, N_("Cont. Priority AE")}, |
1991 | | {22, N_("Auto+")}, |
1992 | | {23, N_("3D Sweep Panorama")}, |
1993 | | {24, N_("Superior Auto")}, |
1994 | | {25, N_("High Sensitivity")}, |
1995 | | {26, N_("Fireworks")}, |
1996 | | {27, N_("Food")}, |
1997 | | {28, N_("Pet")}, |
1998 | | {33, N_("HDR")}, |
1999 | | {0xffff, N_("n/a")}, |
2000 | | }; |
2001 | | |
2002 | 3.24k | std::ostream& printMinoltaSonySceneMode(std::ostream& os, const Value& value, const ExifData* metadata) { |
2003 | 3.24k | return EXV_PRINT_TAG(minoltaSonySceneMode)(os, value, metadata); |
2004 | 3.24k | } |
2005 | | |
2006 | | // ---------------------------------------------------------------------------------------------------- |
2007 | | |
2008 | | //! Lookup table to translate Sony/Minolta teleconverter model values to readable labels |
2009 | | constexpr TagDetails minoltaSonyTeleconverterModel[] = { |
2010 | | {0x00, N_("None")}, |
2011 | | {0x04, N_("Minolta/Sony AF 1.4x APO (D) (0x04)")}, |
2012 | | {0x05, N_("Minolta/Sony AF 2x APO (D) (0x05)")}, |
2013 | | {0x48, N_("Minolta/Sony AF 2x APO (D)")}, |
2014 | | {0x50, N_("Minolta AF 2x APO II")}, |
2015 | | {0x60, N_("Minolta AF 2x APO")}, |
2016 | | {0x88, N_("Minolta/Sony AF 1.4x APO (D)")}, |
2017 | | {0x90, N_("Minolta AF 1.4x APO II")}, |
2018 | | {0xa0, N_("Minolta AF 1.4x APO")}, |
2019 | | }; |
2020 | | |
2021 | 514 | std::ostream& printMinoltaSonyTeleconverterModel(std::ostream& os, const Value& value, const ExifData* metadata) { |
2022 | 514 | return EXV_PRINT_TAG(minoltaSonyTeleconverterModel)(os, value, metadata); |
2023 | 514 | } |
2024 | | |
2025 | | // ---------------------------------------------------------------------------------------------------- |
2026 | | |
2027 | | //! Lookup table to translate Sony/Minolta zone matching values to readable labels |
2028 | | constexpr TagDetails minoltaSonyZoneMatching[] = { |
2029 | | {0, N_("ISO Setting Used")}, |
2030 | | {1, N_("High Key")}, |
2031 | | {2, N_("Low Key")}, |
2032 | | }; |
2033 | | |
2034 | 196 | std::ostream& printMinoltaSonyZoneMatching(std::ostream& os, const Value& value, const ExifData* metadata) { |
2035 | 196 | return EXV_PRINT_TAG(minoltaSonyZoneMatching)(os, value, metadata); |
2036 | 196 | } |
2037 | | |
2038 | | } // namespace Exiv2::Internal |