1 2 /* 3 * This file started out as the standard ICC header provided by 4 * the ICC. Since this file no longer seems to be maintained, 5 * I've added new entries from the ICC spec., but dropped 6 * things that are not needed for icclib. 7 * 8 * This version of the header file corresponds to the profile 9 * Specification ICC.1:2003-09 (Version 4.2.0) 10 * 11 * All header file entries are pre-fixed with "ic" to help 12 * avoid name space collisions. Signatures are pre-fixed with 13 * icSig. 14 * 15 * Version numbers used within file are file format version numers, 16 * not spec. version numbers. 17 * 18 * Portions of this file are Copyright 2004 - 2005 Graeme W. Gill, 19 * This material is licensed with an "MIT" free use license:- 20 * see the License4.txt file in this directory for licensing details. 21 * 22 * Graeme Gill. 23 */ 24 25 /* Header file guard bands */ 26 #ifndef ICCV42_H 27 #define ICCV42_H 28 29 #ifdef __cplusplus 30 extern "C" { 31 #endif 32 33 /***************************************************************** 34 Copyright (c) 1994-1998 SunSoft, Inc. 35 36 Rights Reserved 37 38 Permission is hereby granted, free of charge, to any person 39 obtaining a copy of this software and associated documentation 40 files (the "Software"), to deal in the Software without restrict- 41 ion, including without limitation the rights to use, copy, modify, 42 merge, publish distribute, sublicense, and/or sell copies of the 43 Software, and to permit persons to whom the Software is furnished 44 to do so, subject to the following conditions: 45 46 The above copyright notice and this permission notice shall be 47 included in all copies or substantial portions of the Software. 48 49 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 50 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 51 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON- 52 INFRINGEMENT. IN NO EVENT SHALL SUNSOFT, INC. OR ITS PARENT 53 COMPANY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 54 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 55 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 56 OTHER DEALINGS IN THE SOFTWARE. 57 58 Except as contained in this notice, the name of SunSoft, Inc. 59 shall not be used in advertising or otherwise to promote the 60 sale, use or other dealings in this Software without written 61 authorization from SunSoft Inc. 62 ******************************************************************/ 63 64 /* 65 Spec name/version/file version relationship. 66 67 Spec. Name Spec. Version ICC File Version 68 ---------- ------------- ---------------- 69 ICC.1:2004-10 4.2 4.2.0 70 ICC.1:2003-09 4.1 4.1.0 71 ICC.1:2001-12 4.0 4.0.0 72 ICC.1:2001-04 (3.7?) 2.4.0 73 ICC.1A:1999-04 (3.6?) 2.3.0 74 ICC.1:1998-09 (3.5?) 2.2.0 75 (Version 3.4) 3.4 2.1.0 (a) 76 (Version 3.3) 3.3 2.1.0 77 (Version 3.2) 3.2 2.0.0 (b) 78 (Version 3.01) 3.01 2.0.0 (a) 79 (Version 3.0) 3.0 2.0.0 80 */ 81 82 83 #define icMaxTagVal -1 84 85 /*------------------------------------------------------------------------*/ 86 87 /* 88 * Defines used in the specification 89 */ 90 91 #define icMagicNumber 0x61637370L /* 'acsp' */ 92 #define icVersionNumber 0x02200000L /* 2.2.0, BCD */ 93 #define icVersionNumberV41 0x04100000L /* 4.1.0, BCD */ 94 95 /* Screening Encodings */ 96 #define icPrtrDefaultScreensFalse 0x00000000L /* Bit pos 0 */ 97 #define icPrtrDefaultScreensTrue 0x00000001L /* Bit pos 0 */ 98 #define icLinesPerInch 0x00000002L /* Bit pos 1 */ 99 #define icLinesPerCm 0x00000000L /* Bit pos 1 */ 100 101 /* 102 * Device attributes, currently defined values correspond 103 * to the least-significant 4 bytes of the 8 byte attribute 104 * quantity, see the header for their location. 105 */ 106 107 #define icReflective 0x00000000L /* Bit pos 0 */ 108 #define icTransparency 0x00000001L /* Bit pos 0 */ 109 #define icGlossy 0x00000000L /* Bit pos 1 */ 110 #define icMatte 0x00000002L /* Bit pos 1 */ 111 #define icPositive 0x00000000L /* Bit pos 2 */ 112 #define icNegative 0x00000004L /* Bit pos 2 */ 113 #define icColor 0x00000000L /* Bit pos 3 */ 114 #define icBlackAndWhite 0x00000008L /* Bit pos 3 */ 115 116 /* 117 * Profile header flags, the least-significant 16 bits are reserved 118 * for consortium use. 119 */ 120 121 #define icEmbeddedProfileFalse 0x00000000L /* Bit pos 0 */ 122 #define icEmbeddedProfileTrue 0x00000001L /* Bit pos 0 */ 123 #define icUseAnywhere 0x00000000L /* Bit pos 1 */ 124 #define icUseWithEmbeddedDataOnly 0x00000002L /* Bit pos 1 */ 125 126 /* Ascii or Binary data */ 127 #define icAsciiData 0x00000000L 128 #define icBinaryData 0x00000001L 129 130 /* Phosphor or Colorant sets */ 131 #define icPhColUnknown 0x0000 /* Specified */ 132 #define icPhColITU_R_BT_709 0x0001 /* ITU-R BT.709 */ 133 #define icPhColSMPTE_RP145_1994 0x0002 /* SMPTE RP145-1994 */ 134 #define icPhColEBU_Tech_3213_E 0x0003 /* EBU Tech.3213-E */ 135 #define icPhColP22 0x0004 /* P22 */ 136 137 /* Video card gamma formats (ColorSync 2.5 specific) */ 138 #define icVideoCardGammaTable 0x00000000 139 #define icVideoCardGammaFormula 0x00000001 140 141 142 /*------------------------------------------------------------------------*/ 143 /* 144 * Use this area to translate platform definitions of long 145 * etc into icXXX form. The rest of the header uses the icXXX 146 * typedefs. Signatures are 4 byte quantities. 147 */ 148 #ifdef ORD32 /* Formal sizes defined elsewhere */ 149 150 typedef INR32 icSignature; 151 152 /* Unsigned integer numbers */ 153 typedef ORD8 icUInt8Number; 154 typedef ORD16 icUInt16Number; 155 typedef ORD32 icUInt32Number; 156 typedef ORD32 icUInt64Number[2]; 157 158 /* Signed numbers */ 159 typedef INR8 icInt8Number; 160 typedef INR16 icInt16Number; 161 typedef INR32 icInt32Number; 162 typedef INR32 icInt64Number[2]; 163 164 /* Fixed numbers */ 165 typedef INR32 icS15Fixed16Number; 166 typedef ORD32 icU16Fixed16Number; 167 168 #else /* default definitions for typical 32 bit architecture */ 169 170 typedef long icSignature; 171 172 /* Unsigned integer numbers */ 173 typedef unsigned char icUInt8Number; 174 typedef unsigned short icUInt16Number; 175 typedef unsigned long icUInt32Number; 176 typedef unsigned long icUInt64Number[2]; 177 178 /* Signed numbers */ 179 typedef char icInt8Number; 180 typedef short icInt16Number; 181 typedef long icInt32Number; 182 typedef long icInt64Number[2]; 183 184 /* Fixed numbers */ 185 typedef long icS15Fixed16Number; 186 typedef unsigned long icU16Fixed16Number; 187 188 #endif /* Not formal */ 189 190 /*------------------------------------------------------------------------*/ 191 /* public tags and sizes */ 192 typedef enum { 193 icSigAToB0Tag = 0x41324230L, /* 'A2B0' */ 194 icSigAToB1Tag = 0x41324231L, /* 'A2B1' */ 195 icSigAToB2Tag = 0x41324232L, /* 'A2B2' */ 196 icSigBlueMatrixColumnTag = 0x6258595AL, /* 'bXYZ' */ 197 icSigBlueTRCTag = 0x62545243L, /* 'bTRC' */ 198 icSigBToA0Tag = 0x42324130L, /* 'B2A0' */ 199 icSigBToA1Tag = 0x42324131L, /* 'B2A1' */ 200 icSigBToA2Tag = 0x42324132L, /* 'B2A2' */ 201 icSigCalibrationDateTimeTag = 0x63616C74L, /* 'calt' */ 202 icSigCharTargetTag = 0x74617267L, /* 'targ' */ 203 icSigChromaticAdaptationTag = 0x63686164L, /* 'chad' V2.4+ */ 204 icSigChromaticityTag = 0x6368726DL, /* 'chrm' V2.3+ */ 205 icSigColorantOrderTag = 0x636C726FL, /* 'clro' V4.0+ */ 206 icSigColorantTableTag = 0x636C7274L, /* 'clrt' V4.0+ */ 207 icSigColorantTableOutTag = 0x636C6F74L, /* 'clot' V4.0+ */ 208 icSigCopyrightTag = 0x63707274L, /* 'cprt' */ 209 icSigCrdInfoTag = 0x63726469L, /* 'crdi' V2.1 - V4.0 */ 210 icSigDataTag = 0x64617461L, /* 'data' ??? */ 211 icSigDateTimeTag = 0x6474696DL, /* 'dtim' ??? */ 212 icSigDeviceMfgDescTag = 0x646D6E64L, /* 'dmnd' */ 213 icSigDeviceModelDescTag = 0x646D6464L, /* 'dmdd' */ 214 icSigDeviceSettingsTag = 0x64657673L, /* 'devs' V2.2 - V4.0 */ 215 icSigGamutTag = 0x67616D74L, /* 'gamt' */ 216 icSigGrayTRCTag = 0x6b545243L, /* 'kTRC' */ 217 icSigGreenMatrixColumnTag = 0x6758595AL, /* 'gXYZ' */ 218 icSigGreenTRCTag = 0x67545243L, /* 'gTRC' */ 219 icSigLuminanceTag = 0x6C756d69L, /* 'lumi' */ 220 icSigMeasurementTag = 0x6D656173L, /* 'meas' */ 221 icSigMediaBlackPointTag = 0x626B7074L, /* 'bkpt' */ 222 icSigMediaWhitePointTag = 0x77747074L, /* 'wtpt' */ 223 icSigNamedColorTag = 0x6E636f6CL, /* 'ncol' V2.0 */ 224 icSigNamedColor2Tag = 0x6E636C32L, /* 'ncl2' V2.1+ */ 225 icSigOutputResponseTag = 0x72657370L, /* 'resp' V2.2+ */ 226 icSigPerceptualRenderingIntentGamutTag = 0x72696730L, /* 'rig0' V4.3+ */ 227 icSigPreview0Tag = 0x70726530L, /* 'pre0' */ 228 icSigPreview1Tag = 0x70726531L, /* 'pre1' */ 229 icSigPreview2Tag = 0x70726532L, /* 'pre2' */ 230 icSigProfileDescriptionTag = 0x64657363L, /* 'desc' */ 231 icSigProfileSequenceDescTag = 0x70736571L, /* 'pseq' */ 232 icSigPs2CRD0Tag = 0x70736430L, /* 'psd0' V2.0 - V4.0 */ 233 icSigPs2CRD1Tag = 0x70736431L, /* 'psd1' V2.0 - V4.0 */ 234 icSigPs2CRD2Tag = 0x70736432L, /* 'psd2' V2.0 - V4.0 */ 235 icSigPs2CRD3Tag = 0x70736433L, /* 'psd3' V2.0 - V4.0 */ 236 icSigPs2CSATag = 0x70733273L, /* 'ps2s' V2.0 - V4.0 */ 237 icSigPs2RenderingIntentTag = 0x70733269L, /* 'ps2i' V2.0 - V4.0 */ 238 icSigRedMatrixColumnTag = 0x7258595AL, /* 'rXYZ' */ 239 icSigRedTRCTag = 0x72545243L, /* 'rTRC' */ 240 icSigSaturationRenderingIntentGamutTag = 0x72696732L, /* 'rig2' ??? */ 241 icSigScreeningDescTag = 0x73637264L, /* 'scrd' V2.0 - V4.0 */ 242 icSigScreeningTag = 0x7363726EL, /* 'scrn' V2.0 - V4.0 */ 243 icSigTechnologyTag = 0x74656368L, /* 'tech' */ 244 icSigUcrBgTag = 0x62666420L, /* 'bfd ' V2.0 - V4.0 */ 245 icSigVideoCardGammaTag = 0x76636774L, /* 'vcgt' ColorSync 2.5+ */ 246 icSigViewingCondDescTag = 0x76756564L, /* 'vued' */ 247 icSigViewingConditionsTag = 0x76696577L, /* 'view' */ 248 icMaxEnumTag = icMaxTagVal 249 } icTagSignature; 250 251 /* Aliases for backwards compatibility */ 252 #define icSigBlueColorantTag icSigBlueMatrixColumnTag /* Prior to V4.0 */ 253 #define icSigGreenColorantTag icSigGreenMatrixColumnTag /* Prior to V4.0 */ 254 #define icSigRedColorantTag icSigRedMatrixColumnTag /* Prior to V4.0 */ 255 256 /* technology signature descriptions */ 257 typedef enum { 258 icSigDigitalCamera = 0x6463616DL, /* 'dcam' */ 259 icSigFilmScanner = 0x6673636EL, /* 'fscn' */ 260 icSigReflectiveScanner = 0x7273636EL, /* 'rscn' */ 261 icSigInkJetPrinter = 0x696A6574L, /* 'ijet' */ 262 icSigThermalWaxPrinter = 0x74776178L, /* 'twax' */ 263 icSigElectrophotographicPrinter = 0x6570686FL, /* 'epho' */ 264 icSigElectrostaticPrinter = 0x65737461L, /* 'esta' */ 265 icSigDyeSublimationPrinter = 0x64737562L, /* 'dsub' */ 266 icSigPhotographicPaperPrinter = 0x7270686FL, /* 'rpho' */ 267 icSigFilmWriter = 0x6670726EL, /* 'fprn' */ 268 icSigVideoMonitor = 0x7669646DL, /* 'vidm' */ 269 icSigVideoCamera = 0x76696463L, /* 'vidc' */ 270 icSigProjectionTelevision = 0x706A7476L, /* 'pjtv' */ 271 icSigCRTDisplay = 0x43525420L, /* 'CRT ' */ 272 icSigPMDisplay = 0x504D4420L, /* 'PMD ' */ 273 icSigAMDisplay = 0x414D4420L, /* 'AMD ' */ 274 icSigPhotoCD = 0x4B504344L, /* 'KPCD' */ 275 icSigPhotoImageSetter = 0x696D6773L, /* 'imgs' */ 276 icSigGravure = 0x67726176L, /* 'grav' */ 277 icSigOffsetLithography = 0x6F666673L, /* 'offs' */ 278 icSigSilkscreen = 0x73696C6BL, /* 'silk' */ 279 icSigFlexography = 0x666C6578L, /* 'flex' */ 280 icMaxEnumTechnology = icMaxTagVal 281 } icTechnologySignature; 282 283 /* type signatures */ 284 typedef enum { 285 icSigChromaticityType = 0x6368726DL, /* 'chrm' */ 286 icSigColorantOrderType = 0x636C726FL, /* 'clro' V4.0+ */ 287 icSigColorantTableType = 0x636C7274L, /* 'clrt' V4.0+ */ 288 icSigCrdInfoType = 0x63726469L, /* 'crdi' V2.1 - V4.0 */ 289 icSigCurveType = 0x63757276L, /* 'curv' */ 290 icSigDataType = 0x64617461L, /* 'data' */ 291 icSigDateTimeType = 0x6474696DL, /* 'dtim' */ 292 icSigDeviceSettingsType = 0x64657673L, /* 'devs' V2.2 - V4.0 */ 293 icSigLut16Type = 0x6d667432L, /* 'mft2' */ 294 icSigLut8Type = 0x6d667431L, /* 'mft1' */ 295 icSigLutAtoBType = 0x6d414220L, /* 'mAB ' V4.0+ */ 296 icSigLutBtoAType = 0x6d424120L, /* 'mBA ' V4.0+ */ 297 icSigMeasurementType = 0x6D656173L, /* 'meas' */ 298 icSigMultiLocalizedUnicodeType = 0x6D6C7563L, /* 'mluc' V4.0+ */ 299 icSigNamedColorType = 0x6E636f6CL, /* 'ncol' V2.0 */ 300 icSigNamedColor2Type = 0x6E636C32L, /* 'ncl2' V2.0+ */ 301 icSigParametricCurveType = 0x70617261L, /* 'para' V4.0+ */ 302 icSigProfileSequenceDescType = 0x70736571L, /* 'pseq' */ 303 icSigResponseCurveSet16Type = 0x72637332L, /* 'rcs2' V2.2 - V4.0 */ 304 icSigS15Fixed16ArrayType = 0x73663332L, /* 'sf32' */ 305 icSigScreeningType = 0x7363726EL, /* 'scrn' V2.0 - V4.0 */ 306 icSigSignatureType = 0x73696720L, /* 'sig ' */ 307 icSigTextType = 0x74657874L, /* 'text' */ 308 icSigTextDescriptionType = 0x64657363L, /* 'desc' V2.0 - V2.4 */ 309 icSigU16Fixed16ArrayType = 0x75663332L, /* 'uf32' */ 310 icSigUcrBgType = 0x62666420L, /* 'bfd ' V2.0 - V4.0 */ 311 icSigUInt16ArrayType = 0x75693136L, /* 'ui16' */ 312 icSigUInt32ArrayType = 0x75693332L, /* 'ui32' */ 313 icSigUInt64ArrayType = 0x75693634L, /* 'ui64' */ 314 icSigUInt8ArrayType = 0x75693038L, /* 'ui08' */ 315 icSigVideoCardGammaType = 0x76636774L, /* 'vcgt' ColorSync 2.5+ */ 316 icSigViewingConditionsType = 0x76696577L, /* 'view' */ 317 icSigXYZType = 0x58595A20L, /* 'XYZ ' */ 318 icSigXYZArrayType = 0x58595A20L, /* 'XYZ ' */ 319 icMaxEnumType = icMaxTagVal 320 } icTagTypeSignature; 321 322 /* 323 * Color Space Signatures 324 * Note that only icSigXYZData and icSigLabData are valid 325 * Profile Connection Spaces (PCSs) 326 */ 327 typedef enum { 328 icSigXYZData = 0x58595A20L, /* 'XYZ ' */ 329 icSigLabData = 0x4C616220L, /* 'Lab ' */ 330 icSigLuvData = 0x4C757620L, /* 'Luv ' */ 331 icSigYCbCrData = 0x59436272L, /* 'YCbr' */ 332 icSigYxyData = 0x59787920L, /* 'Yxy ' */ 333 icSigRgbData = 0x52474220L, /* 'RGB ' */ 334 icSigGrayData = 0x47524159L, /* 'GRAY' */ 335 icSigHsvData = 0x48535620L, /* 'HSV ' */ 336 icSigHlsData = 0x484C5320L, /* 'HLS ' */ 337 icSigCmykData = 0x434D594BL, /* 'CMYK' */ 338 icSigCmyData = 0x434D5920L, /* 'CMY ' */ 339 340 icSig2colorData = 0x32434C52L, /* '2CLR' */ 341 icSig3colorData = 0x33434C52L, /* '3CLR' */ 342 icSig4colorData = 0x34434C52L, /* '4CLR' */ 343 icSig5colorData = 0x35434C52L, /* '5CLR' */ 344 icSig6colorData = 0x36434C52L, /* '6CLR' */ 345 icSig7colorData = 0x37434C52L, /* '7CLR' */ 346 icSig8colorData = 0x38434C52L, /* '8CLR' */ 347 icSig9colorData = 0x39434C52L, /* '9CLR' */ 348 icSig10colorData = 0x41434C52L, /* 'ACLR' */ 349 icSig11colorData = 0x42434C52L, /* 'BCLR' */ 350 icSig12colorData = 0x43434C52L, /* 'CCLR' */ 351 icSig13colorData = 0x44434C52L, /* 'DCLR' */ 352 icSig14colorData = 0x45434C52L, /* 'ECLR' */ 353 icSig15colorData = 0x46434C52L, /* 'FCLR' */ 354 355 icSigMch5Data = 0x4D434835L, /* 'MCH5' Colorsync ? */ 356 icSigMch6Data = 0x4D434836L, /* 'MCH6' Hexachrome: CMYKOG */ 357 icSigMch7Data = 0x4D434837L, /* 'MCH7' Colorsync ? */ 358 icSigMch8Data = 0x4D434838L, /* 'MCH8' Colorsync ? */ 359 icSigNamedData = 0x6e6d636cL, /* 'nmcl' ??? */ 360 361 icMaxEnumData = icMaxTagVal 362 } icColorSpaceSignature; 363 364 /* profileClass enumerations */ 365 typedef enum { 366 icSigInputClass = 0x73636E72L, /* 'scnr' */ 367 icSigDisplayClass = 0x6D6E7472L, /* 'mntr' */ 368 icSigOutputClass = 0x70727472L, /* 'prtr' */ 369 icSigLinkClass = 0x6C696E6BL, /* 'link' */ 370 icSigAbstractClass = 0x61627374L, /* 'abst' */ 371 icSigColorSpaceClass = 0x73706163L, /* 'spac' */ 372 icSigNamedColorClass = 0x6e6d636cL, /* 'nmcl' */ 373 icMaxEnumClass = icMaxTagVal 374 } icProfileClassSignature; 375 376 /* Platform Signatures */ 377 typedef enum { 378 icSigMacintosh = 0x4150504CL, /* 'APPL' */ 379 icSigMicrosoft = 0x4D534654L, /* 'MSFT' */ 380 icSigSolaris = 0x53554E57L, /* 'SUNW' */ 381 icSigSGI = 0x53474920L, /* 'SGI ' */ 382 icSigTaligent = 0x54474E54L, /* 'TGNT' */ 383 icMaxEnumPlatform = icMaxTagVal 384 } icPlatformSignature; 385 386 /* Rendering Intent Gamut Signatures */ 387 typedef enum { 388 icSigPerceptualReferenceMediumGamut = 0x70726d67L, /* 'prmg' V4.3+ */ 389 icMaxEnumReferenceMediumGamut = icMaxTagVal 390 } icReferenceMediumGamutSignature; 391 392 /*------------------------------------------------------------------------*/ 393 /* 394 * Other enums 395 */ 396 397 /* Measurement Flare, used in the measurmentType tag */ 398 typedef enum { 399 icFlare0 = 0x00000000L, /* 0% flare */ 400 icFlare100 = 0x00000001L, /* 100% flare */ 401 icMaxFlare = icMaxTagVal 402 } icMeasurementFlare; 403 404 /* Measurement Geometry, used in the measurmentType tag */ 405 typedef enum { 406 icGeometryUnknown = 0x00000000L, /* Unknown */ 407 icGeometry045or450 = 0x00000001L, /* 0/45, 45/0 */ 408 icGeometry0dord0 = 0x00000002L, /* 0/d or d/0 */ 409 icMaxGeometry = icMaxTagVal 410 } icMeasurementGeometry; 411 412 /* Rendering Intents, used in the profile header */ 413 typedef enum { 414 icPerceptual = 0, 415 icRelativeColorimetric = 1, 416 icSaturation = 2, 417 icAbsoluteColorimetric = 3, 418 icMaxEnumIntent = icMaxTagVal 419 } icRenderingIntent; 420 421 /* Different Spot Shapes currently defined, used for screeningType */ 422 typedef enum { 423 icSpotShapeUnknown = 0, 424 icSpotShapePrinterDefault = 1, 425 icSpotShapeRound = 2, 426 icSpotShapeDiamond = 3, 427 icSpotShapeEllipse = 4, 428 icSpotShapeLine = 5, 429 icSpotShapeSquare = 6, 430 icSpotShapeCross = 7, 431 icMaxEnumSpot = icMaxTagVal 432 } icSpotShape; 433 434 /* Standard Observer, used in the measurmentType tag */ 435 typedef enum { 436 icStdObsUnknown = 0x00000000L, /* Unknown */ 437 icStdObs1931TwoDegrees = 0x00000001L, /* 2 deg */ 438 icStdObs1964TenDegrees = 0x00000002L, /* 10 deg */ 439 icMaxStdObs = icMaxTagVal 440 } icStandardObserver; 441 442 /* Pre-defined illuminants, used in measurement and viewing conditions type */ 443 typedef enum { 444 icIlluminantUnknown = 0x00000000L, 445 icIlluminantD50 = 0x00000001L, 446 icIlluminantD65 = 0x00000002L, 447 icIlluminantD93 = 0x00000003L, 448 icIlluminantF2 = 0x00000004L, 449 icIlluminantD55 = 0x00000005L, 450 icIlluminantA = 0x00000006L, 451 icIlluminantEquiPowerE = 0x00000007L, 452 icIlluminantF8 = 0x00000008L, 453 icMaxEnumIlluminant = icMaxTagVal 454 } icIlluminant; 455 456 /* A not so exhaustive list of language codes */ 457 typedef enum { 458 icLanguageCodeEnglish = 0x656E, /* 'en' */ 459 icLanguageCodeGerman = 0x6465, /* 'de' */ 460 icLanguageCodeItalian = 0x6974, /* 'it' */ 461 icLanguageCodeDutch = 0x6E6C, /* 'nl' */ 462 icLanguageCodeSweden = 0x7376, /* 'sv' */ 463 icLanguageCodeSpanish = 0x6573, /* 'es' */ 464 icLanguageCodeDanish = 0x6461, /* 'da' */ 465 icLanguageCodeNorwegian = 0x6E6F, /* 'no' */ 466 icLanguageCodeJapanese = 0x6A61, /* 'ja' */ 467 icLanguageCodeFinish = 0x6669, /* 'fi' */ 468 icLanguageCodeTurkish = 0x7472, /* 'tr' */ 469 icLanguageCodeKorean = 0x6B6F, /* 'ko' */ 470 icLanguageCodeChienese = 0x7A68, /* 'zh' */ 471 icLanguageCodeFrench = 0x6672, /* 'fr' */ 472 icMaxEnumLanguageCode = 0xFFFF 473 } icEnumLanguageCode; 474 475 /* A not so exhaustive list of region codes. */ 476 typedef enum { 477 icRegionCodeUSA = 0x5553, /* 'US' */ 478 icRegionCodeUnitedKingdom = 0x554B, /* 'UK' */ 479 icRegionCodeGermany = 0x4445, /* 'DE' */ 480 icRegionCodeItaly = 0x4954, /* 'IT' */ 481 icRegionCodeNetherlands = 0x4E4C, /* 'NL' */ 482 icRegionCodeSpain = 0x4543, /* 'ES' */ 483 icRegionCodeDenmark = 0x444B, /* 'DK' */ 484 icRegionCodeNorway = 0x4E4F, /* 'ND' */ 485 icRegionCodeJapan = 0x4A50, /* 'JP' */ 486 icRegionCodeFinland = 0x4649, /* 'FI' */ 487 icRegionCodeTurkey = 0x5452, /* 'TR' */ 488 icRegionCodeKorea = 0x4B52, /* 'KR' */ 489 icRegionCodeChina = 0x434E, /* 'CN' */ 490 icRegionCodeTaiwan = 0x5457, /* 'TW' */ 491 icRegionCodeFrance = 0x4652, /* 'FR' */ 492 icMaxEnumRegionCode = 0xFFFF 493 } icEnumRegionCode; 494 495 /* media type for icSigDeviceSettingsTag */ 496 typedef enum { 497 icStandard = 1, 498 icTrans = 2, /* transparency */ 499 icGloss = 3, 500 icUser1 = 256, 501 icMaxDeviceMedia = icMaxTagVal 502 } icDeviceMedia; 503 504 /* halftone settings for icSigDeviceSettingTag */ 505 typedef enum { 506 icNone = 1, 507 icCoarse = 2, 508 icFine = 3, 509 icLineArt = 4, 510 icErrorDiffusion = 5, 511 icReserved6 = 6, 512 icReserved7 = 7, 513 icReserved8 = 8, 514 icReserved9 = 9, 515 icGrayScale = 10, 516 icUser2 = 256, 517 icMaxDither = icMaxTagVal 518 } icDeviceDither; 519 520 /* signatures for icSigDeviceSettingsTag */ 521 typedef enum { 522 icSigResolution = 0x72736c6eL, /* 'rsln' */ 523 icSigMedia = 0x6d747970L, /* 'mtyp' */ 524 icSigHalftone = 0x6866746eL, /* 'hftn' */ 525 icMaxSettings = icMaxTagVal 526 } icSettingsSig; 527 528 /* measurement units for the icResponseCurveSet16Type */ 529 typedef enum { 530 icStaA = 0x53746141L, /* 'StaA' */ 531 icStaE = 0x53746145L, /* 'StaE' */ 532 icStaI = 0x53746149L, /* 'StaI' */ 533 icStaT = 0x53746154L, /* 'StaT' */ 534 icStaM = 0x5374614dL, /* 'StaM' */ 535 icDN = 0x444e2020L, /* 'DN ' */ 536 icDNP = 0x444e2050L, /* 'DN P' */ 537 icDNN = 0x444e4e20L, /* 'DNN ' */ 538 icDNNP = 0x444e4e50L, /* 'DNNP' */ 539 icMaxUnits = icMaxTagVal 540 } icMeasUnitsSig; 541 542 /* Parametric curve types for icSigParametricCurveType */ 543 typedef enum { 544 icCurveFunction1 = 0x0000, 545 icCurveFunction3 = 0x0001, 546 icCurveFunction4 = 0x0002, 547 icCurveFunction5 = 0x0003, 548 icCurveFunction7 = 0x0004 549 } icParametricCurveFunctionType; 550 551 #ifdef __cplusplus 552 } 553 #endif 554 555 #endif /* ICCV42_H */ 556