source: josm/trunk/src/com/drew/metadata/exif/makernotes/OlympusMakernoteDirectory.java@ 13500

Last change on this file since 13500 was 13061, checked in by Don-vip, 6 years ago

fix #15505 - update to metadata-extractor 2.10.1

File size: 41.5 KB
Line 
1/*
2 * Copyright 2002-2017 Drew Noakes
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 * More information about this project is available at:
17 *
18 * https://drewnoakes.com/code/exif/
19 * https://github.com/drewnoakes/metadata-extractor
20 */
21package com.drew.metadata.exif.makernotes;
22
23import com.drew.lang.SequentialByteArrayReader;
24import com.drew.lang.annotations.NotNull;
25import com.drew.metadata.Directory;
26
27import java.io.IOException;
28import java.util.HashMap;
29
30/**
31 * The Olympus makernote is used by many manufacturers (Epson, Konica, Minolta and Agfa...), and as such contains some tags
32 * that appear specific to those manufacturers.
33 *
34 * @author Drew Noakes https://drewnoakes.com
35 */
36@SuppressWarnings("WeakerAccess")
37public class OlympusMakernoteDirectory extends Directory
38{
39 /** Used by Konica / Minolta cameras. */
40 public static final int TAG_MAKERNOTE_VERSION = 0x0000;
41 /** Used by Konica / Minolta cameras. */
42 public static final int TAG_CAMERA_SETTINGS_1 = 0x0001;
43 /** Alternate Camera Settings Tag. Used by Konica / Minolta cameras. */
44 public static final int TAG_CAMERA_SETTINGS_2 = 0x0003;
45 /** Used by Konica / Minolta cameras. */
46 public static final int TAG_COMPRESSED_IMAGE_SIZE = 0x0040;
47 /** Used by Konica / Minolta cameras. */
48 public static final int TAG_MINOLTA_THUMBNAIL_OFFSET_1 = 0x0081;
49 /** Alternate Thumbnail Offset. Used by Konica / Minolta cameras. */
50 public static final int TAG_MINOLTA_THUMBNAIL_OFFSET_2 = 0x0088;
51 /** Length of thumbnail in bytes. Used by Konica / Minolta cameras. */
52 public static final int TAG_MINOLTA_THUMBNAIL_LENGTH = 0x0089;
53
54 public static final int TAG_THUMBNAIL_IMAGE = 0x0100;
55
56 /**
57 * Used by Konica / Minolta cameras
58 * 0 = Natural Colour
59 * 1 = Black & White
60 * 2 = Vivid colour
61 * 3 = Solarization
62 * 4 = AdobeRGB
63 */
64 public static final int TAG_COLOUR_MODE = 0x0101;
65
66 /**
67 * Used by Konica / Minolta cameras.
68 * 0 = Raw
69 * 1 = Super Fine
70 * 2 = Fine
71 * 3 = Standard
72 * 4 = Extra Fine
73 */
74 public static final int TAG_IMAGE_QUALITY_1 = 0x0102;
75
76 /**
77 * Not 100% sure about this tag.
78 * <p>
79 * Used by Konica / Minolta cameras.
80 * 0 = Raw
81 * 1 = Super Fine
82 * 2 = Fine
83 * 3 = Standard
84 * 4 = Extra Fine
85 */
86 public static final int TAG_IMAGE_QUALITY_2 = 0x0103;
87
88 public static final int TAG_BODY_FIRMWARE_VERSION = 0x0104;
89
90 /**
91 * Three values:
92 * Value 1: 0=Normal, 2=Fast, 3=Panorama
93 * Value 2: Sequence Number Value 3:
94 * 1 = Panorama Direction: Left to Right
95 * 2 = Panorama Direction: Right to Left
96 * 3 = Panorama Direction: Bottom to Top
97 * 4 = Panorama Direction: Top to Bottom
98 */
99 public static final int TAG_SPECIAL_MODE = 0x0200;
100
101 /**
102 * 1 = Standard Quality
103 * 2 = High Quality
104 * 3 = Super High Quality
105 */
106 public static final int TAG_JPEG_QUALITY = 0x0201;
107
108 /**
109 * 0 = Normal (Not Macro)
110 * 1 = Macro
111 */
112 public static final int TAG_MACRO_MODE = 0x0202;
113
114 /**
115 * 0 = Off, 1 = On
116 */
117 public static final int TAG_BW_MODE = 0x0203;
118
119 /** Zoom Factor (0 or 1 = normal) */
120 public static final int TAG_DIGITAL_ZOOM = 0x0204;
121 public static final int TAG_FOCAL_PLANE_DIAGONAL = 0x0205;
122 public static final int TAG_LENS_DISTORTION_PARAMETERS = 0x0206;
123 public static final int TAG_CAMERA_TYPE = 0x0207;
124 public static final int TAG_PICT_INFO = 0x0208;
125 public static final int TAG_CAMERA_ID = 0x0209;
126
127 /**
128 * Used by Epson cameras
129 * Units = pixels
130 */
131 public static final int TAG_IMAGE_WIDTH = 0x020B;
132
133 /**
134 * Used by Epson cameras
135 * Units = pixels
136 */
137 public static final int TAG_IMAGE_HEIGHT = 0x020C;
138
139 /** A string. Used by Epson cameras. */
140 public static final int TAG_ORIGINAL_MANUFACTURER_MODEL = 0x020D;
141
142 public static final int TAG_PREVIEW_IMAGE = 0x0280;
143 public static final int TAG_PRE_CAPTURE_FRAMES = 0x0300;
144 public static final int TAG_WHITE_BOARD = 0x0301;
145 public static final int TAG_ONE_TOUCH_WB = 0x0302;
146 public static final int TAG_WHITE_BALANCE_BRACKET = 0x0303;
147 public static final int TAG_WHITE_BALANCE_BIAS = 0x0304;
148 public static final int TAG_SCENE_MODE = 0x0403;
149 public static final int TAG_SERIAL_NUMBER_1 = 0x0404;
150 public static final int TAG_FIRMWARE = 0x0405;
151
152 /**
153 * See the PIM specification here:
154 * http://www.ozhiker.com/electronics/pjmt/jpeg_info/pim.html
155 */
156 public static final int TAG_PRINT_IMAGE_MATCHING_INFO = 0x0E00;
157
158 public static final int TAG_DATA_DUMP_1 = 0x0F00;
159 public static final int TAG_DATA_DUMP_2 = 0x0F01;
160
161 public static final int TAG_SHUTTER_SPEED_VALUE = 0x1000;
162 public static final int TAG_ISO_VALUE = 0x1001;
163 public static final int TAG_APERTURE_VALUE = 0x1002;
164 public static final int TAG_BRIGHTNESS_VALUE = 0x1003;
165 public static final int TAG_FLASH_MODE = 0x1004;
166 public static final int TAG_FLASH_DEVICE = 0x1005;
167 public static final int TAG_BRACKET = 0x1006;
168 public static final int TAG_SENSOR_TEMPERATURE = 0x1007;
169 public static final int TAG_LENS_TEMPERATURE = 0x1008;
170 public static final int TAG_LIGHT_CONDITION = 0x1009;
171 public static final int TAG_FOCUS_RANGE = 0x100A;
172 public static final int TAG_FOCUS_MODE = 0x100B;
173 public static final int TAG_FOCUS_DISTANCE = 0x100C;
174 public static final int TAG_ZOOM = 0x100D;
175 public static final int TAG_MACRO_FOCUS = 0x100E;
176 public static final int TAG_SHARPNESS = 0x100F;
177 public static final int TAG_FLASH_CHARGE_LEVEL = 0x1010;
178 public static final int TAG_COLOUR_MATRIX = 0x1011;
179 public static final int TAG_BLACK_LEVEL = 0x1012;
180 public static final int TAG_COLOR_TEMPERATURE_BG = 0x1013;
181 public static final int TAG_COLOR_TEMPERATURE_RG = 0x1014;
182 public static final int TAG_WB_MODE = 0x1015;
183// public static final int TAG_ = 0x1016;
184 public static final int TAG_RED_BALANCE = 0x1017;
185 public static final int TAG_BLUE_BALANCE = 0x1018;
186 public static final int TAG_COLOR_MATRIX_NUMBER = 0x1019;
187 public static final int TAG_SERIAL_NUMBER_2 = 0x101A;
188
189 public static final int TAG_EXTERNAL_FLASH_AE1_0 = 0x101B;
190 public static final int TAG_EXTERNAL_FLASH_AE2_0 = 0x101C;
191 public static final int TAG_INTERNAL_FLASH_AE1_0 = 0x101D;
192 public static final int TAG_INTERNAL_FLASH_AE2_0 = 0x101E;
193 public static final int TAG_EXTERNAL_FLASH_AE1 = 0x101F;
194 public static final int TAG_EXTERNAL_FLASH_AE2 = 0x1020;
195 public static final int TAG_INTERNAL_FLASH_AE1 = 0x1021;
196 public static final int TAG_INTERNAL_FLASH_AE2 = 0x1022;
197
198 public static final int TAG_FLASH_BIAS = 0x1023;
199 public static final int TAG_INTERNAL_FLASH_TABLE = 0x1024;
200 public static final int TAG_EXTERNAL_FLASH_G_VALUE = 0x1025;
201 public static final int TAG_EXTERNAL_FLASH_BOUNCE = 0x1026;
202 public static final int TAG_EXTERNAL_FLASH_ZOOM = 0x1027;
203 public static final int TAG_EXTERNAL_FLASH_MODE = 0x1028;
204 public static final int TAG_CONTRAST = 0x1029;
205 public static final int TAG_SHARPNESS_FACTOR = 0x102A;
206 public static final int TAG_COLOUR_CONTROL = 0x102B;
207 public static final int TAG_VALID_BITS = 0x102C;
208 public static final int TAG_CORING_FILTER = 0x102D;
209 public static final int TAG_OLYMPUS_IMAGE_WIDTH = 0x102E;
210 public static final int TAG_OLYMPUS_IMAGE_HEIGHT = 0x102F;
211 public static final int TAG_SCENE_DETECT = 0x1030;
212 public static final int TAG_SCENE_AREA = 0x1031;
213// public static final int TAG_ = 0x1032;
214 public static final int TAG_SCENE_DETECT_DATA = 0x1033;
215 public static final int TAG_COMPRESSION_RATIO = 0x1034;
216 public static final int TAG_PREVIEW_IMAGE_VALID = 0x1035;
217 public static final int TAG_PREVIEW_IMAGE_START = 0x1036;
218 public static final int TAG_PREVIEW_IMAGE_LENGTH = 0x1037;
219 public static final int TAG_AF_RESULT = 0x1038;
220 public static final int TAG_CCD_SCAN_MODE = 0x1039;
221 public static final int TAG_NOISE_REDUCTION = 0x103A;
222 public static final int TAG_INFINITY_LENS_STEP = 0x103B;
223 public static final int TAG_NEAR_LENS_STEP = 0x103C;
224 public static final int TAG_LIGHT_VALUE_CENTER = 0x103D;
225 public static final int TAG_LIGHT_VALUE_PERIPHERY = 0x103E;
226 public static final int TAG_FIELD_COUNT = 0x103F;
227 public static final int TAG_EQUIPMENT = 0x2010;
228 public static final int TAG_CAMERA_SETTINGS = 0x2020;
229 public static final int TAG_RAW_DEVELOPMENT = 0x2030;
230 public static final int TAG_RAW_DEVELOPMENT_2 = 0x2031;
231 public static final int TAG_IMAGE_PROCESSING = 0x2040;
232 public static final int TAG_FOCUS_INFO = 0x2050;
233 public static final int TAG_RAW_INFO = 0x3000;
234 public static final int TAG_MAIN_INFO = 0x4000;
235
236 public final static class CameraSettings
237 {
238 // These 'sub'-tag values have been created for consistency -- they don't exist within the Makernote IFD
239 private static final int OFFSET = 0xF000;
240
241 public static final int TAG_EXPOSURE_MODE = OFFSET + 2;
242 public static final int TAG_FLASH_MODE = OFFSET + 3;
243 public static final int TAG_WHITE_BALANCE = OFFSET + 4;
244 public static final int TAG_IMAGE_SIZE = OFFSET + 5;
245 public static final int TAG_IMAGE_QUALITY = OFFSET + 6;
246 public static final int TAG_SHOOTING_MODE = OFFSET + 7;
247 public static final int TAG_METERING_MODE = OFFSET + 8;
248 public static final int TAG_APEX_FILM_SPEED_VALUE = OFFSET + 9;
249 public static final int TAG_APEX_SHUTTER_SPEED_TIME_VALUE = OFFSET + 10;
250 public static final int TAG_APEX_APERTURE_VALUE = OFFSET + 11;
251 public static final int TAG_MACRO_MODE = OFFSET + 12;
252 public static final int TAG_DIGITAL_ZOOM = OFFSET + 13;
253 public static final int TAG_EXPOSURE_COMPENSATION = OFFSET + 14;
254 public static final int TAG_BRACKET_STEP = OFFSET + 15;
255 // 16 missing
256 public static final int TAG_INTERVAL_LENGTH = OFFSET + 17;
257 public static final int TAG_INTERVAL_NUMBER = OFFSET + 18;
258 public static final int TAG_FOCAL_LENGTH = OFFSET + 19;
259 public static final int TAG_FOCUS_DISTANCE = OFFSET + 20;
260 public static final int TAG_FLASH_FIRED = OFFSET + 21;
261 public static final int TAG_DATE = OFFSET + 22;
262 public static final int TAG_TIME = OFFSET + 23;
263 public static final int TAG_MAX_APERTURE_AT_FOCAL_LENGTH = OFFSET + 24;
264 // 25, 26 missing
265 public static final int TAG_FILE_NUMBER_MEMORY = OFFSET + 27;
266 public static final int TAG_LAST_FILE_NUMBER = OFFSET + 28;
267 public static final int TAG_WHITE_BALANCE_RED = OFFSET + 29;
268 public static final int TAG_WHITE_BALANCE_GREEN = OFFSET + 30;
269 public static final int TAG_WHITE_BALANCE_BLUE = OFFSET + 31;
270 public static final int TAG_SATURATION = OFFSET + 32;
271 public static final int TAG_CONTRAST = OFFSET + 33;
272 public static final int TAG_SHARPNESS = OFFSET + 34;
273 public static final int TAG_SUBJECT_PROGRAM = OFFSET + 35;
274 public static final int TAG_FLASH_COMPENSATION = OFFSET + 36;
275 public static final int TAG_ISO_SETTING = OFFSET + 37;
276 public static final int TAG_CAMERA_MODEL = OFFSET + 38;
277 public static final int TAG_INTERVAL_MODE = OFFSET + 39;
278 public static final int TAG_FOLDER_NAME = OFFSET + 40;
279 public static final int TAG_COLOR_MODE = OFFSET + 41;
280 public static final int TAG_COLOR_FILTER = OFFSET + 42;
281 public static final int TAG_BLACK_AND_WHITE_FILTER = OFFSET + 43;
282 public static final int TAG_INTERNAL_FLASH = OFFSET + 44;
283 public static final int TAG_APEX_BRIGHTNESS_VALUE = OFFSET + 45;
284 public static final int TAG_SPOT_FOCUS_POINT_X_COORDINATE = OFFSET + 46;
285 public static final int TAG_SPOT_FOCUS_POINT_Y_COORDINATE = OFFSET + 47;
286 public static final int TAG_WIDE_FOCUS_ZONE = OFFSET + 48;
287 public static final int TAG_FOCUS_MODE = OFFSET + 49;
288 public static final int TAG_FOCUS_AREA = OFFSET + 50;
289 public static final int TAG_DEC_SWITCH_POSITION = OFFSET + 51;
290 }
291
292 @NotNull
293 protected static final HashMap<Integer, String> _tagNameMap = new HashMap<Integer, String>();
294
295 static {
296 _tagNameMap.put(TAG_MAKERNOTE_VERSION, "Makernote Version");
297 _tagNameMap.put(TAG_CAMERA_SETTINGS_1, "Camera Settings");
298 _tagNameMap.put(TAG_CAMERA_SETTINGS_2, "Camera Settings");
299 _tagNameMap.put(TAG_COMPRESSED_IMAGE_SIZE, "Compressed Image Size");
300 _tagNameMap.put(TAG_MINOLTA_THUMBNAIL_OFFSET_1, "Thumbnail Offset");
301 _tagNameMap.put(TAG_MINOLTA_THUMBNAIL_OFFSET_2, "Thumbnail Offset");
302 _tagNameMap.put(TAG_MINOLTA_THUMBNAIL_LENGTH, "Thumbnail Length");
303 _tagNameMap.put(TAG_THUMBNAIL_IMAGE, "Thumbnail Image");
304 _tagNameMap.put(TAG_COLOUR_MODE, "Colour Mode");
305 _tagNameMap.put(TAG_IMAGE_QUALITY_1, "Image Quality");
306 _tagNameMap.put(TAG_IMAGE_QUALITY_2, "Image Quality");
307 _tagNameMap.put(TAG_BODY_FIRMWARE_VERSION, "Body Firmware Version");
308 _tagNameMap.put(TAG_SPECIAL_MODE, "Special Mode");
309 _tagNameMap.put(TAG_JPEG_QUALITY, "JPEG Quality");
310 _tagNameMap.put(TAG_MACRO_MODE, "Macro");
311 _tagNameMap.put(TAG_BW_MODE, "BW Mode");
312 _tagNameMap.put(TAG_DIGITAL_ZOOM, "Digital Zoom");
313 _tagNameMap.put(TAG_FOCAL_PLANE_DIAGONAL, "Focal Plane Diagonal");
314 _tagNameMap.put(TAG_LENS_DISTORTION_PARAMETERS, "Lens Distortion Parameters");
315 _tagNameMap.put(TAG_CAMERA_TYPE, "Camera Type");
316 _tagNameMap.put(TAG_PICT_INFO, "Pict Info");
317 _tagNameMap.put(TAG_CAMERA_ID, "Camera Id");
318 _tagNameMap.put(TAG_IMAGE_WIDTH, "Image Width");
319 _tagNameMap.put(TAG_IMAGE_HEIGHT, "Image Height");
320 _tagNameMap.put(TAG_ORIGINAL_MANUFACTURER_MODEL, "Original Manufacturer Model");
321 _tagNameMap.put(TAG_PREVIEW_IMAGE, "Preview Image");
322 _tagNameMap.put(TAG_PRE_CAPTURE_FRAMES, "Pre Capture Frames");
323 _tagNameMap.put(TAG_WHITE_BOARD, "White Board");
324 _tagNameMap.put(TAG_ONE_TOUCH_WB, "One Touch WB");
325 _tagNameMap.put(TAG_WHITE_BALANCE_BRACKET, "White Balance Bracket");
326 _tagNameMap.put(TAG_WHITE_BALANCE_BIAS, "White Balance Bias");
327 _tagNameMap.put(TAG_SCENE_MODE, "Scene Mode");
328 _tagNameMap.put(TAG_SERIAL_NUMBER_1, "Serial Number");
329 _tagNameMap.put(TAG_FIRMWARE, "Firmware");
330 _tagNameMap.put(TAG_PRINT_IMAGE_MATCHING_INFO, "Print Image Matching (PIM) Info");
331 _tagNameMap.put(TAG_DATA_DUMP_1, "Data Dump");
332 _tagNameMap.put(TAG_DATA_DUMP_2, "Data Dump 2");
333 _tagNameMap.put(TAG_SHUTTER_SPEED_VALUE, "Shutter Speed Value");
334 _tagNameMap.put(TAG_ISO_VALUE, "ISO Value");
335 _tagNameMap.put(TAG_APERTURE_VALUE, "Aperture Value");
336 _tagNameMap.put(TAG_BRIGHTNESS_VALUE, "Brightness Value");
337 _tagNameMap.put(TAG_FLASH_MODE, "Flash Mode");
338 _tagNameMap.put(TAG_FLASH_DEVICE, "Flash Device");
339 _tagNameMap.put(TAG_BRACKET, "Bracket");
340 _tagNameMap.put(TAG_SENSOR_TEMPERATURE, "Sensor Temperature");
341 _tagNameMap.put(TAG_LENS_TEMPERATURE, "Lens Temperature");
342 _tagNameMap.put(TAG_LIGHT_CONDITION, "Light Condition");
343 _tagNameMap.put(TAG_FOCUS_RANGE, "Focus Range");
344 _tagNameMap.put(TAG_FOCUS_MODE, "Focus Mode");
345 _tagNameMap.put(TAG_FOCUS_DISTANCE, "Focus Distance");
346 _tagNameMap.put(TAG_ZOOM, "Zoom");
347 _tagNameMap.put(TAG_MACRO_FOCUS, "Macro Focus");
348 _tagNameMap.put(TAG_SHARPNESS, "Sharpness");
349 _tagNameMap.put(TAG_FLASH_CHARGE_LEVEL, "Flash Charge Level");
350 _tagNameMap.put(TAG_COLOUR_MATRIX, "Colour Matrix");
351 _tagNameMap.put(TAG_BLACK_LEVEL, "Black Level");
352 _tagNameMap.put(TAG_COLOR_TEMPERATURE_BG, "Color Temperature BG");
353 _tagNameMap.put(TAG_COLOR_TEMPERATURE_RG, "Color Temperature RG");
354 _tagNameMap.put(TAG_WB_MODE, "White Balance Mode");
355 _tagNameMap.put(TAG_RED_BALANCE, "Red Balance");
356 _tagNameMap.put(TAG_BLUE_BALANCE, "Blue Balance");
357 _tagNameMap.put(TAG_COLOR_MATRIX_NUMBER, "Color Matrix Number");
358 _tagNameMap.put(TAG_SERIAL_NUMBER_2, "Serial Number");
359 _tagNameMap.put(TAG_EXTERNAL_FLASH_AE1_0, "External Flash AE1 0");
360 _tagNameMap.put(TAG_EXTERNAL_FLASH_AE2_0, "External Flash AE2 0");
361 _tagNameMap.put(TAG_INTERNAL_FLASH_AE1_0, "Internal Flash AE1 0");
362 _tagNameMap.put(TAG_INTERNAL_FLASH_AE2_0, "Internal Flash AE2 0");
363 _tagNameMap.put(TAG_EXTERNAL_FLASH_AE1, "External Flash AE1");
364 _tagNameMap.put(TAG_EXTERNAL_FLASH_AE2, "External Flash AE2");
365 _tagNameMap.put(TAG_INTERNAL_FLASH_AE1, "Internal Flash AE1");
366 _tagNameMap.put(TAG_INTERNAL_FLASH_AE2, "Internal Flash AE2");
367 _tagNameMap.put(TAG_FLASH_BIAS, "Flash Bias");
368 _tagNameMap.put(TAG_INTERNAL_FLASH_TABLE, "Internal Flash Table");
369 _tagNameMap.put(TAG_EXTERNAL_FLASH_G_VALUE, "External Flash G Value");
370 _tagNameMap.put(TAG_EXTERNAL_FLASH_BOUNCE, "External Flash Bounce");
371 _tagNameMap.put(TAG_EXTERNAL_FLASH_ZOOM, "External Flash Zoom");
372 _tagNameMap.put(TAG_EXTERNAL_FLASH_MODE, "External Flash Mode");
373 _tagNameMap.put(TAG_CONTRAST, "Contrast");
374 _tagNameMap.put(TAG_SHARPNESS_FACTOR, "Sharpness Factor");
375 _tagNameMap.put(TAG_COLOUR_CONTROL, "Colour Control");
376 _tagNameMap.put(TAG_VALID_BITS, "Valid Bits");
377 _tagNameMap.put(TAG_CORING_FILTER, "Coring Filter");
378 _tagNameMap.put(TAG_OLYMPUS_IMAGE_WIDTH, "Olympus Image Width");
379 _tagNameMap.put(TAG_OLYMPUS_IMAGE_HEIGHT, "Olympus Image Height");
380 _tagNameMap.put(TAG_SCENE_DETECT, "Scene Detect");
381 _tagNameMap.put(TAG_SCENE_AREA, "Scene Area");
382 _tagNameMap.put(TAG_SCENE_DETECT_DATA, "Scene Detect Data");
383 _tagNameMap.put(TAG_COMPRESSION_RATIO, "Compression Ratio");
384 _tagNameMap.put(TAG_PREVIEW_IMAGE_VALID, "Preview Image Valid");
385 _tagNameMap.put(TAG_PREVIEW_IMAGE_START, "Preview Image Start");
386 _tagNameMap.put(TAG_PREVIEW_IMAGE_LENGTH, "Preview Image Length");
387 _tagNameMap.put(TAG_AF_RESULT, "AF Result");
388 _tagNameMap.put(TAG_CCD_SCAN_MODE, "CCD Scan Mode");
389 _tagNameMap.put(TAG_NOISE_REDUCTION, "Noise Reduction");
390 _tagNameMap.put(TAG_INFINITY_LENS_STEP, "Infinity Lens Step");
391 _tagNameMap.put(TAG_NEAR_LENS_STEP, "Near Lens Step");
392 _tagNameMap.put(TAG_LIGHT_VALUE_CENTER, "Light Value Center");
393 _tagNameMap.put(TAG_LIGHT_VALUE_PERIPHERY, "Light Value Periphery");
394 _tagNameMap.put(TAG_FIELD_COUNT, "Field Count");
395 _tagNameMap.put(TAG_EQUIPMENT, "Equipment");
396 _tagNameMap.put(TAG_CAMERA_SETTINGS, "Camera Settings");
397 _tagNameMap.put(TAG_RAW_DEVELOPMENT, "Raw Development");
398 _tagNameMap.put(TAG_RAW_DEVELOPMENT_2, "Raw Development 2");
399 _tagNameMap.put(TAG_IMAGE_PROCESSING, "Image Processing");
400 _tagNameMap.put(TAG_FOCUS_INFO, "Focus Info");
401 _tagNameMap.put(TAG_RAW_INFO, "Raw Info");
402 _tagNameMap.put(TAG_MAIN_INFO, "Main Info");
403
404 _tagNameMap.put(CameraSettings.TAG_EXPOSURE_MODE, "Exposure Mode");
405 _tagNameMap.put(CameraSettings.TAG_FLASH_MODE, "Flash Mode");
406 _tagNameMap.put(CameraSettings.TAG_WHITE_BALANCE, "White Balance");
407 _tagNameMap.put(CameraSettings.TAG_IMAGE_SIZE, "Image Size");
408 _tagNameMap.put(CameraSettings.TAG_IMAGE_QUALITY, "Image Quality");
409 _tagNameMap.put(CameraSettings.TAG_SHOOTING_MODE, "Shooting Mode");
410 _tagNameMap.put(CameraSettings.TAG_METERING_MODE, "Metering Mode");
411 _tagNameMap.put(CameraSettings.TAG_APEX_FILM_SPEED_VALUE, "Apex Film Speed Value");
412 _tagNameMap.put(CameraSettings.TAG_APEX_SHUTTER_SPEED_TIME_VALUE, "Apex Shutter Speed Time Value");
413 _tagNameMap.put(CameraSettings.TAG_APEX_APERTURE_VALUE, "Apex Aperture Value");
414 _tagNameMap.put(CameraSettings.TAG_MACRO_MODE, "Macro Mode");
415 _tagNameMap.put(CameraSettings.TAG_DIGITAL_ZOOM, "Digital Zoom");
416 _tagNameMap.put(CameraSettings.TAG_EXPOSURE_COMPENSATION, "Exposure Compensation");
417 _tagNameMap.put(CameraSettings.TAG_BRACKET_STEP, "Bracket Step");
418
419 _tagNameMap.put(CameraSettings.TAG_INTERVAL_LENGTH, "Interval Length");
420 _tagNameMap.put(CameraSettings.TAG_INTERVAL_NUMBER, "Interval Number");
421 _tagNameMap.put(CameraSettings.TAG_FOCAL_LENGTH, "Focal Length");
422 _tagNameMap.put(CameraSettings.TAG_FOCUS_DISTANCE, "Focus Distance");
423 _tagNameMap.put(CameraSettings.TAG_FLASH_FIRED, "Flash Fired");
424 _tagNameMap.put(CameraSettings.TAG_DATE, "Date");
425 _tagNameMap.put(CameraSettings.TAG_TIME, "Time");
426 _tagNameMap.put(CameraSettings.TAG_MAX_APERTURE_AT_FOCAL_LENGTH, "Max Aperture at Focal Length");
427
428 _tagNameMap.put(CameraSettings.TAG_FILE_NUMBER_MEMORY, "File Number Memory");
429 _tagNameMap.put(CameraSettings.TAG_LAST_FILE_NUMBER, "Last File Number");
430 _tagNameMap.put(CameraSettings.TAG_WHITE_BALANCE_RED, "White Balance Red");
431 _tagNameMap.put(CameraSettings.TAG_WHITE_BALANCE_GREEN, "White Balance Green");
432 _tagNameMap.put(CameraSettings.TAG_WHITE_BALANCE_BLUE, "White Balance Blue");
433 _tagNameMap.put(CameraSettings.TAG_SATURATION, "Saturation");
434 _tagNameMap.put(CameraSettings.TAG_CONTRAST, "Contrast");
435 _tagNameMap.put(CameraSettings.TAG_SHARPNESS, "Sharpness");
436 _tagNameMap.put(CameraSettings.TAG_SUBJECT_PROGRAM, "Subject Program");
437 _tagNameMap.put(CameraSettings.TAG_FLASH_COMPENSATION, "Flash Compensation");
438 _tagNameMap.put(CameraSettings.TAG_ISO_SETTING, "ISO Setting");
439 _tagNameMap.put(CameraSettings.TAG_CAMERA_MODEL, "Camera Model");
440 _tagNameMap.put(CameraSettings.TAG_INTERVAL_MODE, "Interval Mode");
441 _tagNameMap.put(CameraSettings.TAG_FOLDER_NAME, "Folder Name");
442 _tagNameMap.put(CameraSettings.TAG_COLOR_MODE, "Color Mode");
443 _tagNameMap.put(CameraSettings.TAG_COLOR_FILTER, "Color Filter");
444 _tagNameMap.put(CameraSettings.TAG_BLACK_AND_WHITE_FILTER, "Black and White Filter");
445 _tagNameMap.put(CameraSettings.TAG_INTERNAL_FLASH, "Internal Flash");
446 _tagNameMap.put(CameraSettings.TAG_APEX_BRIGHTNESS_VALUE, "Apex Brightness Value");
447 _tagNameMap.put(CameraSettings.TAG_SPOT_FOCUS_POINT_X_COORDINATE, "Spot Focus Point X Coordinate");
448 _tagNameMap.put(CameraSettings.TAG_SPOT_FOCUS_POINT_Y_COORDINATE, "Spot Focus Point Y Coordinate");
449 _tagNameMap.put(CameraSettings.TAG_WIDE_FOCUS_ZONE, "Wide Focus Zone");
450 _tagNameMap.put(CameraSettings.TAG_FOCUS_MODE, "Focus Mode");
451 _tagNameMap.put(CameraSettings.TAG_FOCUS_AREA, "Focus Area");
452 _tagNameMap.put(CameraSettings.TAG_DEC_SWITCH_POSITION, "DEC Switch Position");
453 }
454
455 public OlympusMakernoteDirectory()
456 {
457 this.setDescriptor(new OlympusMakernoteDescriptor(this));
458 }
459
460 @Override
461 @NotNull
462 public String getName()
463 {
464 return "Olympus Makernote";
465 }
466
467 @Override
468 public void setByteArray(int tagType, @NotNull byte[] bytes)
469 {
470 if (tagType == TAG_CAMERA_SETTINGS_1 || tagType == TAG_CAMERA_SETTINGS_2) {
471 processCameraSettings(bytes);
472 } else {
473 super.setByteArray(tagType, bytes);
474 }
475 }
476
477 private void processCameraSettings(byte[] bytes)
478 {
479 SequentialByteArrayReader reader = new SequentialByteArrayReader(bytes);
480 reader.setMotorolaByteOrder(true);
481
482 int count = bytes.length / 4;
483
484 try {
485 for (int i = 0; i < count; i++) {
486 int value = reader.getInt32();
487 setInt(CameraSettings.OFFSET + i, value);
488 }
489 } catch (IOException e) {
490 // Should never happen, given that we check the length of the bytes beforehand.
491 e.printStackTrace();
492 }
493 }
494
495 public boolean isIntervalMode()
496 {
497 Long value = getLongObject(CameraSettings.TAG_SHOOTING_MODE);
498 return value != null && value == 5;
499 }
500
501 @Override
502 @NotNull
503 protected HashMap<Integer, String> getTagNameMap()
504 {
505 return _tagNameMap;
506 }
507
508 // <summary>
509 // These values are currently decoded only for Olympus models. Models with
510 // Olympus-style maker notes from other brands such as Acer, BenQ, Hitachi, HP,
511 // Premier, Konica-Minolta, Maginon, Ricoh, Rollei, SeaLife, Sony, Supra,
512 // Vivitar are not listed.
513 // </summary>
514 // <remarks>
515 // Converted from Exiftool version 10.33 created by Phil Harvey
516 // http://www.sno.phy.queensu.ca/~phil/exiftool/
517 // lib\Image\ExifTool\Olympus.pm
518 // </remarks>
519 public static final HashMap<String, String> OlympusCameraTypes = new HashMap<String, String>();
520
521 static {
522 OlympusCameraTypes.put("D4028", "X-2,C-50Z");
523 OlympusCameraTypes.put("D4029", "E-20,E-20N,E-20P");
524 OlympusCameraTypes.put("D4034", "C720UZ");
525 OlympusCameraTypes.put("D4040", "E-1");
526 OlympusCameraTypes.put("D4041", "E-300");
527 OlympusCameraTypes.put("D4083", "C2Z,D520Z,C220Z");
528 OlympusCameraTypes.put("D4106", "u20D,S400D,u400D");
529 OlympusCameraTypes.put("D4120", "X-1");
530 OlympusCameraTypes.put("D4122", "u10D,S300D,u300D");
531 OlympusCameraTypes.put("D4125", "AZ-1");
532 OlympusCameraTypes.put("D4141", "C150,D390");
533 OlympusCameraTypes.put("D4193", "C-5000Z");
534 OlympusCameraTypes.put("D4194", "X-3,C-60Z");
535 OlympusCameraTypes.put("D4199", "u30D,S410D,u410D");
536 OlympusCameraTypes.put("D4205", "X450,D535Z,C370Z");
537 OlympusCameraTypes.put("D4210", "C160,D395");
538 OlympusCameraTypes.put("D4211", "C725UZ");
539 OlympusCameraTypes.put("D4213", "FerrariMODEL2003");
540 OlympusCameraTypes.put("D4216", "u15D");
541 OlympusCameraTypes.put("D4217", "u25D");
542 OlympusCameraTypes.put("D4220", "u-miniD,Stylus V");
543 OlympusCameraTypes.put("D4221", "u40D,S500,uD500");
544 OlympusCameraTypes.put("D4231", "FerrariMODEL2004");
545 OlympusCameraTypes.put("D4240", "X500,D590Z,C470Z");
546 OlympusCameraTypes.put("D4244", "uD800,S800");
547 OlympusCameraTypes.put("D4256", "u720SW,S720SW");
548 OlympusCameraTypes.put("D4261", "X600,D630,FE5500");
549 OlympusCameraTypes.put("D4262", "uD600,S600");
550 OlympusCameraTypes.put("D4301", "u810/S810"); // (yes, "/". Olympus is not consistent in the notation)
551 OlympusCameraTypes.put("D4302", "u710,S710");
552 OlympusCameraTypes.put("D4303", "u700,S700");
553 OlympusCameraTypes.put("D4304", "FE100,X710");
554 OlympusCameraTypes.put("D4305", "FE110,X705");
555 OlympusCameraTypes.put("D4310", "FE-130,X-720");
556 OlympusCameraTypes.put("D4311", "FE-140,X-725");
557 OlympusCameraTypes.put("D4312", "FE150,X730");
558 OlympusCameraTypes.put("D4313", "FE160,X735");
559 OlympusCameraTypes.put("D4314", "u740,S740");
560 OlympusCameraTypes.put("D4315", "u750,S750");
561 OlympusCameraTypes.put("D4316", "u730/S730");
562 OlympusCameraTypes.put("D4317", "FE115,X715");
563 OlympusCameraTypes.put("D4321", "SP550UZ");
564 OlympusCameraTypes.put("D4322", "SP510UZ");
565 OlympusCameraTypes.put("D4324", "FE170,X760");
566 OlympusCameraTypes.put("D4326", "FE200");
567 OlympusCameraTypes.put("D4327", "FE190/X750"); // (also SX876)
568 OlympusCameraTypes.put("D4328", "u760,S760");
569 OlympusCameraTypes.put("D4330", "FE180/X745"); // (also SX875)
570 OlympusCameraTypes.put("D4331", "u1000/S1000");
571 OlympusCameraTypes.put("D4332", "u770SW,S770SW");
572 OlympusCameraTypes.put("D4333", "FE240/X795");
573 OlympusCameraTypes.put("D4334", "FE210,X775");
574 OlympusCameraTypes.put("D4336", "FE230/X790");
575 OlympusCameraTypes.put("D4337", "FE220,X785");
576 OlympusCameraTypes.put("D4338", "u725SW,S725SW");
577 OlympusCameraTypes.put("D4339", "FE250/X800");
578 OlympusCameraTypes.put("D4341", "u780,S780");
579 OlympusCameraTypes.put("D4343", "u790SW,S790SW");
580 OlympusCameraTypes.put("D4344", "u1020,S1020");
581 OlympusCameraTypes.put("D4346", "FE15,X10");
582 OlympusCameraTypes.put("D4348", "FE280,X820,C520");
583 OlympusCameraTypes.put("D4349", "FE300,X830");
584 OlympusCameraTypes.put("D4350", "u820,S820");
585 OlympusCameraTypes.put("D4351", "u1200,S1200");
586 OlympusCameraTypes.put("D4352", "FE270,X815,C510");
587 OlympusCameraTypes.put("D4353", "u795SW,S795SW");
588 OlympusCameraTypes.put("D4354", "u1030SW,S1030SW");
589 OlympusCameraTypes.put("D4355", "SP560UZ");
590 OlympusCameraTypes.put("D4356", "u1010,S1010");
591 OlympusCameraTypes.put("D4357", "u830,S830");
592 OlympusCameraTypes.put("D4359", "u840,S840");
593 OlympusCameraTypes.put("D4360", "FE350WIDE,X865");
594 OlympusCameraTypes.put("D4361", "u850SW,S850SW");
595 OlympusCameraTypes.put("D4362", "FE340,X855,C560");
596 OlympusCameraTypes.put("D4363", "FE320,X835,C540");
597 OlympusCameraTypes.put("D4364", "SP570UZ");
598 OlympusCameraTypes.put("D4366", "FE330,X845,C550");
599 OlympusCameraTypes.put("D4368", "FE310,X840,C530");
600 OlympusCameraTypes.put("D4370", "u1050SW,S1050SW");
601 OlympusCameraTypes.put("D4371", "u1060,S1060");
602 OlympusCameraTypes.put("D4372", "FE370,X880,C575");
603 OlympusCameraTypes.put("D4374", "SP565UZ");
604 OlympusCameraTypes.put("D4377", "u1040,S1040");
605 OlympusCameraTypes.put("D4378", "FE360,X875,C570");
606 OlympusCameraTypes.put("D4379", "FE20,X15,C25");
607 OlympusCameraTypes.put("D4380", "uT6000,ST6000");
608 OlympusCameraTypes.put("D4381", "uT8000,ST8000");
609 OlympusCameraTypes.put("D4382", "u9000,S9000");
610 OlympusCameraTypes.put("D4384", "SP590UZ");
611 OlympusCameraTypes.put("D4385", "FE3010,X895");
612 OlympusCameraTypes.put("D4386", "FE3000,X890");
613 OlympusCameraTypes.put("D4387", "FE35,X30");
614 OlympusCameraTypes.put("D4388", "u550WP,S550WP");
615 OlympusCameraTypes.put("D4390", "FE5000,X905");
616 OlympusCameraTypes.put("D4391", "u5000");
617 OlympusCameraTypes.put("D4392", "u7000,S7000");
618 OlympusCameraTypes.put("D4396", "FE5010,X915");
619 OlympusCameraTypes.put("D4397", "FE25,X20");
620 OlympusCameraTypes.put("D4398", "FE45,X40");
621 OlympusCameraTypes.put("D4401", "XZ-1");
622 OlympusCameraTypes.put("D4402", "uT6010,ST6010");
623 OlympusCameraTypes.put("D4406", "u7010,S7010 / u7020,S7020");
624 OlympusCameraTypes.put("D4407", "FE4010,X930");
625 OlympusCameraTypes.put("D4408", "X560WP");
626 OlympusCameraTypes.put("D4409", "FE26,X21");
627 OlympusCameraTypes.put("D4410", "FE4000,X920,X925");
628 OlympusCameraTypes.put("D4411", "FE46,X41,X42");
629 OlympusCameraTypes.put("D4412", "FE5020,X935");
630 OlympusCameraTypes.put("D4413", "uTough-3000");
631 OlympusCameraTypes.put("D4414", "StylusTough-6020");
632 OlympusCameraTypes.put("D4415", "StylusTough-8010");
633 OlympusCameraTypes.put("D4417", "u5010,S5010");
634 OlympusCameraTypes.put("D4418", "u7040,S7040");
635 OlympusCameraTypes.put("D4419", "u9010,S9010");
636 OlympusCameraTypes.put("D4423", "FE4040");
637 OlympusCameraTypes.put("D4424", "FE47,X43");
638 OlympusCameraTypes.put("D4426", "FE4030,X950");
639 OlympusCameraTypes.put("D4428", "FE5030,X965,X960");
640 OlympusCameraTypes.put("D4430", "u7030,S7030");
641 OlympusCameraTypes.put("D4432", "SP600UZ");
642 OlympusCameraTypes.put("D4434", "SP800UZ");
643 OlympusCameraTypes.put("D4439", "FE4020,X940");
644 OlympusCameraTypes.put("D4442", "FE5035");
645 OlympusCameraTypes.put("D4448", "FE4050,X970");
646 OlympusCameraTypes.put("D4450", "FE5050,X985");
647 OlympusCameraTypes.put("D4454", "u-7050");
648 OlympusCameraTypes.put("D4464", "T10,X27");
649 OlympusCameraTypes.put("D4470", "FE5040,X980");
650 OlympusCameraTypes.put("D4472", "TG-310");
651 OlympusCameraTypes.put("D4474", "TG-610");
652 OlympusCameraTypes.put("D4476", "TG-810");
653 OlympusCameraTypes.put("D4478", "VG145,VG140,D715");
654 OlympusCameraTypes.put("D4479", "VG130,D710");
655 OlympusCameraTypes.put("D4480", "VG120,D705");
656 OlympusCameraTypes.put("D4482", "VR310,D720");
657 OlympusCameraTypes.put("D4484", "VR320,D725");
658 OlympusCameraTypes.put("D4486", "VR330,D730");
659 OlympusCameraTypes.put("D4488", "VG110,D700");
660 OlympusCameraTypes.put("D4490", "SP-610UZ");
661 OlympusCameraTypes.put("D4492", "SZ-10");
662 OlympusCameraTypes.put("D4494", "SZ-20");
663 OlympusCameraTypes.put("D4496", "SZ-30MR");
664 OlympusCameraTypes.put("D4498", "SP-810UZ");
665 OlympusCameraTypes.put("D4500", "SZ-11");
666 OlympusCameraTypes.put("D4504", "TG-615");
667 OlympusCameraTypes.put("D4508", "TG-620");
668 OlympusCameraTypes.put("D4510", "TG-820");
669 OlympusCameraTypes.put("D4512", "TG-1");
670 OlympusCameraTypes.put("D4516", "SH-21");
671 OlympusCameraTypes.put("D4519", "SZ-14");
672 OlympusCameraTypes.put("D4520", "SZ-31MR");
673 OlympusCameraTypes.put("D4521", "SH-25MR");
674 OlympusCameraTypes.put("D4523", "SP-720UZ");
675 OlympusCameraTypes.put("D4529", "VG170");
676 OlympusCameraTypes.put("D4531", "XZ-2");
677 OlympusCameraTypes.put("D4535", "SP-620UZ");
678 OlympusCameraTypes.put("D4536", "TG-320");
679 OlympusCameraTypes.put("D4537", "VR340,D750");
680 OlympusCameraTypes.put("D4538", "VG160,X990,D745");
681 OlympusCameraTypes.put("D4541", "SZ-12");
682 OlympusCameraTypes.put("D4545", "VH410");
683 OlympusCameraTypes.put("D4546", "XZ-10"); //IB
684 OlympusCameraTypes.put("D4547", "TG-2");
685 OlympusCameraTypes.put("D4548", "TG-830");
686 OlympusCameraTypes.put("D4549", "TG-630");
687 OlympusCameraTypes.put("D4550", "SH-50");
688 OlympusCameraTypes.put("D4553", "SZ-16,DZ-105");
689 OlympusCameraTypes.put("D4562", "SP-820UZ");
690 OlympusCameraTypes.put("D4566", "SZ-15");
691 OlympusCameraTypes.put("D4572", "STYLUS1");
692 OlympusCameraTypes.put("D4574", "TG-3");
693 OlympusCameraTypes.put("D4575", "TG-850");
694 OlympusCameraTypes.put("D4579", "SP-100EE");
695 OlympusCameraTypes.put("D4580", "SH-60");
696 OlympusCameraTypes.put("D4581", "SH-1");
697 OlympusCameraTypes.put("D4582", "TG-835");
698 OlympusCameraTypes.put("D4585", "SH-2 / SH-3");
699 OlympusCameraTypes.put("D4586", "TG-4");
700 OlympusCameraTypes.put("D4587", "TG-860");
701 OlympusCameraTypes.put("D4591", "TG-870");
702 OlympusCameraTypes.put("D4809", "C2500L");
703 OlympusCameraTypes.put("D4842", "E-10");
704 OlympusCameraTypes.put("D4856", "C-1");
705 OlympusCameraTypes.put("D4857", "C-1Z,D-150Z");
706 OlympusCameraTypes.put("DCHC", "D500L");
707 OlympusCameraTypes.put("DCHT", "D600L / D620L");
708 OlympusCameraTypes.put("K0055", "AIR-A01");
709 OlympusCameraTypes.put("S0003", "E-330");
710 OlympusCameraTypes.put("S0004", "E-500");
711 OlympusCameraTypes.put("S0009", "E-400");
712 OlympusCameraTypes.put("S0010", "E-510");
713 OlympusCameraTypes.put("S0011", "E-3");
714 OlympusCameraTypes.put("S0013", "E-410");
715 OlympusCameraTypes.put("S0016", "E-420");
716 OlympusCameraTypes.put("S0017", "E-30");
717 OlympusCameraTypes.put("S0018", "E-520");
718 OlympusCameraTypes.put("S0019", "E-P1");
719 OlympusCameraTypes.put("S0023", "E-620");
720 OlympusCameraTypes.put("S0026", "E-P2");
721 OlympusCameraTypes.put("S0027", "E-PL1");
722 OlympusCameraTypes.put("S0029", "E-450");
723 OlympusCameraTypes.put("S0030", "E-600");
724 OlympusCameraTypes.put("S0032", "E-P3");
725 OlympusCameraTypes.put("S0033", "E-5");
726 OlympusCameraTypes.put("S0034", "E-PL2");
727 OlympusCameraTypes.put("S0036", "E-M5");
728 OlympusCameraTypes.put("S0038", "E-PL3");
729 OlympusCameraTypes.put("S0039", "E-PM1");
730 OlympusCameraTypes.put("S0040", "E-PL1s");
731 OlympusCameraTypes.put("S0042", "E-PL5");
732 OlympusCameraTypes.put("S0043", "E-PM2");
733 OlympusCameraTypes.put("S0044", "E-P5");
734 OlympusCameraTypes.put("S0045", "E-PL6");
735 OlympusCameraTypes.put("S0046", "E-PL7"); //IB
736 OlympusCameraTypes.put("S0047", "E-M1");
737 OlympusCameraTypes.put("S0051", "E-M10");
738 OlympusCameraTypes.put("S0052", "E-M5MarkII"); //IB
739 OlympusCameraTypes.put("S0059", "E-M10MarkII");
740 OlympusCameraTypes.put("S0061", "PEN-F"); //forum7005
741 OlympusCameraTypes.put("S0065", "E-PL8");
742 OlympusCameraTypes.put("S0067", "E-M1MarkII");
743 OlympusCameraTypes.put("SR45", "D220");
744 OlympusCameraTypes.put("SR55", "D320L");
745 OlympusCameraTypes.put("SR83", "D340L");
746 OlympusCameraTypes.put("SR85", "C830L,D340R");
747 OlympusCameraTypes.put("SR852", "C860L,D360L");
748 OlympusCameraTypes.put("SR872", "C900Z,D400Z");
749 OlympusCameraTypes.put("SR874", "C960Z,D460Z");
750 OlympusCameraTypes.put("SR951", "C2000Z");
751 OlympusCameraTypes.put("SR952", "C21");
752 OlympusCameraTypes.put("SR953", "C21T.commu");
753 OlympusCameraTypes.put("SR954", "C2020Z");
754 OlympusCameraTypes.put("SR955", "C990Z,D490Z");
755 OlympusCameraTypes.put("SR956", "C211Z");
756 OlympusCameraTypes.put("SR959", "C990ZS,D490Z");
757 OlympusCameraTypes.put("SR95A", "C2100UZ");
758 OlympusCameraTypes.put("SR971", "C100,D370");
759 OlympusCameraTypes.put("SR973", "C2,D230");
760 OlympusCameraTypes.put("SX151", "E100RS");
761 OlympusCameraTypes.put("SX351", "C3000Z / C3030Z");
762 OlympusCameraTypes.put("SX354", "C3040Z");
763 OlympusCameraTypes.put("SX355", "C2040Z");
764 OlympusCameraTypes.put("SX357", "C700UZ");
765 OlympusCameraTypes.put("SX358", "C200Z,D510Z");
766 OlympusCameraTypes.put("SX374", "C3100Z,C3020Z");
767 OlympusCameraTypes.put("SX552", "C4040Z");
768 OlympusCameraTypes.put("SX553", "C40Z,D40Z");
769 OlympusCameraTypes.put("SX556", "C730UZ");
770 OlympusCameraTypes.put("SX558", "C5050Z");
771 OlympusCameraTypes.put("SX571", "C120,D380");
772 OlympusCameraTypes.put("SX574", "C300Z,D550Z");
773 OlympusCameraTypes.put("SX575", "C4100Z,C4000Z");
774 OlympusCameraTypes.put("SX751", "X200,D560Z,C350Z");
775 OlympusCameraTypes.put("SX752", "X300,D565Z,C450Z");
776 OlympusCameraTypes.put("SX753", "C750UZ");
777 OlympusCameraTypes.put("SX754", "C740UZ");
778 OlympusCameraTypes.put("SX755", "C755UZ");
779 OlympusCameraTypes.put("SX756", "C5060WZ");
780 OlympusCameraTypes.put("SX757", "C8080WZ");
781 OlympusCameraTypes.put("SX758", "X350,D575Z,C360Z");
782 OlympusCameraTypes.put("SX759", "X400,D580Z,C460Z");
783 OlympusCameraTypes.put("SX75A", "AZ-2ZOOM");
784 OlympusCameraTypes.put("SX75B", "D595Z,C500Z");
785 OlympusCameraTypes.put("SX75C", "X550,D545Z,C480Z");
786 OlympusCameraTypes.put("SX75D", "IR-300");
787 OlympusCameraTypes.put("SX75F", "C55Z,C5500Z");
788 OlympusCameraTypes.put("SX75G", "C170,D425");
789 OlympusCameraTypes.put("SX75J", "C180,D435");
790 OlympusCameraTypes.put("SX771", "C760UZ");
791 OlympusCameraTypes.put("SX772", "C770UZ");
792 OlympusCameraTypes.put("SX773", "C745UZ");
793 OlympusCameraTypes.put("SX774", "X250,D560Z,C350Z");
794 OlympusCameraTypes.put("SX775", "X100,D540Z,C310Z");
795 OlympusCameraTypes.put("SX776", "C460ZdelSol");
796 OlympusCameraTypes.put("SX777", "C765UZ");
797 OlympusCameraTypes.put("SX77A", "D555Z,C315Z");
798 OlympusCameraTypes.put("SX851", "C7070WZ");
799 OlympusCameraTypes.put("SX852", "C70Z,C7000Z");
800 OlympusCameraTypes.put("SX853", "SP500UZ");
801 OlympusCameraTypes.put("SX854", "SP310");
802 OlympusCameraTypes.put("SX855", "SP350");
803 OlympusCameraTypes.put("SX873", "SP320");
804 OlympusCameraTypes.put("SX875", "FE180/X745"); // (also D4330)
805 OlympusCameraTypes.put("SX876", "FE190/X750"); // (also D4327)
806
807 // other brands
808 // 4MP9Q3", "Camera 4MP-9Q3'
809 // 4MP9T2", "BenQ DC C420 / Camera 4MP-9T2'
810 // 5MP9Q3", "Camera 5MP-9Q3" },
811 // 5MP9X9", "Camera 5MP-9X9" },
812 // '5MP-9T'=> 'Camera 5MP-9T3" },
813 // '5MP-9Y'=> 'Camera 5MP-9Y2" },
814 // '6MP-9U'=> 'Camera 6MP-9U9" },
815 // 7MP9Q3", "Camera 7MP-9Q3" },
816 // '8MP-9U'=> 'Camera 8MP-9U4" },
817 // CE5330", "Acer CE-5330" },
818 // 'CP-853'=> 'Acer CP-8531" },
819 // CS5531", "Acer CS5531" },
820 // DC500 ", "SeaLife DC500" },
821 // DC7370", "Camera 7MP-9GA" },
822 // DC7371", "Camera 7MP-9GM" },
823 // DC7371", "Hitachi HDC-751E" },
824 // DC7375", "Hitachi HDC-763E / Rollei RCP-7330X / Ricoh Caplio RR770 / Vivitar ViviCam 7330" },
825 // 'DC E63'=> 'BenQ DC E63+" },
826 // 'DC P86'=> 'BenQ DC P860" },
827 // DS5340", "Maginon Performic S5 / Premier 5MP-9M7" },
828 // DS5341", "BenQ E53+ / Supra TCM X50 / Maginon X50 / Premier 5MP-9P8" },
829 // DS5346", "Premier 5MP-9Q2" },
830 // E500 ", "Konica Minolta DiMAGE E500" },
831 // MAGINO", "Maginon X60" },
832 // Mz60 ", "HP Photosmart Mz60" },
833 // Q3DIGI", "Camera 5MP-9Q3" },
834 // SLIMLI", "Supra Slimline X6" },
835 // V8300s", "Vivitar V8300s" },
836 }
837}
Note: See TracBrowser for help on using the repository browser.