#include "./kcms_utils.h" KcsProfileId profileid; KcsAttributeValue *attrValue; int size; void print_header(icHeader *hdr); size = sizeof(KcsAttributeBase) + sizeof(icHeader); attrValue = (KcsAttributeValue *)malloc(size); /* Get the header */ attrValue->base.type = icSigHeaderType; attrValue->base.sizeOfType = sizeof(icHeader); attrValue->base.countSupplied = 1; KcsGetAttribute(profileid, icSigHeaderTag, attrValue); ... print_header(&attrValue->val.icHeader); ... void print_header(icHeader *hdr) { char charstring[5]; printf("Size in bytes = %d\n", hdr->size); printf("CMM Id = 0x%x\n", hdr->cmmId); printf("Major version number = 0x%x\n", hdr->version>>24); printf("Minor version number = 0x%x\n", (hdr->version&0x00FF0000)>>16); switch(hdr->deviceClass) { case icSigInputClass : printf("deviceClass = input\n"); break; case icSigDisplayClass : printf("deviceClass = display\n"); break; case icSigOutputClass : printf("deviceClass = output\n"); break; case icSigLinkClass : printf("deviceClass = link\n"); break; case icSigAbstractClass : printf("deviceClass = abstract\n"); break; case icSigColorSpaceClass : printf("deviceClass = colorspace\n"); break; default : printf("Unknown\n"); break; } memset(charstring, 0 ,5); memcpy(charstring, &hdr->colorSpace, 4); printf("colorspace = %s\n", charstring); memset(charstring, 0 ,5); memcpy(charstring, &hdr->pcs, 4); printf("profile connection space = %s\n", charstring); printf("date = %d/%d/%d, ", hdr->date.day,hdr->date.month, hdr->date.year); printf("time = %d:%d:%d\n", hdr->date.hours,hdr->date.minutes, hdr->date.seconds); memset(charstring, 0 ,5); memcpy(charstring, &hdr->magic, 4); printf("magic number = %s\n", charstring); switch(hdr->platform) { case icSigMacintosh : printf("platform = Macintosh\n"); break; case icSigMicrosoft : printf("platform = Microsoft\n"); break; case icSigSolaris : printf("platform = Solaris\n"); break; case icSigSGI : printf("platform = SGI\n"); break; case icSigTaligent : printf("platform = Taligent\n"); break; default : printf("Unknown\n"); break; } if(hdr->flags && icEmbeddedProfileTrue) printf("Embedded profile.\n"); else printf("Non-embedded profile\n"); if(hdr->flags && icUseWithEmbeddedDataOnly) printf("If this profile is embedded, it is not allowed to strip it out and use it independently.\n"); else printf("OK to strip embedded profile out and use> > # end of Para |