1 | /*****************************************************************************/ |
2 | // Copyright 2006-2007 Adobe Systems Incorporated |
3 | // All Rights Reserved. |
4 | // |
5 | // NOTICE: Adobe permits you to use, modify, and distribute this file in |
6 | // accordance with the terms of the Adobe license agreement accompanying it. |
7 | /*****************************************************************************/ |
8 | |
9 | /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_parse_utils.h#1 $ */ |
10 | /* $DateTime: 2012/05/30 13:28:51 $ */ |
11 | /* $Change: 832332 $ */ |
12 | /* $Author: tknoll $ */ |
13 | |
14 | /*****************************************************************************/ |
15 | |
16 | #ifndef __dng_parse_utils__ |
17 | #define __dng_parse_utils__ |
18 | |
19 | /*****************************************************************************/ |
20 | |
21 | #include "dng_classes.h" |
22 | #include "dng_flags.h" |
23 | #include "dng_types.h" |
24 | #include "dng_stream.h" |
25 | #include "dng_string.h" |
26 | #include "dng_matrix.h" |
27 | |
28 | /*****************************************************************************/ |
29 | |
30 | #if qDNGValidate |
31 | |
32 | /*****************************************************************************/ |
33 | |
34 | const char * LookupParentCode (uint32 parentCode); |
35 | |
36 | /*****************************************************************************/ |
37 | |
38 | const char * LookupTagCode (uint32 parentCode, |
39 | uint32 tagCode); |
40 | |
41 | /*****************************************************************************/ |
42 | |
43 | const char * LookupTagType (uint32 tagType); |
44 | |
45 | /*****************************************************************************/ |
46 | |
47 | const char * LookupNewSubFileType (uint32 key); |
48 | |
49 | const char * LookupCompression (uint32 key); |
50 | |
51 | const char * LookupPredictor (uint32 key); |
52 | |
53 | const char * LookupSampleFormat (uint32 key); |
54 | |
55 | const char * LookupPhotometricInterpretation (uint32 key); |
56 | |
57 | const char * LookupOrientation (uint32 key); |
58 | |
59 | const char * LookupResolutionUnit (uint32 key); |
60 | |
61 | const char * LookupCFAColor (uint32 key); |
62 | |
63 | const char * LookupSensingMethod (uint32 key); |
64 | |
65 | const char * LookupExposureProgram (uint32 key); |
66 | |
67 | const char * LookupMeteringMode (uint32 key); |
68 | |
69 | const char * LookupLightSource (uint32 key); |
70 | |
71 | const char * LookupColorSpace (uint32 key); |
72 | |
73 | const char * LookupFileSource (uint32 key); |
74 | |
75 | const char * LookupSceneType (uint32 key); |
76 | |
77 | const char * LookupCustomRendered (uint32 key); |
78 | |
79 | const char * LookupExposureMode (uint32 key); |
80 | |
81 | const char * LookupWhiteBalance (uint32 key); |
82 | |
83 | const char * LookupSceneCaptureType (uint32 key); |
84 | |
85 | const char * LookupGainControl (uint32 key); |
86 | |
87 | const char * LookupContrast (uint32 key); |
88 | |
89 | const char * LookupSaturation (uint32 key); |
90 | |
91 | const char * LookupSharpness (uint32 key); |
92 | |
93 | const char * LookupSubjectDistanceRange (uint32 key); |
94 | |
95 | const char * LookupComponent (uint32 key); |
96 | |
97 | const char * LookupCFALayout (uint32 key); |
98 | |
99 | const char * LookupMakerNoteSafety (uint32 key); |
100 | |
101 | const char * LookupColorimetricReference (uint32 key); |
102 | |
103 | const char * LookupPreviewColorSpace (uint32 key); |
104 | |
105 | const char * LookupJPEGMarker (uint32 key); |
106 | |
107 | const char * LookupSensitivityType (uint32 key); |
108 | |
109 | /*****************************************************************************/ |
110 | |
111 | void DumpHexAscii (dng_stream &stream, |
112 | uint32 count); |
113 | |
114 | void DumpHexAscii (const uint8 *buf, |
115 | uint32 count); |
116 | |
117 | void DumpXMP (dng_stream &stream, |
118 | uint32 count); |
119 | |
120 | void DumpString (const dng_string &s); |
121 | |
122 | void DumpTagValues (dng_stream &stream, |
123 | const char *entry_name, |
124 | uint32 parentCode, |
125 | uint32 tagCode, |
126 | uint32 tagType, |
127 | uint32 tagCount, |
128 | const char *tag_name = NULL); |
129 | |
130 | void DumpMatrix (const dng_matrix &m); |
131 | |
132 | void DumpVector (const dng_vector &v); |
133 | |
134 | void DumpDateTime (const dng_date_time &dt); |
135 | |
136 | void DumpExposureTime (real64 x); |
137 | |
138 | void DumpFingerprint (const dng_fingerprint &p); |
139 | |
140 | void DumpHueSatMap (dng_stream &stream, |
141 | uint32 hues, |
142 | uint32 sats, |
143 | uint32 vals, |
144 | bool skipSat0); |
145 | |
146 | /*****************************************************************************/ |
147 | |
148 | #endif |
149 | |
150 | /*****************************************************************************/ |
151 | |
152 | bool CheckTagType (uint32 parentCode, |
153 | uint32 tagCode, |
154 | uint32 tagType, |
155 | uint16 validType0, |
156 | uint16 validType1 = 0, |
157 | uint16 validType2 = 0, |
158 | uint16 validType3 = 0); |
159 | |
160 | bool CheckTagCount (uint32 parentCode, |
161 | uint32 tagCode, |
162 | uint32 tagCount, |
163 | uint32 minCount, |
164 | uint32 maxCount = 0); |
165 | |
166 | bool CheckColorImage (uint32 parentCode, |
167 | uint32 tagCode, |
168 | uint32 colorPlanes); |
169 | |
170 | bool CheckMainIFD (uint32 parentCode, |
171 | uint32 tagCode, |
172 | uint32 newSubFileType); |
173 | |
174 | bool CheckRawIFD (uint32 parentCode, |
175 | uint32 tagCode, |
176 | uint32 photometricInterpretation); |
177 | |
178 | bool CheckCFA (uint32 parentCode, |
179 | uint32 tagCode, |
180 | uint32 photometricInterpretation); |
181 | |
182 | /*****************************************************************************/ |
183 | |
184 | void ParseStringTag (dng_stream &stream, |
185 | uint32 parentCode, |
186 | uint32 tagCode, |
187 | uint32 tagCount, |
188 | dng_string &s, |
189 | bool trimBlanks = true); |
190 | |
191 | void ParseDualStringTag (dng_stream &stream, |
192 | uint32 parentCode, |
193 | uint32 tagCode, |
194 | uint32 tagCount, |
195 | dng_string &s1, |
196 | dng_string &s2); |
197 | |
198 | void ParseEncodedStringTag (dng_stream &stream, |
199 | uint32 parentCode, |
200 | uint32 tagCode, |
201 | uint32 tagCount, |
202 | dng_string &s); |
203 | |
204 | bool ParseMatrixTag (dng_stream &stream, |
205 | uint32 parentCode, |
206 | uint32 tagCode, |
207 | uint32 tagType, |
208 | uint32 tagCount, |
209 | uint32 rows, |
210 | uint32 cols, |
211 | dng_matrix &m); |
212 | |
213 | bool ParseVectorTag (dng_stream &stream, |
214 | uint32 parentCode, |
215 | uint32 tagCode, |
216 | uint32 tagType, |
217 | uint32 tagCount, |
218 | uint32 count, |
219 | dng_vector &v); |
220 | |
221 | bool ParseDateTimeTag (dng_stream &stream, |
222 | uint32 parentCode, |
223 | uint32 tagCode, |
224 | uint32 tagType, |
225 | uint32 tagCount, |
226 | dng_date_time &dt); |
227 | |
228 | /*****************************************************************************/ |
229 | |
230 | #endif |
231 | |
232 | /*****************************************************************************/ |
233 | |