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 34const char * LookupParentCode (uint32 parentCode); 35 36/*****************************************************************************/ 37 38const char * LookupTagCode (uint32 parentCode, 39 uint32 tagCode); 40 41/*****************************************************************************/ 42 43const char * LookupTagType (uint32 tagType); 44 45/*****************************************************************************/ 46 47const char * LookupNewSubFileType (uint32 key); 48 49const char * LookupCompression (uint32 key); 50 51const char * LookupPredictor (uint32 key); 52 53const char * LookupSampleFormat (uint32 key); 54 55const char * LookupPhotometricInterpretation (uint32 key); 56 57const char * LookupOrientation (uint32 key); 58 59const char * LookupResolutionUnit (uint32 key); 60 61const char * LookupCFAColor (uint32 key); 62 63const char * LookupSensingMethod (uint32 key); 64 65const char * LookupExposureProgram (uint32 key); 66 67const char * LookupMeteringMode (uint32 key); 68 69const char * LookupLightSource (uint32 key); 70 71const char * LookupColorSpace (uint32 key); 72 73const char * LookupFileSource (uint32 key); 74 75const char * LookupSceneType (uint32 key); 76 77const char * LookupCustomRendered (uint32 key); 78 79const char * LookupExposureMode (uint32 key); 80 81const char * LookupWhiteBalance (uint32 key); 82 83const char * LookupSceneCaptureType (uint32 key); 84 85const char * LookupGainControl (uint32 key); 86 87const char * LookupContrast (uint32 key); 88 89const char * LookupSaturation (uint32 key); 90 91const char * LookupSharpness (uint32 key); 92 93const char * LookupSubjectDistanceRange (uint32 key); 94 95const char * LookupComponent (uint32 key); 96 97const char * LookupCFALayout (uint32 key); 98 99const char * LookupMakerNoteSafety (uint32 key); 100 101const char * LookupColorimetricReference (uint32 key); 102 103const char * LookupPreviewColorSpace (uint32 key); 104 105const char * LookupJPEGMarker (uint32 key); 106 107const char * LookupSensitivityType (uint32 key); 108 109/*****************************************************************************/ 110 111void DumpHexAscii (dng_stream &stream, 112 uint32 count); 113 114void DumpHexAscii (const uint8 *buf, 115 uint32 count); 116 117void DumpXMP (dng_stream &stream, 118 uint32 count); 119 120void DumpString (const dng_string &s); 121 122void 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 130void DumpMatrix (const dng_matrix &m); 131 132void DumpVector (const dng_vector &v); 133 134void DumpDateTime (const dng_date_time &dt); 135 136void DumpExposureTime (real64 x); 137 138void DumpFingerprint (const dng_fingerprint &p); 139 140void DumpHueSatMap (dng_stream &stream, 141 uint32 hues, 142 uint32 sats, 143 uint32 vals, 144 bool skipSat0); 145 146/*****************************************************************************/ 147 148#endif 149 150/*****************************************************************************/ 151 152bool 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 160bool CheckTagCount (uint32 parentCode, 161 uint32 tagCode, 162 uint32 tagCount, 163 uint32 minCount, 164 uint32 maxCount = 0); 165 166bool CheckColorImage (uint32 parentCode, 167 uint32 tagCode, 168 uint32 colorPlanes); 169 170bool CheckMainIFD (uint32 parentCode, 171 uint32 tagCode, 172 uint32 newSubFileType); 173 174bool CheckRawIFD (uint32 parentCode, 175 uint32 tagCode, 176 uint32 photometricInterpretation); 177 178bool CheckCFA (uint32 parentCode, 179 uint32 tagCode, 180 uint32 photometricInterpretation); 181 182/*****************************************************************************/ 183 184void ParseStringTag (dng_stream &stream, 185 uint32 parentCode, 186 uint32 tagCode, 187 uint32 tagCount, 188 dng_string &s, 189 bool trimBlanks = true); 190 191void ParseDualStringTag (dng_stream &stream, 192 uint32 parentCode, 193 uint32 tagCode, 194 uint32 tagCount, 195 dng_string &s1, 196 dng_string &s2); 197 198void ParseEncodedStringTag (dng_stream &stream, 199 uint32 parentCode, 200 uint32 tagCode, 201 uint32 tagCount, 202 dng_string &s); 203 204bool 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 213bool ParseVectorTag (dng_stream &stream, 214 uint32 parentCode, 215 uint32 tagCode, 216 uint32 tagType, 217 uint32 tagCount, 218 uint32 count, 219 dng_vector &v); 220 221bool 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