16e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 26e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim// Copyright 2006-2012 Adobe Systems Incorporated 36e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim// All Rights Reserved. 46e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim// 56e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim// NOTICE: Adobe permits you to use, modify, and distribute this file in 66e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim// accordance with the terms of the Adobe license agreement accompanying it. 76e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 86e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 96e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_xmp_sdk.h#2 $ */ 106e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/* $DateTime: 2012/05/31 09:29:29 $ */ 116e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/* $Change: 832505 $ */ 126e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/* $Author: tknoll $ */ 136e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 146e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 156e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 166e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim#ifndef __dng_xmp_sdk__ 176e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim#define __dng_xmp_sdk__ 186e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 196e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 206e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 216e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim#include "dng_auto_ptr.h" 226e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim#include "dng_classes.h" 236e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim#include "dng_flags.h" 246e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim#include "dng_types.h" 256e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 26327c6d5fa60ff1df8a421499edff3c6445a9d2e6Kinan Hakim#if qDNGUseXMP 27327c6d5fa60ff1df8a421499edff3c6445a9d2e6Kinan Hakim 286e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 296e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 306e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_TIFF; 316e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_EXIF; 326e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_PHOTOSHOP; 336e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_XAP; 346e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_XAP_RIGHTS; 356e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_DC; 366e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_XMP_NOTE; 376e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_MM; 386e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 396e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_CRS; 406e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_CRSS; 416e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 426e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_LCP; 436e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 446e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_AUX; 456e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 466e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_IPTC; 476e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_IPTC_EXT; 486e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 496e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_CRX; 506e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 516e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimextern const char *XMP_NS_DNG; 526e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 536e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 546e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 556e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimclass dng_xmp_private; 566e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 576e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 586e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 596e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimtypedef bool (IteratePathsCallback) (const char *ns, 606e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path, 616e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void *callbackData); 626e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 636e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 646e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 656e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimstruct dng_xmp_namespace 666e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim { 676e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char * fullName; 686e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char * shortName; 696e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim }; 706e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 716e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 726e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 736e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakimclass dng_xmp_sdk 746e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim { 756e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 766e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim private: 776e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 786e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_xmp_private *fPrivate; 796e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 806e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim public: 816e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 826e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_xmp_sdk (); 836e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 846e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_xmp_sdk (const dng_xmp_sdk &sdk); 856e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 866e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim virtual ~dng_xmp_sdk (); 876e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 886e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim static void InitializeSDK (dng_xmp_namespace * extraNamespaces = NULL, 896e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *software = NULL); 906e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 916e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim static void TerminateSDK (); 926e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 936e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool HasMeta () const; 946e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 956e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void * GetPrivateMeta (); 966e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 976e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void Parse (dng_host &host, 986e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *buffer, 996e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim uint32 count); 1006e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1016e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool Exists (const char *ns, 1026e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path) const; 1036e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1046e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void AppendArrayItem (const char *ns, 1056e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *arrayName, 1066e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *itemValue, 1076e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool isBag = true, 1086e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool propIsStruct = false); 1096e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1106e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim int32 CountArrayItems (const char *ns, 1116e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path) const; 1126e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1136e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool HasNameSpace (const char *ns) const; 1146e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1156e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void Remove (const char *ns, 1166e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path); 1176e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1186e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void RemoveProperties (const char *ns); 1196e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1206e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool IsEmptyString (const char *ns, 1216e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path); 1226e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1236e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool IsEmptyArray (const char *ns, 1246e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path); 1256e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1266e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void ComposeArrayItemPath (const char *ns, 1276e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *arrayName, 1286e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim int32 itemNumber, 1296e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_string &s) const; 1306e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1316e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void ComposeStructFieldPath (const char *ns, 1326e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *structName, 1336e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *fieldNS, 1346e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *fieldName, 1356e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_string &s) const; 1366e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1376e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool GetNamespacePrefix (const char *uri, 1386e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_string &s) const; 1396e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1406e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool GetString (const char *ns, 1416e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path, 1426e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_string &s) const; 1436e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1446e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void ValidateStringList (const char *ns, 1456e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path); 1466e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1476e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool GetStringList (const char *ns, 1486e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path, 1496e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_string_list &list) const; 1506e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1516e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool GetAltLangDefault (const char *ns, 1526e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path, 1536e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_string &s) const; 1546e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1556e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool GetStructField (const char *ns, 1566e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path, 1576e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *fieldNS, 1586e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *fieldName, 1596e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_string &s) const; 1606e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1616e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void Set (const char *ns, 1626e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path, 1636e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *text); 1646e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1656e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void SetString (const char *ns, 1666e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path, 1676e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const dng_string &s); 1686e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1696e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void SetStringList (const char *ns, 1706e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path, 1716e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const dng_string_list &list, 1726e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool isBag); 1736e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1746e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void SetAltLangDefault (const char *ns, 1756e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path, 1766e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const dng_string &s); 1776e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1786e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void SetStructField (const char *ns, 1796e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *path, 1806e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *fieldNS, 1816e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *fieldName, 1826e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *text); 1836e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1846e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void DeleteStructField (const char *ns, 1856e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *structName, 1866e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *fieldNS, 1876e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *fieldName); 1886e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1896e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_memory_block * Serialize (dng_memory_allocator &allocator, 1906e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool asPacket, 1916e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim uint32 targetBytes, 1926e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim uint32 padBytes, 1936e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool forJPEG, 1946e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool compact) const; 1956e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 1966e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void PackageForJPEG (dng_memory_allocator &allocator, 1976e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim AutoPtr<dng_memory_block> &stdBlock, 1986e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim AutoPtr<dng_memory_block> &extBlock, 1996e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_string &extDigest) const; 2006e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2016e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void MergeFromJPEG (const dng_xmp_sdk *xmp); 2026e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2036e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void ReplaceXMP (dng_xmp_sdk *xmp); 2046e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2056e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool IteratePaths (IteratePathsCallback *callback, 2066e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void *callbackData = NULL, 2076e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *startNS = 0, 2086e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *startingPath = 0); 2096e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2106e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim #if qDNGXMPDocOps 2116e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2126e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void DocOpsOpenXMP (const char *srcMIMI); 2136e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2146e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void DocOpsPrepareForSave (const char *srcMIMI, 2156e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim const char *dstMIMI, 2166e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim bool newPath = true); 2176e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2186e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void DocOpsUpdateMetadata (const char *srcMIMI); 2196e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2206e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim #endif 2216e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2226e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim private: 2236e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2246e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void ClearMeta (); 2256e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2266e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void MakeMeta (); 2276e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2286e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim void NeedMeta (); 2296e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2306e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim // Hidden assignment operator. 2316e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2326e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim dng_xmp_sdk & operator= (const dng_xmp_sdk &sdk); 2336e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2346e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim }; 2356e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 236327c6d5fa60ff1df8a421499edff3c6445a9d2e6Kinan Hakim#endif 2376e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 2386e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2396e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim#endif 2406e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim 2416e09dfbee0b1643a5cb2b32d0399c1a0c69551a0Kinan Hakim/*****************************************************************************/ 242