Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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 }