Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
CIccTagProfileSeqDesc Class Reference

Class: CIccTagProfileSeqDesc. More...

#include <IccTagBasic.h>

+ Inheritance diagram for CIccTagProfileSeqDesc:
+ Collaboration diagram for CIccTagProfileSeqDesc:

Public Member Functions

 CIccTagProfileSeqDesc ()
 Name: CIccTagProfileSeqDesc::CIccTagProfileSeqDesc.
 
 CIccTagProfileSeqDesc (const CIccTagProfileSeqDesc &ITPSD)
 Name: CIccTagProfileSeqDesc::CIccTagProfileSeqDesc.
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 Name: CIccTagProfileSeqDesc::Describe.
 
virtual const icCharGetClassName () const
 
virtual icTagTypeSignature GetType () const
 Function: GetType()
 
virtual CIccTagNewCopy () const
 Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.
 
CIccTagProfileSeqDescoperator= (const CIccTagProfileSeqDesc &ProfSeqDescTag)
 Name: CIccTagProfileSeqDesc::operator=.
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 Name: CIccTagProfileSeqDesc::Read.
 
virtual icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
 Name: CIccTagProfileSeqDesc::Validate.
 
virtual bool Write (CIccIO *pIO)
 Name: CIccTagProfileSeqDesc::Write.
 
virtual ~CIccTagProfileSeqDesc ()
 Name: CIccTagProfileSeqDesc::~CIccTagProfileSeqDesc.
 
- Public Member Functions inherited from CIccTag
 CIccTag ()
 Name: CIccTag::CIccTag.
 
virtual void DetachIO ()
 Function: ReadAll() - Read All sub data for tag from file.
 
virtual IIccExtensionTagGetExtension ()
 
virtual icArraySignature GetTagArrayType () const
 
virtual icStructSignature GetTagStructType () const
 
virtual bool IsArrayType ()
 
virtual bool IsMBBType ()
 
virtual bool IsNumArrayType () const
 
virtual bool IsSupported ()
 Function: IsSupported(size, pIO) - Check if tag fully supported for apply purposes.
 
virtual bool Read (icUInt32Number size, CIccIO *pIO, CIccProfile *pProfile)
 Function: Read(size, pIO) - Read tag from file.
 
virtual bool ReadAll ()
 Function: ReadAll() - Read All sub data for tag from file.
 
virtual ~CIccTag ()
 Name: CIccTag::CIccTag.
 

Public Attributes

CIccProfileSeqDescm_Descriptions
 
- Public Attributes inherited from CIccTag
icUInt32Number m_nReserved
 

Additional Inherited Members

- Static Public Member Functions inherited from CIccTag
static CIccTagCreate (icTagTypeSignature sig)
 Name: CIccTag::Create.
 

Detailed Description

Class: CIccTagProfileSeqDesc.

Purpose: Profile Sequence description tag

Definition at line 1523 of file IccTagBasic.h.

Constructor & Destructor Documentation

◆ CIccTagProfileSeqDesc() [1/2]

CIccTagProfileSeqDesc::CIccTagProfileSeqDesc ( )

Name: CIccTagProfileSeqDesc::CIccTagProfileSeqDesc.

Purpose: Constructor

Definition at line 9409 of file IccTagBasic.cpp.

9410{
9412}
std::list< CIccProfileDescStruct > CIccProfileSeqDesc
List Class: CIccProfileSeqDesc.
CIccProfileSeqDesc * m_Descriptions

◆ CIccTagProfileSeqDesc() [2/2]

CIccTagProfileSeqDesc::CIccTagProfileSeqDesc ( const CIccTagProfileSeqDesc & ITPSD)

Name: CIccTagProfileSeqDesc::CIccTagProfileSeqDesc.

Purpose: Copy Constructor

Args: ITPSD = The CIccTagProfileSeqDesc object to be copied

Definition at line 9425 of file IccTagBasic.cpp.

9426{
9429}

References m_Descriptions.

◆ ~CIccTagProfileSeqDesc()

CIccTagProfileSeqDesc::~CIccTagProfileSeqDesc ( )
virtual

Name: CIccTagProfileSeqDesc::~CIccTagProfileSeqDesc.

Purpose: Destructor

Definition at line 9461 of file IccTagBasic.cpp.

9462{
9463 delete m_Descriptions;
9464}

Member Function Documentation

◆ Describe()

void CIccTagProfileSeqDesc::Describe ( std::string & sDescription,
int nVerboseness )
virtual

Name: CIccTagProfileSeqDesc::Describe.

Purpose: Dump data associated with the tag to a string

Args: sDescription - string to concatenate tag dump to

Reimplemented from CIccTag.

Definition at line 9592 of file IccTagBasic.cpp.

9593{
9594 CIccProfileSeqDesc::iterator i;
9595 icChar buf[128], buf2[28];
9596 icUInt32Number count=0;
9597
9598 sprintf(buf, "Number of Profile Description Structures: %u\n", (icUInt32Number)m_Descriptions->size());
9599 sDescription += buf;
9600
9601 for (i=m_Descriptions->begin(); i!=m_Descriptions->end(); i++, count++) {
9602 sDescription += "\n";
9603
9604 sprintf(buf, "Profile Description Structure Number [%u] follows:\n", count+1);
9605 sDescription += buf;
9606
9607 sprintf(buf, "Device Manufacturer Signature: %s\n", icGetSig(buf2, i->m_deviceMfg, false));
9608 sDescription += buf;
9609
9610 sprintf(buf, "Device Model Signature: %s\n", icGetSig(buf2, i->m_deviceModel, false));
9611 sDescription += buf;
9612
9613 sprintf(buf, "Device Attributes: %08x%08x\n", (icUInt32Number)(i->m_attributes >> 32), (icUInt32Number)(i->m_attributes));
9614 sDescription += buf;
9615
9616 sprintf(buf, "Device Technology Signature: %s\n", icGetSig(buf2, i->m_technology, false));
9617 sDescription += buf;
9618
9619 sprintf(buf, "Description of device manufacturer: \n");
9620 sDescription += buf;
9621 i->m_deviceMfgDesc.Describe(sDescription, nVerboseness);
9622
9623 sprintf(buf, "Description of device model: \n");
9624 sDescription += buf;
9625 i->m_deviceModelDesc.Describe(sDescription, nVerboseness);
9626 }
9627}
char icChar
Definition IccDefs.h:109
const icChar * icGetSig(icChar *pBuf, icUInt32Number nSig, bool bGetHexVal)
Definition IccUtil.cpp:1028
unsigned int icUInt32Number

References icGetSig().

+ Here is the call graph for this function:

◆ GetClassName()

virtual const icChar * CIccTagProfileSeqDesc::GetClassName ( ) const
inlinevirtual

Reimplemented from CIccTag.

Reimplemented in CIccTagXmlProfileSeqDesc.

Definition at line 1533 of file IccTagBasic.h.

1533{ return "CIccTagProfileSeqDesc"; }

◆ GetType()

virtual icTagTypeSignature CIccTagProfileSeqDesc::GetType ( ) const
inlinevirtual

Function: GetType()

Purpose: Get Tag Type. Each derived tag will implement it's own GetType() function.

Reimplemented from CIccTag.

Definition at line 1532 of file IccTagBasic.h.

@ icSigProfileSequenceDescType

References icSigProfileSequenceDescType.

◆ NewCopy()

virtual CIccTag * CIccTagProfileSeqDesc::NewCopy ( ) const
inlinevirtual

Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.

Parameter(s): none

Returns a new CIccTag object that is a copy of this object.

Reimplemented from CIccTag.

Definition at line 1529 of file IccTagBasic.h.

1529{return new CIccTagProfileSeqDesc(*this);}
CIccTagProfileSeqDesc()
Name: CIccTagProfileSeqDesc::CIccTagProfileSeqDesc.

◆ operator=()

CIccTagProfileSeqDesc & CIccTagProfileSeqDesc::operator= ( const CIccTagProfileSeqDesc & ProfSeqDescTag)

Name: CIccTagProfileSeqDesc::operator=.

Purpose: Copy Operator

Args: ProfSeqDescTag = The CIccTagProfileSeqDesc object to be copied

Definition at line 9442 of file IccTagBasic.cpp.

9443{
9444 if (&ProfSeqDescTag == this)
9445 return *this;
9446
9447 *m_Descriptions = *ProfSeqDescTag.m_Descriptions;
9448
9449 return *this;
9450}

References m_Descriptions.

◆ Read()

bool CIccTagProfileSeqDesc::Read ( icUInt32Number size,
CIccIO * pIO )
virtual

Name: CIccTagProfileSeqDesc::Read.

Purpose: Read in the tag contents into a data block

Args: size - # of bytes in tag, pIO - IO object to read tag from

Return: true = successful, false = failure

Reimplemented from CIccTag.

Definition at line 9481 of file IccTagBasic.cpp.

9482{
9484 icUInt32Number nCount, nEnd;
9485
9486 nEnd = pIO->Tell() + size;
9487
9488 if (sizeof(icTagTypeSignature) +
9489 sizeof(icUInt32Number)*2 > size)
9490 return false;
9491
9492 if (!pIO) {
9493 return false;
9494 }
9495
9496 if (!pIO->Read32(&sig) ||
9497 !pIO->Read32(&m_nReserved) ||
9498 !pIO->Read32(&nCount))
9499 return false;
9500
9501 if (!nCount)
9502 return true;
9503
9504 if (sizeof(icTagTypeSignature) +
9505 sizeof(icUInt32Number)*2 +
9506 sizeof(CIccProfileDescStruct) > size)
9507 return false;
9508
9509 icUInt32Number i, nPos;
9510 CIccProfileDescStruct ProfileDescStruct;
9511
9512 for (i=0; i<nCount; i++) {
9513
9514 if (!pIO->Read32(&ProfileDescStruct.m_deviceMfg) ||
9515 !pIO->Read32(&ProfileDescStruct.m_deviceModel) ||
9516 !pIO->Read64(&ProfileDescStruct.m_attributes) ||
9517 !pIO->Read32(&ProfileDescStruct.m_technology))
9518 return false;
9519
9520 nPos = pIO->Tell();
9521
9522 if (!ProfileDescStruct.m_deviceMfgDesc.Read(nEnd - nPos, pIO))
9523 return false;
9524
9525 nPos = pIO->Tell();
9526 if (!ProfileDescStruct.m_deviceModelDesc.Read(nEnd - nPos, pIO))
9527 return false;
9528
9529 m_Descriptions->push_back(ProfileDescStruct);
9530 }
9531
9532 return true;
9533}
icArraySignature sig
icTagTypeSignature
virtual icInt32Number Tell()
Definition IccIO.h:133
icInt32Number Read64(void *pBuf64, icInt32Number nNum=1)
Definition IccIO.cpp:173
icInt32Number Read32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:143
Data Class: CIccProfileDescStruct.
CIccProfileDescText m_deviceMfgDesc
icSignature m_deviceModel
icTechnologySignature m_technology
CIccProfileDescText m_deviceModelDesc
icUInt64Number m_attributes
virtual bool Read(icUInt32Number size, CIccIO *pIO)
Name: CIccProfileDescText::Read.
icUInt32Number m_nReserved

References CIccProfileDescStruct::m_attributes, CIccProfileDescStruct::m_deviceMfg, CIccProfileDescStruct::m_deviceMfgDesc, CIccProfileDescStruct::m_deviceModel, CIccProfileDescStruct::m_deviceModelDesc, CIccProfileDescStruct::m_technology, CIccProfileDescText::Read(), CIccIO::Read32(), CIccIO::Read64(), sig, and CIccIO::Tell().

+ Here is the call graph for this function:

◆ Validate()

icValidateStatus CIccTagProfileSeqDesc::Validate ( std::string sigPath,
std::string & sReport,
const CIccProfile * pProfile = NULL ) const
virtual

Name: CIccTagProfileSeqDesc::Validate.

Purpose: Check tag data validity.

Args: sig = signature of tag being validated, sReport = String to add report information to

Return: icValidateStatusOK if valid, or other error status.

Reimplemented from CIccTag.

Definition at line 9644 of file IccTagBasic.cpp.

9645{
9646 icValidateStatus rv = CIccTag::Validate(sigPath, sReport, pProfile);
9647
9648 CIccInfo Info;
9649 char buf[128];
9650 std::string sSigPathName = Info.GetSigPathName(sigPath);
9651
9652 CIccProfileSeqDesc::iterator i;
9653 for (i=m_Descriptions->begin(); i!=m_Descriptions->end(); i++) {
9654 switch(i->m_technology) {
9655 case 0x00000000: //Technology not defined
9656 case icSigFilmScanner:
9657 case icSigDigitalCamera:
9659 case icSigInkJetPrinter:
9665 case icSigFilmWriter:
9666 case icSigVideoMonitor:
9667 case icSigVideoCamera:
9669 case icSigCRTDisplay:
9670 case icSigPMDisplay:
9671 case icSigAMDisplay:
9672 case icSigPhotoCD:
9674 case icSigGravure:
9676 case icSigSilkscreen:
9677 case icSigFlexography:
9678 break;
9679
9680 default:
9681 {
9682 sReport += icMsgValidateNonCompliant;
9683 sReport += sSigPathName;
9684 sprintf(buf, " - %s: Unknown Technology.\n", Info.GetSigName(i->m_technology));
9685 sReport += buf;
9687 }
9688 }
9689
9690 if (i->m_deviceMfgDesc.m_bNeedsPading) {
9691 sReport += icMsgValidateNonCompliant;
9692 sReport += sSigPathName;
9693
9694 sReport += " Contains non-aligned deviceMfgDesc text tag information\n";
9695
9697 }
9698
9699 if (i->m_deviceModelDesc.m_bNeedsPading) {
9700 sReport += icMsgValidateNonCompliant;
9701 sReport += sSigPathName;
9702
9703 sReport += " Contains non-aligned deviceModelDesc text tag information\n";
9704
9706 }
9707
9708 rv = icMaxStatus(rv, i->m_deviceMfgDesc.GetTag()->Validate(sigPath+icGetSigPath(GetType()), sReport, pProfile));
9709 rv = icMaxStatus(rv, i->m_deviceModelDesc.GetTag()->Validate(sigPath+icGetSigPath(GetType()), sReport, pProfile));
9710 }
9711
9712 return rv;
9713}
icValidateStatus
Definition IccDefs.h:118
@ icValidateNonCompliant
Definition IccDefs.h:121
icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Name: icMaxStatus.
Definition IccUtil.cpp:244
std::string icGetSigPath(icUInt32Number nSig)
Definition IccUtil.cpp:1191
const char * icMsgValidateNonCompliant
Definition IccUtil.cpp:91
Type: Class.
Definition IccUtil.h:303
const icChar * GetSigName(icUInt32Number val)
Definition IccUtil.cpp:2000
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
Function: Validate Each derived tag will implement it's own IsValid() function.
virtual icTagTypeSignature GetType() const
Function: GetType()
@ icSigFilmWriter
@ icSigCRTDisplay
@ icSigOffsetLithography
@ icSigFlexography
@ icSigSilkscreen
@ icSigPhotographicPaperPrinter
@ icSigVideoMonitor
@ icSigElectrostaticPrinter
@ icSigPMDisplay
@ icSigGravure
@ icSigInkJetPrinter
@ icSigReflectiveScanner
@ icSigDigitalCamera
@ icSigVideoCamera
@ icSigDyeSublimationPrinter
@ icSigThermalWaxPrinter
@ icSigFilmScanner
@ icSigPhotoCD
@ icSigPhotoImageSetter
@ icSigElectrophotographicPrinter
@ icSigProjectionTelevision
@ icSigAMDisplay

References CIccInfo::GetSigName(), CIccInfo::GetSigPathName(), icGetSigPath(), icMaxStatus(), icMsgValidateNonCompliant, icSigAMDisplay, icSigCRTDisplay, icSigDigitalCamera, icSigDyeSublimationPrinter, icSigElectrophotographicPrinter, icSigElectrostaticPrinter, icSigFilmScanner, icSigFilmWriter, icSigFlexography, icSigGravure, icSigInkJetPrinter, icSigOffsetLithography, icSigPhotoCD, icSigPhotographicPaperPrinter, icSigPhotoImageSetter, icSigPMDisplay, icSigProjectionTelevision, icSigReflectiveScanner, icSigSilkscreen, icSigThermalWaxPrinter, icSigVideoCamera, icSigVideoMonitor, icValidateNonCompliant, and CIccTag::Validate().

+ Here is the call graph for this function:

◆ Write()

bool CIccTagProfileSeqDesc::Write ( CIccIO * pIO)
virtual

Name: CIccTagProfileSeqDesc::Write.

Purpose: Write the tag to a file

Args: pIO - The IO object to write tag to.

Return: true = succesful, false = failure

Reimplemented from CIccTag.

Definition at line 9549 of file IccTagBasic.cpp.

9550{
9553
9554 if (!pIO) {
9555 return false;
9556 }
9557
9558 if (!pIO->Write32(&sig) ||
9559 !pIO->Write32(&m_nReserved) ||
9560 !pIO->Write32(&nCount))
9561 return false;
9562
9563 CIccProfileSeqDesc::iterator i;
9564
9565 for (i=m_Descriptions->begin(); i!=m_Descriptions->end(); i++) {
9566
9567 if (!pIO->Write32(&i->m_deviceMfg) ||
9568 !pIO->Write32(&i->m_deviceModel) ||
9569 !pIO->Write64(&i->m_attributes) ||
9570 !pIO->Write32(&i->m_technology))
9571 return false;
9572
9573 if (!i->m_deviceMfgDesc.Write(pIO) ||
9574 !i->m_deviceModelDesc.Write(pIO))
9575 return false;
9576 }
9577
9578 return true;
9579}
icInt32Number Write32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:152
icInt32Number Write64(void *pBuf64, icInt32Number nNum=1)
Definition IccIO.cpp:182

References sig, CIccIO::Write32(), and CIccIO::Write64().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_Descriptions

CIccProfileSeqDesc* CIccTagProfileSeqDesc::m_Descriptions

The documentation for this class was generated from the following files: