00001 #ifndef __XMP_Const_h__
00002 #define __XMP_Const_h__ 1
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "XMP_Environment.h"
00013
00014 #include <stddef.h>
00015
00016 #if XMP_MacBuild // ! No stdint.h on Windows and some UNIXes.
00017 #include <stdint.h>
00018 #endif
00019
00020 #if __cplusplus
00021 extern "C" {
00022 #endif
00023
00024
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #if XMP_MacBuild
00038
00039 typedef int8_t XMP_Int8;
00040 typedef int16_t XMP_Int16;
00041 typedef int32_t XMP_Int32;
00042 typedef int64_t XMP_Int64;
00043
00044 typedef uint8_t XMP_Uns8;
00045 typedef uint16_t XMP_Uns16;
00046 typedef uint32_t XMP_Uns32;
00047 typedef uint64_t XMP_Uns64;
00048
00049 #else
00050
00051 typedef signed char XMP_Int8;
00052 typedef signed short XMP_Int16;
00053 typedef signed long XMP_Int32;
00054 typedef signed long long XMP_Int64;
00055
00056 typedef unsigned char XMP_Uns8;
00057 typedef unsigned short XMP_Uns16;
00058 typedef unsigned long XMP_Uns32;
00059 typedef unsigned long long XMP_Uns64;
00060
00061 #endif
00062
00063 typedef XMP_Uns8 XMP_Bool;
00064
00067 typedef struct __XMPMeta__ * XMPMetaRef;
00068
00071 typedef struct __XMPIterator__ * XMPIteratorRef;
00072
00075 typedef struct __XMPDocOps__ * XMPDocOpsRef;
00076
00079 typedef struct __XMPFiles__ * XMPFilesRef;
00080
00081
00082
00085
00089
00093
00097
00104
00105 typedef const char * XMP_StringPtr;
00106 typedef XMP_Uns32 XMP_StringLen;
00107 typedef XMP_Int32 XMP_Index;
00108 typedef XMP_Uns32 XMP_OptionBits;
00109
00114
00119
00120 #define kXMP_TrueStr "True" // Serialized XMP spellings, not for the type bool.
00121 #define kXMP_FalseStr "False"
00122
00125 enum {
00127 kXMPTS_Yes = 1,
00129 kXMPTS_No = 0,
00131 kXMPTS_Maybe = -1
00132 };
00133 typedef XMP_Int8 XMP_TriState;
00134
00136
00137
00138
00158
00159 struct XMP_DateTime {
00160
00162 XMP_Int32 year;
00163
00165 XMP_Int32 month;
00166
00168 XMP_Int32 day;
00169
00171 XMP_Int32 hour;
00172
00174 XMP_Int32 minute;
00175
00177 XMP_Int32 second;
00178
00181 XMP_Int32 tzSign;
00182
00184 XMP_Int32 tzHour;
00185
00187 XMP_Int32 tzMinute;
00188
00190 XMP_Int32 nanoSecond;
00191
00192 };
00193
00195 enum {
00197 kXMP_TimeWestOfUTC = -1,
00199 kXMP_TimeIsUTC = 0,
00201 kXMP_TimeEastOfUTC = +1
00202 };
00203
00204
00205
00206
00207
00242
00243 #define kXMP_NS_XMP "http://ns.adobe.com/xap/1.0/"
00244
00245 #define kXMP_NS_XMP_Rights "http://ns.adobe.com/xap/1.0/rights/"
00246 #define kXMP_NS_XMP_MM "http://ns.adobe.com/xap/1.0/mm/"
00247 #define kXMP_NS_XMP_BJ "http://ns.adobe.com/xap/1.0/bj/"
00248
00249 #define kXMP_NS_PDF "http://ns.adobe.com/pdf/1.3/"
00250 #define kXMP_NS_Photoshop "http://ns.adobe.com/photoshop/1.0/"
00251 #define kXMP_NS_PSAlbum "http://ns.adobe.com/album/1.0/"
00252 #define kXMP_NS_EXIF "http://ns.adobe.com/exif/1.0/"
00253 #define kXMP_NS_EXIF_Aux "http://ns.adobe.com/exif/1.0/aux/"
00254 #define kXMP_NS_TIFF "http://ns.adobe.com/tiff/1.0/"
00255 #define kXMP_NS_PNG "http://ns.adobe.com/png/1.0/"
00256 #define kXMP_NS_SWF "http://ns.adobe.com/swf/1.0/"
00257 #define kXMP_NS_JPEG "http://ns.adobe.com/jpeg/1.0/"
00258 #define kXMP_NS_JP2K "http://ns.adobe.com/jp2k/1.0/"
00259 #define kXMP_NS_CameraRaw "http://ns.adobe.com/camera-raw-settings/1.0/"
00260 #define kXMP_NS_DM "http://ns.adobe.com/xmp/1.0/DynamicMedia/"
00261 #define kXMP_NS_ASF "http://ns.adobe.com/asf/1.0/"
00262 #define kXMP_NS_WAV "http://ns.adobe.com/xmp/wav/1.0/"
00263
00264 #define kXMP_NS_XMP_Note "http://ns.adobe.com/xmp/note/"
00265
00266 #define kXMP_NS_AdobeStockPhoto "http://ns.adobe.com/StockPhoto/1.0/"
00267 #define kXMP_NS_CreatorAtom "http://ns.adobe.com/creatorAtom/1.0/"
00268
00294
00295 #define kXMP_NS_XMP_IdentifierQual "http://ns.adobe.com/xmp/Identifier/qual/1.0/"
00296 #define kXMP_NS_XMP_Dimensions "http://ns.adobe.com/xap/1.0/sType/Dimensions#"
00297 #define kXMP_NS_XMP_Text "http://ns.adobe.com/xap/1.0/t/"
00298 #define kXMP_NS_XMP_PagedFile "http://ns.adobe.com/xap/1.0/t/pg/"
00299 #define kXMP_NS_XMP_Graphics "http://ns.adobe.com/xap/1.0/g/"
00300 #define kXMP_NS_XMP_Image "http://ns.adobe.com/xap/1.0/g/img/"
00301 #define kXMP_NS_XMP_Font "http://ns.adobe.com/xap/1.0/sType/Font#"
00302 #define kXMP_NS_XMP_ResourceEvent "http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
00303 #define kXMP_NS_XMP_ResourceRef "http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
00304 #define kXMP_NS_XMP_ST_Version "http://ns.adobe.com/xap/1.0/sType/Version#"
00305 #define kXMP_NS_XMP_ST_Job "http://ns.adobe.com/xap/1.0/sType/Job#"
00306 #define kXMP_NS_XMP_ManifestItem "http://ns.adobe.com/xap/1.0/sType/ManifestItem#"
00307
00308
00309 #define kXMP_NS_XMP_T "http://ns.adobe.com/xap/1.0/t/"
00310 #define kXMP_NS_XMP_T_PG "http://ns.adobe.com/xap/1.0/t/pg/"
00311 #define kXMP_NS_XMP_G_IMG "http://ns.adobe.com/xap/1.0/g/img/"
00312
00329
00330 #define kXMP_NS_DC "http://purl.org/dc/elements/1.1/"
00331
00332 #define kXMP_NS_IPTCCore "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/"
00333
00334 #define kXMP_NS_DICOM "http://ns.adobe.com/DICOM/"
00335
00336 #define kXMP_NS_PDFA_Schema "http://www.aiim.org/pdfa/ns/schema#"
00337 #define kXMP_NS_PDFA_Property "http://www.aiim.org/pdfa/ns/property#"
00338 #define kXMP_NS_PDFA_Type "http://www.aiim.org/pdfa/ns/type#"
00339 #define kXMP_NS_PDFA_Field "http://www.aiim.org/pdfa/ns/field#"
00340 #define kXMP_NS_PDFA_ID "http://www.aiim.org/pdfa/ns/id/"
00341 #define kXMP_NS_PDFA_Extension "http://www.aiim.org/pdfa/ns/extension/"
00342
00343 #define kXMP_NS_PDFX "http://ns.adobe.com/pdfx/1.3/"
00344 #define kXMP_NS_PDFX_ID "http://www.npes.org/pdfx/ns/id/"
00345
00346 #define kXMP_NS_RDF "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
00347 #define kXMP_NS_XML "http://www.w3.org/XML/1998/namespace"
00348
00349
00350
00351
00352
00366
00367 #define kXMP_ArrayLastItem ((XMP_Index)(-1L))
00368 #define kXMP_UseNullTermination ((XMP_StringLen)(~0UL))
00369 #define kXMP_NoOptions ((XMP_OptionBits)0UL)
00370
00403
00404 #define XMP_SetOption(var,opt) var |= (opt)
00405 #define XMP_ClearOption(var,opt) var &= ~(opt)
00406 #define XMP_TestOption(var,opt) (((var) & (opt)) != 0)
00407 #define XMP_OptionIsSet(var,opt) (((var) & (opt)) != 0)
00408 #define XMP_OptionIsClear(var,opt) (((var) & (opt)) == 0)
00409
00462
00463 #define XMP_PropIsSimple(opt) (((opt) & kXMP_PropCompositeMask) == 0)
00464 #define XMP_PropIsStruct(opt) (((opt) & kXMP_PropValueIsStruct) != 0)
00465 #define XMP_PropIsArray(opt) (((opt) & kXMP_PropValueIsArray) != 0)
00466
00467 #define XMP_ArrayIsUnordered(opt) (((opt) & kXMP_PropArrayIsOrdered) == 0)
00468 #define XMP_ArrayIsOrdered(opt) (((opt) & kXMP_PropArrayIsOrdered) != 0)
00469 #define XMP_ArrayIsAlternate(opt) (((opt) & kXMP_PropArrayIsAlternate) != 0)
00470 #define XMP_ArrayIsAltText(opt) (((opt) & kXMP_PropArrayIsAltText) != 0)
00471
00472 #define XMP_PropHasQualifiers(opt) (((opt) & kXMP_PropHasQualifiers) != 0)
00473 #define XMP_PropIsQualifier(opt) (((opt) & kXMP_PropIsQualifier) != 0)
00474 #define XMP_PropHasLang(opt) (((opt) & kXMP_PropHasLang) != 0)
00475
00476 #define XMP_NodeIsSchema(opt) (((opt) & kXMP_SchemaNode) != 0)
00477 #define XMP_PropIsAlias(opt) (((opt) & kXMP_PropIsAlias) != 0)
00478
00479
00480
00482 enum {
00483
00485 kXMP_PropValueIsURI = 0x00000002UL,
00486
00487
00488
00489
00491 kXMP_PropHasQualifiers = 0x00000010UL,
00492
00497 kXMP_PropIsQualifier = 0x00000020UL,
00498
00500 kXMP_PropHasLang = 0x00000040UL,
00501
00503 kXMP_PropHasType = 0x00000080UL,
00504
00505
00506
00507
00509 kXMP_PropValueIsStruct = 0x00000100UL,
00510
00513 kXMP_PropValueIsArray = 0x00000200UL,
00514
00516 kXMP_PropArrayIsUnordered = kXMP_PropValueIsArray,
00517
00519 kXMP_PropArrayIsOrdered = 0x00000400UL,
00520
00522 kXMP_PropArrayIsAlternate = 0x00000800UL,
00523
00524
00525
00526
00529 kXMP_PropArrayIsAltText = 0x00001000UL,
00530
00531
00532
00533
00534
00535
00536
00539 kXMP_PropIsAlias = 0x00010000UL,
00540
00543 kXMP_PropHasAliases = 0x00020000UL,
00544
00546 kXMP_PropIsInternal = 0x00040000UL,
00547
00549 kXMP_PropIsStable = 0x00100000UL,
00550
00552 kXMP_PropIsDerived = 0x00200000UL,
00553
00554
00555
00556
00557
00558
00559
00560
00562 kXMP_PropArrayFormMask = kXMP_PropValueIsArray | kXMP_PropArrayIsOrdered | kXMP_PropArrayIsAlternate | kXMP_PropArrayIsAltText,
00563
00565 kXMP_PropCompositeMask = kXMP_PropValueIsStruct | kXMP_PropArrayFormMask,
00566
00568 kXMP_ImplReservedMask = 0x70000000L
00569
00570 };
00571
00572 #define kXMP_SchemaNode ((XMP_OptionBits)0x80000000UL)
00573
00582 enum {
00583
00585 kXMP_InsertBeforeItem = 0x00004000UL,
00586
00588 kXMP_InsertAfterItem = 0x00008000UL,
00589
00591 kXMP_DeleteExisting = 0x20000000UL,
00592
00594 kXMP_PropValueOptionsMask = kXMP_PropValueIsURI,
00595
00597 kXMP_PropArrayLocationMask = kXMP_InsertBeforeItem | kXMP_InsertAfterItem
00598
00599 };
00600
00601
00602
00604 enum {
00605
00607 kXMP_RequireXMPMeta = 0x0001UL,
00608
00610 kXMP_ParseMoreBuffers = 0x0002UL,
00611
00613 kXMP_StrictAliasing = 0x0004UL
00614
00615 };
00616
00618 enum {
00619
00620
00621
00623 kXMP_OmitPacketWrapper = 0x0010UL,
00624
00626 kXMP_ReadOnlyPacket = 0x0020UL,
00627
00629 kXMP_UseCompactFormat = 0x0040UL,
00630
00632 kXMP_IncludeThumbnailPad = 0x0100UL,
00633
00635 kXMP_ExactPacketLength = 0x0200UL,
00636
00638 kXMP_WriteAliasComments = 0x0400UL,
00639
00641 kXMP_OmitAllFormatting = 0x0800UL,
00642
00644 kXMP_OmitXMPMetaElement = 0x1000UL,
00645
00646 _XMP_LittleEndian_Bit = 0x0001UL,
00647 _XMP_UTF16_Bit = 0x0002UL,
00648 _XMP_UTF32_Bit = 0x0004UL,
00649
00651 kXMP_EncodingMask = 0x0007UL,
00652
00654 kXMP_EncodeUTF8 = 0UL,
00655
00657 kXMP_EncodeUTF16Big = _XMP_UTF16_Bit,
00658
00660 kXMP_EncodeUTF16Little = _XMP_UTF16_Bit | _XMP_LittleEndian_Bit,
00661
00663 kXMP_EncodeUTF32Big = _XMP_UTF32_Bit,
00664
00666 kXMP_EncodeUTF32Little = _XMP_UTF32_Bit | _XMP_LittleEndian_Bit
00667
00668 };
00669
00670
00671
00673 enum {
00674
00676 kXMP_IterClassMask = 0x00FFUL,
00677
00679 kXMP_IterProperties = 0x0000UL,
00680
00682 kXMP_IterAliases = 0x0001UL,
00683
00685 kXMP_IterNamespaces = 0x0002UL,
00686
00688 kXMP_IterJustChildren = 0x0100UL,
00689
00691 kXMP_IterJustLeafNodes = 0x0200UL,
00692
00694 kXMP_IterJustLeafName = 0x0400UL,
00695
00697 kXMP_IterIncludeAliases = 0x0800UL,
00698
00700 kXMP_IterOmitQualifiers = 0x1000UL
00701
00702 };
00703
00705 enum {
00706
00708 kXMP_IterSkipSubtree = 0x0001UL,
00709
00711 kXMP_IterSkipSiblings = 0x0002UL
00712
00713 };
00714
00715
00722 enum {
00723
00725 kXMPUtil_AllowCommas = 0x10000000UL
00726
00727 };
00728
00730 enum {
00731
00733 kXMPUtil_DoAllProperties = 0x0001UL,
00734
00736 kXMPUtil_ReplaceOldValues = 0x0002UL,
00737
00739 kXMPUtil_DeleteEmptyValues = 0x0004UL,
00740
00742 kXMPUtil_IncludeAliases = 0x0800UL
00743
00744 };
00745
00746
00747
00748
00749
00751 enum {
00752
00753
00754
00755
00756
00757
00758
00759
00761 kXMP_PDFFile = 0x50444620UL,
00763 kXMP_PostScriptFile = 0x50532020UL,
00765 kXMP_EPSFile = 0x45505320UL,
00766
00768 kXMP_JPEGFile = 0x4A504547UL,
00770 kXMP_JPEG2KFile = 0x4A505820UL,
00772 kXMP_TIFFFile = 0x54494646UL,
00774 kXMP_GIFFile = 0x47494620UL,
00776 kXMP_PNGFile = 0x504E4720UL,
00777
00779 kXMP_SWFFile = 0x53574620UL,
00781 kXMP_FLAFile = 0x464C4120UL,
00783 kXMP_FLVFile = 0x464C5620UL,
00784
00786 kXMP_MOVFile = 0x4D4F5620UL,
00788 kXMP_AVIFile = 0x41564920UL,
00790 kXMP_CINFile = 0x43494E20UL,
00792 kXMP_WAVFile = 0x57415620UL,
00794 kXMP_MP3File = 0x4D503320UL,
00796 kXMP_SESFile = 0x53455320UL,
00798 kXMP_CELFile = 0x43454C20UL,
00800 kXMP_MPEGFile = 0x4D504547UL,
00802 kXMP_MPEG2File = 0x4D503220UL,
00804 kXMP_MPEG4File = 0x4D503420UL,
00806 kXMP_WMAVFile = 0x574D4156UL,
00808 kXMP_AIFFFile = 0x41494646UL,
00810 kXMP_P2File = 0x50322020UL,
00812 kXMP_XDCAM_FAMFile = 0x58444346UL,
00814 kXMP_XDCAM_SAMFile = 0x58444353UL,
00816 kXMP_XDCAM_EXFile = 0x58444358UL,
00818 kXMP_AVCHDFile = 0x41564844UL,
00820 kXMP_SonyHDVFile = 0x53484456UL,
00821
00823 kXMP_HTMLFile = 0x48544D4CUL,
00825 kXMP_XMLFile = 0x584D4C20UL,
00827 kXMP_TextFile = 0x74657874UL,
00828
00829
00830
00831
00833 kXMP_PhotoshopFile = 0x50534420UL,
00835 kXMP_IllustratorFile = 0x41492020UL,
00837 kXMP_InDesignFile = 0x494E4444UL,
00839 kXMP_AEProjectFile = 0x41455020UL,
00841 kXMP_AEProjTemplateFile = 0x41455420UL,
00843 kXMP_AEFilterPresetFile = 0x46465820UL,
00845 kXMP_EncoreProjectFile = 0x4E434F52UL,
00847 kXMP_PremiereProjectFile = 0x5052504AUL,
00849 kXMP_PremiereTitleFile = 0x5052544CUL,
00851 kXMP_UCFFile = 0x55434620UL,
00852
00853
00854
00855
00857 kXMP_UnknownFile = 0x20202020UL
00858
00859 };
00860
00862 typedef XMP_Uns32 XMP_FileFormat;
00863
00864
00865
00867 enum {
00868 kXMP_CharLittleEndianMask = 1,
00869 kXMP_Char16BitMask = 2,
00870 kXMP_Char32BitMask = 4
00871 };
00872
00874 enum {
00876 kXMP_Char8Bit = 0,
00878 kXMP_Char16BitBig = kXMP_Char16BitMask,
00880 kXMP_Char16BitLittle = kXMP_Char16BitMask | kXMP_CharLittleEndianMask,
00882 kXMP_Char32BitBig = kXMP_Char32BitMask,
00884 kXMP_Char32BitLittle = kXMP_Char32BitMask | kXMP_CharLittleEndianMask,
00886 kXMP_CharUnknown = 1
00887 };
00888
00921
00922 #define XMP_CharFormIs16Bit(f) ( ((int)(f) & kXMP_Char16BitMask) != 0 )
00923 #define XMP_CharFormIs32Bit(f) ( ((int)(f) & kXMP_Char32BitMask) != 0 )
00924 #define XMP_CharFormIsBigEndian(f) ( ((int)(f) & kXMP_CharLittleEndianMask) == 0 )
00925 #define XMP_CharFormIsLittleEndian(f) ( ((int)(f) & kXMP_CharLittleEndianMask) != 0 )
00926 #define XMP_GetCharSize(f) ( ((int)(f)&6) == 0 ? 1 : (int)(f)&6 )
00927 #define XMP_CharToSerializeForm(cf) ( (XMP_OptionBits)(cf) )
00928 #define XMP_CharFromSerializeForm(sf) ( (XMP_Uns8)(sf) )
00929
00932 #define kXMPFiles_UnknownOffset ((XMP_Int64)-1)
00933
00936 #define kXMPFiles_UnknownLength ((XMP_Int32)-1)
00937
00939 struct XMP_PacketInfo {
00940
00942 XMP_Int64 offset;
00944 XMP_Int32 length;
00946 XMP_Int32 padSize;
00947
00949 XMP_Uns8 charForm;
00951 XMP_Bool writeable;
00953 XMP_Bool hasWrapper;
00954
00956 XMP_Uns8 pad;
00957
00959 XMP_PacketInfo() : offset(kXMPFiles_UnknownOffset), length(kXMPFiles_UnknownLength),
00960 padSize(0), charForm(0), writeable(0), hasWrapper(0), pad(0) {};
00961
00962 };
00963
00965 enum {
00967 kXMP_PacketInfoVersion = 3
00968 };
00969
00970
00971
00973 enum {
00975 kXMP_UnknownTNail = 0,
00977 kXMP_JPEGTNail = 1,
00979 kXMP_TIFFTNail = 2,
00981 kXMP_PShopTNail = 3
00982 };
00983
00985 struct XMP_ThumbnailInfo {
00986
00988 XMP_FileFormat fileFormat;
00990 XMP_Uns32 fullWidth, fullHeight;
00992 XMP_Uns32 tnailWidth, tnailHeight;
00994
00995 XMP_Uns16 fullOrientation, tnailOrientation;
00997 const XMP_Uns8 * tnailImage;
00999 XMP_Uns32 tnailSize;
01001 XMP_Uns8 tnailFormat;
01002
01004 XMP_Uns8 pad1, pad2, pad3;
01005
01007 XMP_ThumbnailInfo() : fileFormat(kXMP_UnknownFile), fullWidth(0), fullHeight(0),
01008 tnailWidth(0), tnailHeight(0), fullOrientation(0), tnailOrientation(0),
01009 tnailImage(0), tnailSize(0), tnailFormat(kXMP_UnknownTNail) {};
01010
01011 };
01012
01014 enum {
01016 kXMP_ThumbnailInfoVersion = 1
01017 };
01018
01019
01020
01022 enum {
01024 kXMPFiles_NoQuickTimeInit = 0x0001
01025 };
01026
01028 enum {
01029
01031 kXMPFiles_CanInjectXMP = 0x00000001,
01032
01034 kXMPFiles_CanExpand = 0x00000002,
01035
01037 kXMPFiles_CanRewrite = 0x00000004,
01038
01040 kXMPFiles_PrefersInPlace = 0x00000008,
01041
01043 kXMPFiles_CanReconcile = 0x00000010,
01044
01046 kXMPFiles_AllowsOnlyXMP = 0x00000020,
01047
01049 kXMPFiles_ReturnsRawPacket = 0x00000040,
01050
01052 kXMPFiles_ReturnsTNail = 0x00000080,
01053
01055 kXMPFiles_HandlerOwnsFile = 0x00000100,
01056
01058 kXMPFiles_AllowsSafeUpdate = 0x00000200,
01059
01061 kXMPFiles_NeedsReadOnlyPacket = 0x00000400,
01062
01064 kXMPFiles_UsesSidecarXMP = 0x00000800,
01065
01067 kXMPFiles_FolderBasedFormat = 0x00001000
01068
01069 };
01070
01072 enum {
01073
01075 kXMPFiles_OpenForRead = 0x00000001,
01076
01078 kXMPFiles_OpenForUpdate = 0x00000002,
01079
01081 kXMPFiles_OpenOnlyXMP = 0x00000004,
01082
01084 kXMPFiles_OpenCacheTNail = 0x00000008,
01085
01087 kXMPFiles_OpenStrictly = 0x00000010,
01088
01090 kXMPFiles_OpenUseSmartHandler = 0x00000020,
01091
01093 kXMPFiles_OpenUsePacketScanning = 0x00000040,
01094
01096 kXMPFiles_OpenLimitedScanning = 0x00000080,
01097
01099 kXMPFiles_OpenRepairFile = 0x00000100,
01100
01102 kXMPFiles_OpenInBackground = 0x10000000
01103
01104 };
01105
01106
01107
01108
01109
01111 enum {
01113 kXMPFiles_UpdateSafely = 0x0001
01114 };
01115
01116
01117
01118
01119
01133
01135 class XMP_Error {
01136 public:
01137
01144 XMP_Error ( XMP_Int32 _id, XMP_StringPtr _errMsg ) : id(_id), errMsg(_errMsg) {};
01145
01147 inline XMP_Int32 GetID() const { return id; };
01148
01150 inline XMP_StringPtr GetErrMsg() const { return errMsg; };
01151
01152 private:
01154 XMP_Int32 id;
01157 XMP_StringPtr errMsg;
01158 };
01159
01161 enum {
01162
01163
01164
01165
01167 kXMPErr_Unknown = 0,
01169 kXMPErr_TBD = 1,
01171 kXMPErr_Unavailable = 2,
01173 kXMPErr_BadObject = 3,
01175 kXMPErr_BadParam = 4,
01177 kXMPErr_BadValue = 5,
01179 kXMPErr_AssertFailure = 6,
01181 kXMPErr_EnforceFailure = 7,
01183 kXMPErr_Unimplemented = 8,
01185 kXMPErr_InternalFailure = 9,
01187 kXMPErr_Deprecated = 10,
01189 kXMPErr_ExternalFailure = 11,
01191 kXMPErr_UserAbort = 12,
01193 kXMPErr_StdException = 13,
01195 kXMPErr_UnknownException = 14,
01197 kXMPErr_NoMemory = 15,
01198
01199
01200
01201
01203 kXMPErr_BadSchema = 101,
01205 kXMPErr_BadXPath = 102,
01207 kXMPErr_BadOptions = 103,
01209 kXMPErr_BadIndex = 104,
01211 kXMPErr_BadIterPosition = 105,
01213 kXMPErr_BadParse = 106,
01215 kXMPErr_BadSerialize = 107,
01217 kXMPErr_BadFileFormat = 108,
01219 kXMPErr_NoFileHandler = 109,
01221 kXMPErr_TooLargeForJPEG = 110,
01222
01223
01224
01225
01227 kXMPErr_BadXML = 201,
01229 kXMPErr_BadRDF = 202,
01231 kXMPErr_BadXMP = 203,
01233 kXMPErr_EmptyIterator = 204,
01235 kXMPErr_BadUnicode = 205,
01237 kXMPErr_BadTIFF = 206,
01239 kXMPErr_BadJPEG = 207,
01241 kXMPErr_BadPSD = 208,
01243 kXMPErr_BadPSIR = 209,
01245 kXMPErr_BadIPTC = 210,
01247 kXMPErr_BadMPEG = 211
01248
01249 };
01250
01252
01253
01254
01255
01256
01257
01260
01265
01266 typedef XMP_Int32 XMP_Status;
01267
01268
01283
01284 typedef XMP_Status (* XMP_TextOutputProc) ( void * refCon,
01285 XMP_StringPtr buffer,
01286 XMP_StringLen bufferSize );
01287
01288
01297
01298 typedef bool (* XMP_AbortProc) ( void * arg );
01299
01301
01302
01303
01304
01305
01307 typedef struct XMP_VersionInfo {
01309 XMP_Uns8 major;
01311 XMP_Uns8 minor;
01313 XMP_Uns8 micro;
01315 XMP_Bool isDebug;
01317 XMP_Uns32 build;
01319 XMP_Uns32 flags;
01321 XMP_StringPtr message;
01322 } XMP_VersionInfo;
01323
01324
01325
01326 #if __cplusplus
01327 }
01328 #endif
01329
01330 #endif // __XMP_Const_h__