| Home >> All >> com >> drew >> metadata >> [ exif Javadoc ] |
Source code: com/drew/metadata/exif/CasioMakernoteDescriptor.java
1 /* 2 * Created by dnoakes on 27-Nov-2002 10:12:05 using IntelliJ IDEA. 3 */ 4 package com.drew.metadata.exif; 5 6 import com.drew.metadata.Directory; 7 import com.drew.metadata.MetadataException; 8 import com.drew.metadata.TagDescriptor; 9 10 /** 11 * 12 */ 13 public class CasioMakernoteDescriptor extends TagDescriptor 14 { 15 public CasioMakernoteDescriptor(Directory directory) 16 { 17 super(directory); 18 } 19 20 public String getDescription(int tagType) throws MetadataException 21 { 22 switch (tagType) { 23 case CasioMakernoteDirectory.TAG_CASIO_RECORDING_MODE: 24 return getRecordingModeDescription(); 25 case CasioMakernoteDirectory.TAG_CASIO_QUALITY: 26 return getQualityDescription(); 27 case CasioMakernoteDirectory.TAG_CASIO_FOCUSING_MODE: 28 return getFocusingModeDescription(); 29 case CasioMakernoteDirectory.TAG_CASIO_FLASH_MODE: 30 return getFlashModeDescription(); 31 case CasioMakernoteDirectory.TAG_CASIO_FLASH_INTENSITY: 32 return getFlashIntensityDescription(); 33 case CasioMakernoteDirectory.TAG_CASIO_OBJECT_DISTANCE: 34 return getObjectDistanceDescription(); 35 case CasioMakernoteDirectory.TAG_CASIO_WHITE_BALANCE: 36 return getWhiteBalanceDescription(); 37 case CasioMakernoteDirectory.TAG_CASIO_DIGITAL_ZOOM: 38 return getDigitalZoomDescription(); 39 case CasioMakernoteDirectory.TAG_CASIO_SHARPNESS: 40 return getSharpnessDescription(); 41 case CasioMakernoteDirectory.TAG_CASIO_CONTRAST: 42 return getContrastDescription(); 43 case CasioMakernoteDirectory.TAG_CASIO_SATURATION: 44 return getSaturationDescription(); 45 case CasioMakernoteDirectory.TAG_CASIO_CCD_SENSITIVITY: 46 return getCcdSensitivityDescription(); 47 default: 48 return _directory.getString(tagType); 49 } 50 } 51 52 private String getCcdSensitivityDescription() throws MetadataException 53 { 54 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_CCD_SENSITIVITY)) return null; 55 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_CCD_SENSITIVITY); 56 switch (value) { 57 // these four for QV3000 58 case 64: 59 return "Normal"; 60 case 125: 61 return "+1.0"; 62 case 250: 63 return "+2.0"; 64 case 244: 65 return "+3.0"; 66 // these two for QV8000/2000 67 case 80: 68 return "Normal"; 69 case 100: 70 return "High"; 71 default: 72 return "Unknown (" + value + ")"; 73 } 74 } 75 76 private String getSaturationDescription() throws MetadataException 77 { 78 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_SATURATION)) return null; 79 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_SATURATION); 80 switch (value) { 81 case 0: 82 return "Normal"; 83 case 1: 84 return "Low"; 85 case 2: 86 return "High"; 87 default: 88 return "Unknown (" + value + ")"; 89 } 90 } 91 92 private String getContrastDescription() throws MetadataException 93 { 94 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_CONTRAST)) return null; 95 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_CONTRAST); 96 switch (value) { 97 case 0: 98 return "Normal"; 99 case 1: 100 return "Low"; 101 case 2: 102 return "High"; 103 default: 104 return "Unknown (" + value + ")"; 105 } 106 } 107 108 private String getSharpnessDescription() throws MetadataException 109 { 110 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_SHARPNESS)) return null; 111 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_SHARPNESS); 112 switch (value) { 113 case 0: 114 return "Normal"; 115 case 1: 116 return "Soft"; 117 case 2: 118 return "Hard"; 119 default: 120 return "Unknown (" + value + ")"; 121 } 122 } 123 124 private String getDigitalZoomDescription() throws MetadataException 125 { 126 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_DIGITAL_ZOOM)) return null; 127 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_DIGITAL_ZOOM); 128 switch (value) { 129 case 65536: 130 return "No digital zoom"; 131 case 65537: 132 return "2x digital zoom"; 133 default: 134 return "Unknown (" + value + ")"; 135 } 136 } 137 138 private String getWhiteBalanceDescription() throws MetadataException 139 { 140 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_WHITE_BALANCE)) return null; 141 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_WHITE_BALANCE); 142 switch (value) { 143 case 1: 144 return "Auto"; 145 case 2: 146 return "Tungsten"; 147 case 3: 148 return "Daylight"; 149 case 4: 150 return "Flourescent"; 151 case 5: 152 return "Shade"; 153 case 129: 154 return "Manual"; 155 default: 156 return "Unknown (" + value + ")"; 157 } 158 } 159 160 private String getObjectDistanceDescription() throws MetadataException 161 { 162 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_OBJECT_DISTANCE)) return null; 163 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_OBJECT_DISTANCE); 164 return value + "mm"; 165 } 166 167 private String getFlashIntensityDescription() throws MetadataException 168 { 169 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_FLASH_INTENSITY)) return null; 170 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_FLASH_INTENSITY); 171 switch (value) { 172 case 11: 173 return "Weak"; 174 case 13: 175 return "Normal"; 176 case 15: 177 return "Strong"; 178 default: 179 return "Unknown (" + value + ")"; 180 } 181 } 182 183 private String getFlashModeDescription() throws MetadataException 184 { 185 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_FLASH_MODE)) return null; 186 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_FLASH_MODE); 187 switch (value) { 188 case 1: 189 return "Auto"; 190 case 2: 191 return "On"; 192 case 3: 193 return "Off"; 194 case 4: 195 return "Red eye reduction"; 196 default: 197 return "Unknown (" + value + ")"; 198 } 199 } 200 201 private String getFocusingModeDescription() throws MetadataException 202 { 203 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_FOCUSING_MODE)) return null; 204 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_FOCUSING_MODE); 205 switch (value) { 206 case 2: 207 return "Macro"; 208 case 3: 209 return "Auto focus"; 210 case 4: 211 return "Manual focus"; 212 case 5: 213 return "Infinity"; 214 default: 215 return "Unknown (" + value + ")"; 216 } 217 } 218 219 private String getQualityDescription() throws MetadataException 220 { 221 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_QUALITY)) return null; 222 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_QUALITY); 223 switch (value) { 224 case 1: 225 return "Economy"; 226 case 2: 227 return "Normal"; 228 case 3: 229 return "Fine"; 230 default: 231 return "Unknown (" + value + ")"; 232 } 233 } 234 235 private String getFocussingModeDescription() throws MetadataException 236 { 237 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_FOCUSING_MODE)) return null; 238 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_FOCUSING_MODE); 239 switch (value) { 240 case 2: 241 return "Macro"; 242 case 3: 243 return "Auto focus"; 244 case 4: 245 return "Manual focus"; 246 case 5: 247 return "Infinity"; 248 default: 249 return "Unknown (" + value + ")"; 250 } 251 } 252 253 private String getRecordingModeDescription() throws MetadataException 254 { 255 if (!_directory.containsTag(CasioMakernoteDirectory.TAG_CASIO_RECORDING_MODE)) return null; 256 int value = _directory.getInt(CasioMakernoteDirectory.TAG_CASIO_RECORDING_MODE); 257 switch (value) { 258 case 1: 259 return "Single shutter"; 260 case 2: 261 return "Panorama"; 262 case 3: 263 return "Night scene"; 264 case 4: 265 return "Portrait"; 266 case 5: 267 return "Landscape"; 268 default: 269 return "Unknown (" + value + ")"; 270 } 271 } 272 }