XMP_Const.h File Reference

Common C/C++ types and constants for the XMP toolkit. More...

#include "XMP_Environment.h"
#include <stddef.h>

Include dependency graph for XMP_Const.h:

Go to the source code of this file.

Classes

struct  XMP_DateTime
 The expanded type for a date and time. More...
struct  XMP_PacketInfo
 XMP packet description. More...
struct  XMP_ThumbnailInfo
 Thumbnail descriptor. More...
class  XMP_Error
 XMP Toolkit error, associates an error code with a descriptive error string. More...
struct  XMP_VersionInfo
 XMP Toolkit version information. More...

General scalar types and constants

#define kXMP_TrueStr   "True"
 The canonical true string value for Booleans in serialized XMP.
#define kXMP_FalseStr   "False"
 The canonical false string value for Booleans in serialized XMP.
enum  {
  kXMPTS_Yes = 1,
  kXMPTS_No = 0,
  kXMPTS_Maybe = -1
}
typedef const char * XMP_StringPtr
 The type for input string parameters. A const char *, a null-terminated UTF-8 string.
typedef XMP_Uns32 XMP_StringLen
 The type for string length parameters. A 32-bit unsigned integer, as big as will be practically needed.
typedef XMP_Int32 XMP_Index
 The type for offsets and indices. A 32-bit signed integer. It is signed to allow -1 for loop termination.
typedef XMP_Uns32 XMP_OptionBits
 The type for a collection of 32 flag bits. Individual flags are defined as enum value bit masks; see kXMP_PropValueIsURI and following. A number of macros provide common set or set operations, such as XMP_PropIsSimple. For other tests use an expression like options & kXMP_<theOption>. When passing multiple option flags use the bitwise-OR operator. '|', not the arithmatic plus, '+'.
typedef XMP_Int8 XMP_TriState

Defines

#define kXMP_NS_TIFF   "http://ns.adobe.com/tiff/1.0/"
 The XML namespace for Adobe's TIFF schema.
#define kXMP_NS_XMP_ST_Job   "http://ns.adobe.com/xap/1.0/sType/Job#"
 The XML namespace for fields of the JobRef type.
#define kXMP_NS_XML   "http://www.w3.org/XML/1998/namespace"
 The XML namespace for XML.
#define kXMP_NoOptions   ((XMP_OptionBits)0UL)
 Options macro clears all property-type bits.
#define XMP_OptionIsClear(var, opt)   (((var) & (opt)) == 0)
 Macro reports whether an option flag bit is clear.
#define XMP_PropIsAlias(opt)   (((opt) & kXMP_PropIsAlias) != 0)
 Macro reports the property type specified by an options flag.
#define XMP_CharFromSerializeForm(sf)   ( (XMP_Uns8)(sf) )
 Macro converts XMP_OptionBits to XMP_Uns8.
#define kXMPFiles_UnknownOffset   ((XMP_Int64)-1)
 Constant for an unknown packet offset within a file.
#define kXMPFiles_UnknownLength   ((XMP_Int32)-1)
 Constant for an unknown packet length within a file.
XML namespace constants for standard XMP schema.
#define kXMP_NS_XMP   "http://ns.adobe.com/xap/1.0/"
 The XML namespace for the XMP "basic" schema.
#define kXMP_NS_XMP_Rights   "http://ns.adobe.com/xap/1.0/rights/"
 The XML namespace for the XMP copyright schema.
#define kXMP_NS_XMP_MM   "http://ns.adobe.com/xap/1.0/mm/"
 The XML namespace for the XMP digital asset management schema.
#define kXMP_NS_XMP_BJ   "http://ns.adobe.com/xap/1.0/bj/"
 The XML namespace for the job management schema.
#define kXMP_NS_PDF   "http://ns.adobe.com/pdf/1.3/"
 The XML namespace for the PDF schema.
#define kXMP_NS_Photoshop   "http://ns.adobe.com/photoshop/1.0/"
 The XML namespace for the Photoshop custom schema.
#define kXMP_NS_EXIF   "http://ns.adobe.com/exif/1.0/"
 The XML namespace for Adobe's EXIF schema.
#define kXMP_NS_XMP_T   "http://ns.adobe.com/xap/1.0/t/"
 The XML namespace for the XMP text document schema.
#define kXMP_NS_XMP_T_PG   "http://ns.adobe.com/xap/1.0/t/pg/"
 The XML namespace for the XMP paged document schema.
XML namespace constants for qualifiers and structured property fields.
#define kXMP_NS_XMP_IdentifierQual   "http://ns.adobe.com/xmp/Identifier/qual/1.0/"
 The XML namespace for qualifiers of the xmp:Identifier property.
#define kXMP_NS_XMP_Dimensions   "http://ns.adobe.com/xap/1.0/sType/Dimensions#"
 The XML namespace for fields of the Dimensions type.
#define kXMP_NS_XMP_Image   "http://ns.adobe.com/xap/1.0/g/img/"
 The XML namespace for fields of a graphical image. Used for the Thumbnail type.
#define kXMP_NS_XMP_ResourceEvent   "http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
 The XML namespace for fields of the ResourceEvent type.
#define kXMP_NS_XMP_ResourceRef   "http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
 The XML namespace for fields of the ResourceRef type.
#define kXMP_NS_XMP_ST_Version   "http://ns.adobe.com/xap/1.0/sType/Version#"
 The XML namespace for fields of the Version type.
XML namespace constants from outside Adobe.
#define kXMP_NS_DC   "http://purl.org/dc/elements/1.1/"
 The XML namespace for the Dublin Core schema.
#define kXMP_NS_IPTCCore   "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/"
 The XML namespace for the IPTC Core schema.
#define kXMP_NS_RDF   "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 The XML namespace for RDF.
Macros for standard option selections.
#define kXMP_ArrayLastItem   ((XMP_Index)(-1L))
 Options macro accesses last array item.
#define kXMP_UseNullTermination   ((XMP_StringLen)(~0UL))
 Options macro sets string style.
Macros for setting and testing general option bits.
#define XMP_SetOption(var, opt)   var |= (opt)
 Macro sets an option flag bit.
#define XMP_ClearOption(var, opt)   var &= ~(opt)
 Macro clears an option flag bit.
#define XMP_TestOption(var, opt)   (((var) & (opt)) != 0)
 Macro reports whether an option flag bit is set.
#define XMP_OptionIsSet(var, opt)   (((var) & (opt)) != 0)
 Macro reports whether an option flag bit is set.
Macros for setting and testing specific option bits.
#define XMP_PropIsSimple(opt)   (((opt) & kXMP_PropCompositeMask) == 0)
 Macro reports the property type specified by an options flag.
#define XMP_PropIsStruct(opt)   (((opt) & kXMP_PropValueIsStruct) != 0)
 Macro reports the property type specified by an options flag.
#define XMP_PropIsArray(opt)   (((opt) & kXMP_PropValueIsArray) != 0)
 Macro reports the property type specified by an options flag.
#define XMP_ArrayIsUnordered(opt)   (((opt) & kXMP_PropArrayIsOrdered) == 0)
 Macro reports the property type specified by an options flag.
#define XMP_ArrayIsOrdered(opt)   (((opt) & kXMP_PropArrayIsOrdered) != 0)
 Macro reports the property type specified by an options flag.
#define XMP_ArrayIsAlternate(opt)   (((opt) & kXMP_PropArrayIsAlternate) != 0)
 Macro reports the property type specified by an options flag.
#define XMP_ArrayIsAltText(opt)   (((opt) & kXMP_PropArrayIsAltText) != 0)
 Macro reports the property type specified by an options flag.
#define XMP_PropHasQualifiers(opt)   (((opt) & kXMP_PropHasQualifiers) != 0)
 Macro reports the property type specified by an options flag.
#define XMP_PropIsQualifier(opt)   (((opt) & kXMP_PropIsQualifier) != 0)
 Macro reports the property type specified by an options flag.
#define XMP_PropHasLang(opt)   (((opt) & kXMP_PropHasLang) != 0)
 Macro reports the property type specified by an options flag.
#define XMP_NodeIsSchema(opt)   (((opt) & kXMP_SchemaNode) != 0)
 Macro reports the property type specified by an options flag.
Macros to test components of the character form mask
#define XMP_CharFormIs16Bit(f)   ( ((int)(f) & kXMP_Char16BitMask) != 0 )
 Macro reports the encoding of a character.
#define XMP_CharFormIs32Bit(f)   ( ((int)(f) & kXMP_Char32BitMask) != 0 )
 Macro reports the encoding of a character.
#define XMP_CharFormIsBigEndian(f)   ( ((int)(f) & kXMP_CharLittleEndianMask) == 0 )
 Macro reports the byte-order of a character.
#define XMP_CharFormIsLittleEndian(f)   ( ((int)(f) & kXMP_CharLittleEndianMask) != 0 )
 Macro reports the byte-order of a character.
#define XMP_GetCharSize(f)   ( ((int)(f)&6) == 0 ? 1 : (int)(f)&6 )
 Macro reports the byte-size of a character.
#define XMP_CharToSerializeForm(cf)   ( (XMP_OptionBits)(cf) )
 Macro converts XMP_Uns8 to XMP_OptionBits.

Typedefs

typedef struct __XMPMeta__ * XMPMetaRef
typedef struct __XMPIterator__ * XMPIteratorRef
typedef struct __XMPDocOps__ * XMPDocOpsRef
typedef struct __XMPFiles__ * XMPFilesRef
typedef XMP_Uns32 XMP_FileFormat
 Type for file format identification constants. See kXMP_PDFFile and following.
Special purpose callback functions
typedef XMP_Int32 XMP_Status
typedef XMP_Status(* XMP_TextOutputProc )(void *refCon, XMP_StringPtr buffer, XMP_StringLen bufferSize)
typedef bool(* XMP_AbortProc )(void *arg)

Enumerations

enum  {
  kXMP_TimeWestOfUTC = -1,
  kXMP_TimeIsUTC = 0,
  kXMP_TimeEastOfUTC = +1
}
 Constant values for XMP_DateTime::tzSign field. More...
enum  {
  kXMP_PropValueIsURI = 0x00000002UL,
  kXMP_PropHasQualifiers = 0x00000010UL,
  kXMP_PropIsQualifier = 0x00000020UL,
  kXMP_PropHasLang = 0x00000040UL,
  kXMP_PropHasType = 0x00000080UL,
  kXMP_PropValueIsStruct = 0x00000100UL,
  kXMP_PropValueIsArray = 0x00000200UL,
  kXMP_PropArrayIsUnordered = kXMP_PropValueIsArray,
  kXMP_PropArrayIsOrdered = 0x00000400UL,
  kXMP_PropArrayIsAlternate = 0x00000800UL,
  kXMP_PropArrayIsAltText = 0x00001000UL,
  kXMP_PropIsAlias = 0x00010000UL,
  kXMP_PropHasAliases = 0x00020000UL,
  kXMP_PropIsInternal = 0x00040000UL,
  kXMP_PropIsStable = 0x00100000UL,
  kXMP_PropIsDerived = 0x00200000UL,
  kXMP_PropArrayFormMask = kXMP_PropValueIsArray | kXMP_PropArrayIsOrdered | kXMP_PropArrayIsAlternate | kXMP_PropArrayIsAltText,
  kXMP_PropCompositeMask = kXMP_PropValueIsStruct | kXMP_PropArrayFormMask,
  kXMP_ImplReservedMask = 0x70000000L
}
 Option bit flags for the TXMPMeta property accessor functions. More...
enum  {
  kXMP_InsertBeforeItem = 0x00004000UL,
  kXMP_InsertAfterItem = 0x00008000UL,
  kXMP_DeleteExisting = 0x20000000UL,
  kXMP_PropValueOptionsMask = kXMP_PropValueIsURI,
  kXMP_PropArrayLocationMask = kXMP_InsertBeforeItem | kXMP_InsertAfterItem
}
enum  {
  kXMP_RequireXMPMeta = 0x0001UL,
  kXMP_ParseMoreBuffers = 0x0002UL,
  kXMP_StrictAliasing = 0x0004UL
}
 Option bit flags for TXMPMeta::ParseFromBuffer(). More...
enum  {
  kXMP_OmitPacketWrapper = 0x0010UL,
  kXMP_ReadOnlyPacket = 0x0020UL,
  kXMP_UseCompactFormat = 0x0040UL,
  kXMP_IncludeThumbnailPad = 0x0100UL,
  kXMP_ExactPacketLength = 0x0200UL,
  kXMP_WriteAliasComments = 0x0400UL,
  kXMP_OmitAllFormatting = 0x0800UL,
  kXMP_OmitXMPMetaElement = 0x1000UL ,
  kXMP_EncodingMask = 0x0007UL,
  kXMP_EncodeUTF8 = 0UL,
  kXMP_EncodeUTF16Big = _XMP_UTF16_Bit,
  kXMP_EncodeUTF16Little = _XMP_UTF16_Bit | _XMP_LittleEndian_Bit,
  kXMP_EncodeUTF32Big = _XMP_UTF32_Bit,
  kXMP_EncodeUTF32Little = _XMP_UTF32_Bit | _XMP_LittleEndian_Bit
}
 Option bit flags for TXMPMeta::SerializeToBuffer(). More...
enum  {
  kXMP_IterClassMask = 0x00FFUL,
  kXMP_IterProperties = 0x0000UL,
  kXMP_IterAliases = 0x0001UL,
  kXMP_IterNamespaces = 0x0002UL,
  kXMP_IterJustChildren = 0x0100UL,
  kXMP_IterJustLeafNodes = 0x0200UL,
  kXMP_IterJustLeafName = 0x0400UL,
  kXMP_IterIncludeAliases = 0x0800UL,
  kXMP_IterOmitQualifiers = 0x1000UL
}
 Option bit flags for TXMPIterator construction. More...
enum  {
  kXMP_IterSkipSubtree = 0x0001UL,
  kXMP_IterSkipSiblings = 0x0002UL
}
 Option bit flags for TXMPIterator::Skip(). More...
enum  { kXMPUtil_AllowCommas = 0x10000000UL }
enum  {
  kXMPUtil_DoAllProperties = 0x0001UL,
  kXMPUtil_ReplaceOldValues = 0x0002UL,
  kXMPUtil_DeleteEmptyValues = 0x0004UL,
  kXMPUtil_IncludeAliases = 0x0800UL
}
 Option bit flags for TXMPUtils::RemoveProperties() and TXMPUtils::AppendProperties(). More...
enum  {
  kXMP_PDFFile = 0x50444620UL,
  kXMP_PostScriptFile = 0x50532020UL,
  kXMP_EPSFile = 0x45505320UL,
  kXMP_JPEGFile = 0x4A504547UL,
  kXMP_JPEG2KFile = 0x4A505820UL,
  kXMP_TIFFFile = 0x54494646UL,
  kXMP_GIFFile = 0x47494620UL,
  kXMP_PNGFile = 0x504E4720UL,
  kXMP_SWFFile = 0x53574620UL,
  kXMP_FLAFile = 0x464C4120UL,
  kXMP_FLVFile = 0x464C5620UL,
  kXMP_MOVFile = 0x4D4F5620UL,
  kXMP_AVIFile = 0x41564920UL,
  kXMP_CINFile = 0x43494E20UL,
  kXMP_WAVFile = 0x57415620UL,
  kXMP_MP3File = 0x4D503320UL,
  kXMP_SESFile = 0x53455320UL,
  kXMP_CELFile = 0x43454C20UL,
  kXMP_MPEGFile = 0x4D504547UL,
  kXMP_MPEG2File = 0x4D503220UL,
  kXMP_MPEG4File = 0x4D503420UL,
  kXMP_WMAVFile = 0x574D4156UL,
  kXMP_AIFFFile = 0x41494646UL,
  kXMP_P2File = 0x50322020UL,
  kXMP_XDCAM_FAMFile = 0x58444346UL,
  kXMP_XDCAM_SAMFile = 0x58444353UL,
  kXMP_XDCAM_EXFile = 0x58444358UL,
  kXMP_AVCHDFile = 0x41564844UL,
  kXMP_SonyHDVFile = 0x53484456UL,
  kXMP_HTMLFile = 0x48544D4CUL,
  kXMP_XMLFile = 0x584D4C20UL,
  kXMP_TextFile = 0x74657874UL,
  kXMP_PhotoshopFile = 0x50534420UL,
  kXMP_IllustratorFile = 0x41492020UL,
  kXMP_InDesignFile = 0x494E4444UL,
  kXMP_AEProjectFile = 0x41455020UL,
  kXMP_AEProjTemplateFile = 0x41455420UL,
  kXMP_AEFilterPresetFile = 0x46465820UL,
  kXMP_EncoreProjectFile = 0x4E434F52UL,
  kXMP_PremiereProjectFile = 0x5052504AUL,
  kXMP_PremiereTitleFile = 0x5052544CUL,
  kXMP_UCFFile = 0x55434620UL,
  kXMP_UnknownFile = 0x20202020UL
}
 File format constants for use with XMPFiles. More...
enum  
 Byte-order masks, do not use directly.
enum  {
  kXMP_Char8Bit = 0,
  kXMP_Char16BitBig = kXMP_Char16BitMask,
  kXMP_Char16BitLittle = kXMP_Char16BitMask | kXMP_CharLittleEndianMask,
  kXMP_Char32BitBig = kXMP_Char32BitMask,
  kXMP_Char32BitLittle = kXMP_Char32BitMask | kXMP_CharLittleEndianMask,
  kXMP_CharUnknown = 1
}
 Constants to allow easy testing for 16/32 bit and big/little endian. More...
enum  { kXMP_PacketInfoVersion = 3 }
 Version of the XMP_PacketInfo type. More...
enum  {
  kXMP_UnknownTNail = 0,
  kXMP_JPEGTNail = 1,
  kXMP_TIFFTNail = 2,
  kXMP_PShopTNail = 3
}
 Values for XMP_ThumbnailInfo::tnailFormat. More...
enum  { kXMP_ThumbnailInfoVersion = 1 }
 Version of the XMP_ThumbnailInfo type. More...
enum  { kXMPFiles_NoQuickTimeInit = 0x0001 }
 Option bit flags for TXMPFiles::Initialize(). More...
enum  {
  kXMPFiles_CanInjectXMP = 0x00000001,
  kXMPFiles_CanExpand = 0x00000002,
  kXMPFiles_CanRewrite = 0x00000004,
  kXMPFiles_PrefersInPlace = 0x00000008,
  kXMPFiles_CanReconcile = 0x00000010,
  kXMPFiles_AllowsOnlyXMP = 0x00000020,
  kXMPFiles_ReturnsRawPacket = 0x00000040,
  kXMPFiles_ReturnsTNail = 0x00000080,
  kXMPFiles_HandlerOwnsFile = 0x00000100,
  kXMPFiles_AllowsSafeUpdate = 0x00000200,
  kXMPFiles_NeedsReadOnlyPacket = 0x00000400,
  kXMPFiles_UsesSidecarXMP = 0x00000800,
  kXMPFiles_FolderBasedFormat = 0x00001000
}
 Option bit flags for TXMPFiles::GetFormatInfo(). More...
enum  {
  kXMPFiles_OpenForRead = 0x00000001,
  kXMPFiles_OpenForUpdate = 0x00000002,
  kXMPFiles_OpenOnlyXMP = 0x00000004,
  kXMPFiles_OpenCacheTNail = 0x00000008,
  kXMPFiles_OpenStrictly = 0x00000010,
  kXMPFiles_OpenUseSmartHandler = 0x00000020,
  kXMPFiles_OpenUsePacketScanning = 0x00000040,
  kXMPFiles_OpenLimitedScanning = 0x00000080,
  kXMPFiles_OpenRepairFile = 0x00000100,
  kXMPFiles_OpenInBackground = 0x10000000
}
 Option bit flags for TXMPFiles::OpenFile(). More...
enum  { kXMPFiles_UpdateSafely = 0x0001 }
 Option bit flags for TXMPFiles::CloseFile(). More...
Errors Exception handling
XMP Tookit errors result in throwing an XMP_Error exception. Any exception thrown within the XMP Toolkit is caught in the toolkit and rethrown as an XMP_Error.

The XMP_Error class contains a numeric code and an English explanation. New numeric codes may be added at any time. There are typically many possible explanations for each numeric code. The explanations try to be precise about the specific circumstances causing the error.

Note:
The explanation string is for debugging use only. It must not be shown to users in a final product. It is written for developers not users, and never localized.


enum  {
  kXMPErr_Unknown = 0,
  kXMPErr_TBD = 1,
  kXMPErr_Unavailable = 2,
  kXMPErr_BadObject = 3,
  kXMPErr_BadParam = 4,
  kXMPErr_BadValue = 5,
  kXMPErr_AssertFailure = 6,
  kXMPErr_EnforceFailure = 7,
  kXMPErr_Unimplemented = 8,
  kXMPErr_InternalFailure = 9,
  kXMPErr_Deprecated = 10,
  kXMPErr_ExternalFailure = 11,
  kXMPErr_UserAbort = 12,
  kXMPErr_StdException = 13,
  kXMPErr_UnknownException = 14,
  kXMPErr_NoMemory = 15,
  kXMPErr_BadSchema = 101,
  kXMPErr_BadXPath = 102,
  kXMPErr_BadOptions = 103,
  kXMPErr_BadIndex = 104,
  kXMPErr_BadIterPosition = 105,
  kXMPErr_BadParse = 106,
  kXMPErr_BadSerialize = 107,
  kXMPErr_BadFileFormat = 108,
  kXMPErr_NoFileHandler = 109,
  kXMPErr_TooLargeForJPEG = 110,
  kXMPErr_BadXML = 201,
  kXMPErr_BadRDF = 202,
  kXMPErr_BadXMP = 203,
  kXMPErr_EmptyIterator = 204,
  kXMPErr_BadUnicode = 205,
  kXMPErr_BadTIFF = 206,
  kXMPErr_BadJPEG = 207,
  kXMPErr_BadPSD = 208,
  kXMPErr_BadPSIR = 209,
  kXMPErr_BadIPTC = 210,
  kXMPErr_BadMPEG = 211
}
 Exception code constants. More...


Detailed Description

Common C/C++ types and constants for the XMP toolkit.


Define Documentation

#define kXMP_FalseStr   "False"

The canonical false string value for Booleans in serialized XMP.

Code that converts from string to bool should be case insensitive, and also allow "0".

#define kXMP_TrueStr   "True"

The canonical true string value for Booleans in serialized XMP.

Code that converts from string to bool should be case insensitive, and also allow "1".

#define XMP_ArrayIsAlternate ( opt   )     (((opt) & kXMP_PropArrayIsAlternate) != 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_ArrayIsAltText ( opt   )     (((opt) & kXMP_PropArrayIsAltText) != 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_ArrayIsOrdered ( opt   )     (((opt) & kXMP_PropArrayIsOrdered) != 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_ArrayIsUnordered ( opt   )     (((opt) & kXMP_PropArrayIsOrdered) == 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_CharFormIs16Bit (  )     ( ((int)(f) & kXMP_Char16BitMask) != 0 )

Macro reports the encoding of a character.

Parameters:
f The character to check.

#define XMP_CharFormIs32Bit (  )     ( ((int)(f) & kXMP_Char32BitMask) != 0 )

Macro reports the encoding of a character.

Parameters:
f The character to check.

#define XMP_CharFormIsBigEndian (  )     ( ((int)(f) & kXMP_CharLittleEndianMask) == 0 )

Macro reports the byte-order of a character.

Parameters:
f The character to check.

#define XMP_CharFormIsLittleEndian (  )     ( ((int)(f) & kXMP_CharLittleEndianMask) != 0 )

Macro reports the byte-order of a character.

Parameters:
f The character to check.

#define XMP_CharFromSerializeForm ( sf   )     ( (XMP_Uns8)(sf) )

Macro converts XMP_OptionBits to XMP_Uns8.

Parameters:
sf The character to convert.

#define XMP_CharToSerializeForm ( cf   )     ( (XMP_OptionBits)(cf) )

Macro converts XMP_Uns8 to XMP_OptionBits.

Parameters:
cf The character to convert.

#define XMP_ClearOption ( var,
opt   )     var &= ~(opt)

Macro clears an option flag bit.

Parameters:
var A variable storing an options flag.
opt The bit-flag constant to clear.

#define XMP_GetCharSize (  )     ( ((int)(f)&6) == 0 ? 1 : (int)(f)&6 )

Macro reports the byte-size of a character.

Parameters:
f The character to check.

#define XMP_NodeIsSchema ( opt   )     (((opt) & kXMP_SchemaNode) != 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_OptionIsClear ( var,
opt   )     (((var) & (opt)) == 0)

Macro reports whether an option flag bit is clear.

Parameters:
var A variable storing an options flag.
opt The bit-flag constant to test.
Returns:
True if the bit is clear.

#define XMP_OptionIsSet ( var,
opt   )     (((var) & (opt)) != 0)

Macro reports whether an option flag bit is set.

Parameters:
var A variable storing an options flag.
opt The bit-flag constant to test.
Returns:
True if the bit is set.

#define XMP_PropHasLang ( opt   )     (((opt) & kXMP_PropHasLang) != 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_PropHasQualifiers ( opt   )     (((opt) & kXMP_PropHasQualifiers) != 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_PropIsAlias ( opt   )     (((opt) & kXMP_PropIsAlias) != 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_PropIsArray ( opt   )     (((opt) & kXMP_PropValueIsArray) != 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_PropIsQualifier ( opt   )     (((opt) & kXMP_PropIsQualifier) != 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_PropIsSimple ( opt   )     (((opt) & kXMP_PropCompositeMask) == 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_PropIsStruct ( opt   )     (((opt) & kXMP_PropValueIsStruct) != 0)

Macro reports the property type specified by an options flag.

Parameters:
opt The options flag to check.

#define XMP_SetOption ( var,
opt   )     var |= (opt)

Macro sets an option flag bit.

Parameters:
var A variable storing an options flag.
opt The bit-flag constant to set.

#define XMP_TestOption ( var,
opt   )     (((var) & (opt)) != 0)

Macro reports whether an option flag bit is set.

Parameters:
var A variable storing an options flag.
opt The bit-flag constant to test.
Returns:
True if the bit is set.


Typedef Documentation

typedef bool(* XMP_AbortProc)(void *arg)

The signature of a client-defined callback to check for a user request to abort a time-consuming operation within XMPFiles.

Parameters:
arg A pointer to caller-defined data passed from the registration call.
Returns:
True to abort the current operation, which results in an exception being thrown.
See also:
TXMPFiles::SetAbortProc()

typedef XMP_Int32 XMP_Status

A signed 32-bit integer used as a status result for the output callback routine, XMP_TextOutputProc. Zero means no error, all other values except -1 are private to the callback. The callback is wrapped to prevent exceptions being thrown across DLL boundaries. Any exceptions thrown out of the callback cause a return status of -1.

typedef XMP_Status(* XMP_TextOutputProc)(void *refCon, XMP_StringPtr buffer, XMP_StringLen bufferSize)

The signature of a client-defined callback for text output from XMP Toolkit debugging operations. The callback is invoked one or more times for each line of output. The end of a line is signaled by a '\n' character at the end of the buffer. Formatting newlines are never present in the middle of a buffer, but values of properties might contain any UTF-8 characters.

Parameters:
refCon A pointer to client-defined data passed to the TextOutputProc.
buffer A string containing one line of output.
bufferSize The number of characters in the output buffer.
Returns:
A success/fail status value. Any failure result aborts the output.
See also:
TXMPMeta::DumpObject()

typedef struct __XMPDocOps__* XMPDocOpsRef

An "ABI safe" pointer to the internal part of an XMP document operations object. Use to pass an XMP document operations object across client DLL boundaries. See TXMPDocOps.

typedef struct __XMPFiles__* XMPFilesRef

An "ABI safe" pointer to the internal part of an XMP file-handling object. Use to pass an XMP file-handling object across client DLL boundaries. See TXMPFiles.

typedef struct __XMPIterator__* XMPIteratorRef

An "ABI safe" pointer to the internal part of an XMP iteration object. Use to pass an XMP iteration object across client DLL boundaries. See TXMPIterator.

typedef struct __XMPMeta__* XMPMetaRef

An "ABI safe" pointer to the internal part of an XMP object. Use to pass an XMP object across client DLL boundaries. See TXMPMeta::GetInternalRef().


Enumeration Type Documentation

anonymous enum

Type for yes/no/maybe answers. The values are picked to allow Boolean-like usage. The yes and values are true (non-zero), the no value is false (zero).

Enumerator:
kXMPTS_Yes  The part or parts have definitely changed.
kXMPTS_No  The part or parts have definitely not changed.
kXMPTS_Maybe  The part or parts might, or might not, have changed.

anonymous enum

Constant values for XMP_DateTime::tzSign field.

Enumerator:
kXMP_TimeWestOfUTC  Time zone is west of UTC.
kXMP_TimeIsUTC  UTC time.
kXMP_TimeEastOfUTC  Time zone is east of UTC.

anonymous enum

File format constants for use with XMPFiles.

Enumerator:
kXMP_PDFFile  Public file format constant: 'PDF '.
kXMP_PostScriptFile  Public file format constant: 'PS ', general PostScript following DSC conventions.
kXMP_EPSFile  Public file format constant: 'EPS ', encapsulated PostScript.
kXMP_JPEGFile  Public file format constant: 'JPEG'.
kXMP_JPEG2KFile  Public file format constant: 'JPX ', JPEG 2000, ISO 15444-1.
kXMP_TIFFFile  Public file format constant: 'TIFF'.
kXMP_GIFFile  Public file format constant: 'GIF '.
kXMP_PNGFile  Public file format constant: 'PNG '.
kXMP_SWFFile  Public file format constant: 'SWF '.
kXMP_FLAFile  Public file format constant: 'FLA '.
kXMP_FLVFile  Public file format constant: 'FLV '.
kXMP_MOVFile  Public file format constant: 'MOV ', Quicktime.
kXMP_AVIFile  Public file format constant: 'AVI '.
kXMP_CINFile  Public file format constant: 'CIN ', Cineon.
kXMP_WAVFile  Public file format constant: 'WAV '.
kXMP_MP3File  Public file format constant: 'MP3 '.
kXMP_SESFile  Public file format constant: 'SES ', Audition session.
kXMP_CELFile  Public file format constant: 'CEL ', Audition loop.
kXMP_MPEGFile  Public file format constant: 'MPEG'.
kXMP_MPEG2File  Public file format constant: 'MP2 '.
kXMP_MPEG4File  Public file format constant: 'MP4 ', ISO 14494-12 and -14.
kXMP_WMAVFile  Public file format constant: 'WMAV', Windows Media Audio and Video.
kXMP_AIFFFile  Public file format constant: 'AIFF'.
kXMP_P2File  Public file format constant: 'P2 ', a collection not really a single file.
kXMP_XDCAM_FAMFile  Public file format constant: 'XDCF', a collection not really a single file.
kXMP_XDCAM_SAMFile  Public file format constant: 'XDCS', a collection not really a single file.
kXMP_XDCAM_EXFile  Public file format constant: 'XDCX', a collection not really a single file.
kXMP_AVCHDFile  Public file format constant: 'AVHD', a collection not really a single file.
kXMP_SonyHDVFile  Public file format constant: 'SHDV', a collection not really a single file.
kXMP_HTMLFile  Public file format constant: 'HTML'.
kXMP_XMLFile  Public file format constant: 'XML '.
kXMP_TextFile  Public file format constant: 'text'.
kXMP_PhotoshopFile  Adobe application file format constant: 'PSD '.
kXMP_IllustratorFile  Adobe application file format constant: 'AI '.
kXMP_InDesignFile  Adobe application file format constant: 'INDD'.
kXMP_AEProjectFile  Adobe application file format constant: 'AEP '.
kXMP_AEProjTemplateFile  Adobe application file format constant: 'AET ', After Effects Project Template.
kXMP_AEFilterPresetFile  Adobe application file format constant: 'FFX '.
kXMP_EncoreProjectFile  Adobe application file format constant: 'NCOR'.
kXMP_PremiereProjectFile  Adobe application file format constant: 'PRPJ'.
kXMP_PremiereTitleFile  Adobe application file format constant: 'PRTL'.
kXMP_UCFFile  Adobe application file format constant: 'UCF ', Universal Container Format.
kXMP_UnknownFile  Unknown file format constant: ' '.

anonymous enum

Constants to allow easy testing for 16/32 bit and big/little endian.

Enumerator:
kXMP_Char8Bit  8-bit
kXMP_Char16BitBig  16-bit big-endian
kXMP_Char16BitLittle  16-bit little-endian
kXMP_Char32BitBig  32-bit big-endian
kXMP_Char32BitLittle  32-bit little-endian
kXMP_CharUnknown  Variable or not-yet-known cases.

anonymous enum

Version of the XMP_PacketInfo type.

Enumerator:
kXMP_PacketInfoVersion  Version of the XMP_PacketInfo type.

anonymous enum

Values for XMP_ThumbnailInfo::tnailFormat.

Enumerator:
kXMP_UnknownTNail  The thumbnail data has an unknown format.
kXMP_JPEGTNail  The thumbnail data is a JPEG stream, presumably compressed.
kXMP_TIFFTNail  The thumbnail data is a TIFF stream, presumably uncompressed.
kXMP_PShopTNail  The thumbnail data is in the format of Photoshop Image Resource 1036.

anonymous enum

Version of the XMP_ThumbnailInfo type.

Enumerator:
kXMP_ThumbnailInfoVersion  Version of the XMP_ThumbnailInfo type.

anonymous enum

Option bit flags for TXMPFiles::Initialize().

Enumerator:
kXMPFiles_NoQuickTimeInit  Do not initialize QuickTime, the client will.

anonymous enum

Option bit flags for TXMPFiles::GetFormatInfo().

Enumerator:
kXMPFiles_CanInjectXMP  Can inject first-time XMP into an existing file.
kXMPFiles_CanExpand  Can expand XMP or other metadata in an existing file.
kXMPFiles_CanRewrite  Can copy one file to another, writing new metadata.
kXMPFiles_PrefersInPlace  Can expand, but prefers in-place update.
kXMPFiles_CanReconcile  Supports reconciliation between XMP and other forms.
kXMPFiles_AllowsOnlyXMP  Allows access to just the XMP, ignoring other forms.
kXMPFiles_ReturnsRawPacket  File handler returns raw XMP packet information.
kXMPFiles_ReturnsTNail  File handler returns native thumbnail.
kXMPFiles_HandlerOwnsFile  The file handler does the file open and close.
kXMPFiles_AllowsSafeUpdate  The file handler allows crash-safe file updates.
kXMPFiles_NeedsReadOnlyPacket  The file format needs the XMP packet to be read-only.
kXMPFiles_UsesSidecarXMP  The file handler uses a "sidecar" file for the XMP.
kXMPFiles_FolderBasedFormat  The format is folder oriented, for example the P2 video format.

anonymous enum

Option bit flags for TXMPFiles::OpenFile().

Enumerator:
kXMPFiles_OpenForRead  Open for read-only access.
kXMPFiles_OpenForUpdate  Open for reading and writing.
kXMPFiles_OpenOnlyXMP  Only the XMP is wanted, allows space/time optimizations.
kXMPFiles_OpenCacheTNail  Cache thumbnail if possible, TXMPFiles::GetThumbnail() will be called.
kXMPFiles_OpenStrictly  Be strict about locating XMP and reconciling with other forms.
kXMPFiles_OpenUseSmartHandler  Require the use of a smart handler.
kXMPFiles_OpenUsePacketScanning  Force packet scanning, do not use a smart handler.
kXMPFiles_OpenLimitedScanning  Only packet scan files "known" to need scanning.
kXMPFiles_OpenRepairFile  Attempt to repair a file opened for update, default is to not open (throw an exception).
kXMPFiles_OpenInBackground  Set if calling from background thread.

anonymous enum

Option bit flags for TXMPFiles::CloseFile().

Enumerator:
kXMPFiles_UpdateSafely  Write into a temporary file and swap for crash safety.

anonymous enum

Option bit flags for the TXMPMeta property accessor functions.

Enumerator:
kXMP_PropValueIsURI  The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED.
kXMP_PropHasQualifiers  The property has qualifiers, includes rdf:type and xml:lang.
kXMP_PropIsQualifier  This is a qualifier for some other property, includes rdf:type and xml:lang. Qualifiers can have arbitrary structure, and can themselves have qualifiers. If the qualifier itself has a structured value, this flag is only set for the top node of the qualifier's subtree.
kXMP_PropHasLang  Implies kXMP_PropHasQualifiers, property has xml:lang.
kXMP_PropHasType  Implies kXMP_PropHasQualifiers, property has rdf:type.
kXMP_PropValueIsStruct  The value is a structure with nested fields.
kXMP_PropValueIsArray  The value is an array (RDF alt/bag/seq). The "ArrayIs..." flags identify specific types of array; default is a general unordered array, serialized using an rdf:Bag container.
kXMP_PropArrayIsUnordered  The item order does not matter.
kXMP_PropArrayIsOrdered  Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq container.
kXMP_PropArrayIsAlternate  Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an rdf:Alt container.
kXMP_PropArrayIsAltText  Implies kXMP_PropArrayIsAlternate, items are localized text. Each array element is a simple property with an xml:lang attribute.
kXMP_PropIsAlias  This property is an alias name for another property. This is only returned by TXMPMeta::GetProperty() and then only if the property name is simple, not an path expression.
kXMP_PropHasAliases  This property is the base value (actual) for a set of aliases.This is only returned by TXMPMeta::GetProperty() and then only if the property name is simple, not an path expression.
kXMP_PropIsInternal  The value of this property is "owned" by the application, and should not generally be editable in a UI.
kXMP_PropIsStable  The value of this property is not derived from the document content.
kXMP_PropIsDerived  The value of this property is derived from the document content.
kXMP_PropArrayFormMask  Property type bit-flag mask for all array types.
kXMP_PropCompositeMask  Property type bit-flag mask for composite types (array and struct).
kXMP_ImplReservedMask  Mask for bits that are reserved for transient use by the implementation.

anonymous enum

Exception code constants.

Enumerator:
kXMPErr_Unknown  Generic unknown error.
kXMPErr_TBD  Generic undefined error.
kXMPErr_Unavailable  Generic unavailable error.
kXMPErr_BadObject  Generic bad object error.
kXMPErr_BadParam  Generic bad parameter error.
kXMPErr_BadValue  Generic bad value error.
kXMPErr_AssertFailure  Generic assertion failure.
kXMPErr_EnforceFailure  Generic enforcement failure.
kXMPErr_Unimplemented  Generic unimplemented error.
kXMPErr_InternalFailure  Generic internal failure.
kXMPErr_Deprecated  Generic deprecated error.
kXMPErr_ExternalFailure  Generic external failure.
kXMPErr_UserAbort  Generic user abort error.
kXMPErr_StdException  Generic standard exception.
kXMPErr_UnknownException  Generic unknown exception.
kXMPErr_NoMemory  Generic out-of-memory error.
kXMPErr_BadSchema  Bad schema parameter.
kXMPErr_BadXPath  Bad XPath parameter.
kXMPErr_BadOptions  Bad options parameter.
kXMPErr_BadIndex  Bad index parameter.
kXMPErr_BadIterPosition  Bad iteration position.
kXMPErr_BadParse  XML parsing error.
kXMPErr_BadSerialize  Serialization error.
kXMPErr_BadFileFormat  File format error.
kXMPErr_NoFileHandler  No file handler found for format.
kXMPErr_TooLargeForJPEG  Data too large for JPEG file format.
kXMPErr_BadXML  XML format error.
kXMPErr_BadRDF  RDF format error.
kXMPErr_BadXMP  XMP format error.
kXMPErr_EmptyIterator  Empty iterator.
kXMPErr_BadUnicode  Unicode error.
kXMPErr_BadTIFF  TIFF format error.
kXMPErr_BadJPEG  JPEG format error.
kXMPErr_BadPSD  PSD format error.
kXMPErr_BadPSIR  PSIR format error.
kXMPErr_BadIPTC  IPTC format error.
kXMPErr_BadMPEG  MPEG format error.

anonymous enum

Option bit flags for the TXMPMeta property setting functions. These option bits are shared with the accessor functions:

Enumerator:
kXMP_InsertBeforeItem  Option for array item location: Insert a new item before the given index.
kXMP_InsertAfterItem  Option for array item location: Insert a new item after the given index.
kXMP_DeleteExisting  Delete any pre-existing property.
kXMP_PropValueOptionsMask  Bit-flag mask for property-value option bits.
kXMP_PropArrayLocationMask  Bit-flag mask for array-item location bits.

anonymous enum

Option bit flags for TXMPMeta::ParseFromBuffer().

Enumerator:
kXMP_RequireXMPMeta  Require a surrounding x:xmpmeta element.
kXMP_ParseMoreBuffers  This is the not last input buffer for this parse stream.
kXMP_StrictAliasing  Do not reconcile alias differences, throw an exception.

anonymous enum

Option bit flags for TXMPMeta::SerializeToBuffer().

Enumerator:
kXMP_OmitPacketWrapper  Omit the XML packet wrapper.
kXMP_ReadOnlyPacket  Default is a writeable packet.
kXMP_UseCompactFormat  Use a compact form of RDF.
kXMP_IncludeThumbnailPad  Include a padding allowance for a thumbnail image.
kXMP_ExactPacketLength  The padding parameter is the overall packet length.
kXMP_WriteAliasComments  Show aliases as XML comments.
kXMP_OmitAllFormatting  Omit all formatting whitespace.
kXMP_OmitXMPMetaElement  Omit the x:xmpmeta element surrounding the rdf:RDF element.
kXMP_EncodingMask  Bit-flag mask for encoding-type bits.
kXMP_EncodeUTF8  Use UTF8 encoding.
kXMP_EncodeUTF16Big  Use UTF16 big-endian encoding.
kXMP_EncodeUTF16Little  Use UTF16 little-endian encoding.
kXMP_EncodeUTF32Big  Use UTF32 big-endian encoding.
kXMP_EncodeUTF32Little  Use UTF13 little-endian encoding.

anonymous enum

Option bit flags for TXMPIterator construction.

Enumerator:
kXMP_IterClassMask  The low 8 bits are an enum of what data structure to iterate.
kXMP_IterProperties  Iterate the property tree of a TXMPMeta object.
kXMP_IterAliases  Iterate the global alias table.
kXMP_IterNamespaces  Iterate the global namespace table.
kXMP_IterJustChildren  Just do the immediate children of the root, default is subtree.
kXMP_IterJustLeafNodes  Just do the leaf nodes, default is all nodes in the subtree.
kXMP_IterJustLeafName  Return just the leaf part of the path, default is the full path.
kXMP_IterIncludeAliases  Include aliases, default is just actual properties.
kXMP_IterOmitQualifiers  Omit all qualifiers.

anonymous enum

Option bit flags for TXMPIterator::Skip().

Enumerator:
kXMP_IterSkipSubtree  Skip the subtree below the current node.
kXMP_IterSkipSiblings  Skip the subtree below and remaining siblings of the current node.

anonymous enum

Option bit flags for TXMPUtils::CatenateArrayItems() and TXMPUtils::SeparateArrayItems(). These option bits are shared with the accessor functions:

Enumerator:
kXMPUtil_AllowCommas  Allow commas in item values, default is separator.

anonymous enum

Option bit flags for TXMPUtils::RemoveProperties() and TXMPUtils::AppendProperties().

Enumerator:
kXMPUtil_DoAllProperties  Do all properties, default is just external properties.
kXMPUtil_ReplaceOldValues  Replace existing values, default is to leave them.
kXMPUtil_DeleteEmptyValues  Delete properties if the new value is empty.
kXMPUtil_IncludeAliases  Include aliases, default is just actual properties.


XMP-Toolkit-SDK-4.4.2 documentation generated by doxygen 1.5.6