KCMS Application Developer's Guide

Attribute Definitions

icHeader

typedef struct {
 	icUInt32Number							size;			/* Profile size in bytes */
 	icSignature							cmmId;			/* CMM for this profile */
 	icUInt32Number							version;			/* Format version number */
 	icProfileClassSignature							deviceClass;/* Type of profile */
 	icColorSpaceSignature							colorSpace;			/* Color space of data*/
 	icColorSpaceSignature							pcs;	 		/* PCS, XYZ or LAB only */
 	icDateTimeNumber							date;			/* Date profile was created */
 	icSignature							magic;			/* icMagicNumber */
 	icPlatformSignature							platform;			/* Primary Platform */
 	icUInt32Number							flags;			/* Various bit settings */
 	icSignature							manufacturer;				/* Device manufacturer */
 	icUInt32Number							model;			/* Device model number */
 	icUInt64Number							attributes;			/* Device attributes */
 	icUInt32Number							renderingIntent;					/* Rendering intent */
 	icXYZNumber							illuminant;			/* Profile illuminant */
 	icSignature							creator;			/* Profile creator */
 	icInt8Number							reserved[48];					/* Reserved for future */
 } icHeader;

icProfile

typedef struct {
 	icHeader							header;				/* header */
 	icUInt32Number				count;		/* number of tags in profile */
 	icInt8Number				data[icAny];		/* tagTable and tagData */

 /* Data the follows is of this form:
  * icTag					tagTable[icAny];					* tag table
  * icInt8Number					tagData[icAny];				 	* tag data
  */

 } icProfile;

icTag

typedef struct {
 	icTagSignature				sig;		/* tag signature */
 	icUInt32Number				offset;		/* start of tag relative to start of
 							 * header, See ICC spec, sect 8 */
 	icUInt32Number				size;		/* size in bytes */
 } icTag;

icTagList

typedef struct {
 	icUInt32Number				count;				/* number of tags in profile */
 	icTag				tags[icAny];				/* variable array of tags */
 } icTagList;