diff options
Diffstat (limited to 'source/dng_iptc.h')
-rw-r--r-- | source/dng_iptc.h | 344 |
1 files changed, 172 insertions, 172 deletions
diff --git a/source/dng_iptc.h b/source/dng_iptc.h index 82ebaeb..3fcec27 100644 --- a/source/dng_iptc.h +++ b/source/dng_iptc.h @@ -1,172 +1,172 @@ -/*****************************************************************************/
-// Copyright 2006-2008 Adobe Systems Incorporated
-// All Rights Reserved.
-//
-// NOTICE: Adobe permits you to use, modify, and distribute this file in
-// accordance with the terms of the Adobe license agreement accompanying it.
-/*****************************************************************************/
-
-/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_iptc.h#1 $ */
-/* $DateTime: 2012/05/30 13:28:51 $ */
-/* $Change: 832332 $ */
-/* $Author: tknoll $ */
-
-/** \file
- * Support for IPTC metadata within DNG files.
- */
-
-/*****************************************************************************/
-
-#ifndef __dng_iptc__
-#define __dng_iptc__
-
-/*****************************************************************************/
-
-#include "dng_date_time.h"
-#include "dng_string.h"
-#include "dng_string_list.h"
-
-/*****************************************************************************/
-
-/// \brief Class for reading and holding IPTC metadata associated with a DNG file.
-///
-/// See the \ref spec_iptc "IPTC specification"
-/// for information on member fields of this class.
-
-class dng_iptc
- {
-
- public:
-
- dng_string fTitle;
-
- int32 fUrgency;
-
- dng_string fCategory;
-
- dng_string_list fSupplementalCategories;
-
- dng_string_list fKeywords;
-
- dng_string fInstructions;
-
- dng_date_time_info fDateTimeCreated;
-
- dng_date_time_info fDigitalCreationDateTime;
-
- dng_string_list fAuthors;
-
- dng_string fAuthorsPosition;
-
- dng_string fCity;
- dng_string fState;
- dng_string fCountry;
- dng_string fCountryCode;
-
- dng_string fLocation;
-
- dng_string fTransmissionReference;
-
- dng_string fHeadline;
-
- dng_string fCredit;
-
- dng_string fSource;
-
- dng_string fCopyrightNotice;
-
- dng_string fDescription;
- dng_string fDescriptionWriter;
-
- protected:
-
- enum DataSet
- {
- kRecordVersionSet = 0,
- kObjectNameSet = 5,
- kUrgencySet = 10,
- kCategorySet = 15,
- kSupplementalCategoriesSet = 20,
- kKeywordsSet = 25,
- kSpecialInstructionsSet = 40,
- kDateCreatedSet = 55,
- kTimeCreatedSet = 60,
- kDigitalCreationDateSet = 62,
- kDigitalCreationTimeSet = 63,
- kBylineSet = 80,
- kBylineTitleSet = 85,
- kCitySet = 90,
- kSublocationSet = 92,
- kProvinceStateSet = 95,
- kCountryCodeSet = 100,
- kCountryNameSet = 101,
- kOriginalTransmissionReferenceSet = 103,
- kHeadlineSet = 105,
- kCreditSet = 110,
- kSourceSet = 115,
- kCopyrightNoticeSet = 116,
- kCaptionSet = 120,
- kCaptionWriterSet = 122
- };
-
- enum CharSet
- {
- kCharSetUnknown = 0,
- kCharSetUTF8 = 1
- };
-
- public:
-
- dng_iptc ();
-
- virtual ~dng_iptc ();
-
- /// Test if IPTC metadata exists.
- /// \retval true if no IPTC metadata exists for this DNG.
-
- bool IsEmpty () const;
-
- /// Test if IPTC metadata exists.
- /// \retval true if IPTC metadata exists for this DNG.
-
- bool NotEmpty () const
- {
- return !IsEmpty ();
- }
-
- /// Parse a complete block of IPTC data.
- /// \param blockData The block of IPTC data.
- /// \param blockSize Size in bytes of data block.
- /// \param offsetInOriginalFile Used to enable certain file patching operations such as updating date/time in place.
-
- void Parse (const void *blockData,
- uint32 blockSize,
- uint64 offsetInOriginalFile);
-
- /// Serialize IPTC data to a memory block.
- /// \param allocator Memory allocator used to acquire memory block.
- /// \param padForTIFF Forces length of block to be a multiple of four bytes in accordance with TIFF standard.
- /// \retval Memory block
-
- dng_memory_block * Spool (dng_memory_allocator &allocator,
- bool padForTIFF);
-
- protected:
-
- void ParseString (dng_stream &stream,
- dng_string &s,
- CharSet charSet);
-
- void SpoolString (dng_stream &stream,
- const dng_string &s,
- uint8 dataSet,
- uint32 maxChars,
- CharSet charSet);
-
- };
-
-/*****************************************************************************/
-
-#endif
-
-/*****************************************************************************/
+/*****************************************************************************/ +// Copyright 2006-2008 Adobe Systems Incorporated +// All Rights Reserved. +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in +// accordance with the terms of the Adobe license agreement accompanying it. +/*****************************************************************************/ + +/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_iptc.h#1 $ */ +/* $DateTime: 2012/05/30 13:28:51 $ */ +/* $Change: 832332 $ */ +/* $Author: tknoll $ */ + +/** \file + * Support for IPTC metadata within DNG files. + */ + +/*****************************************************************************/ + +#ifndef __dng_iptc__ +#define __dng_iptc__ + +/*****************************************************************************/ + +#include "dng_date_time.h" +#include "dng_string.h" +#include "dng_string_list.h" + +/*****************************************************************************/ + +/// \brief Class for reading and holding IPTC metadata associated with a DNG file. +/// +/// See the \ref spec_iptc "IPTC specification" +/// for information on member fields of this class. + +class dng_iptc + { + + public: + + dng_string fTitle; + + int32 fUrgency; + + dng_string fCategory; + + dng_string_list fSupplementalCategories; + + dng_string_list fKeywords; + + dng_string fInstructions; + + dng_date_time_info fDateTimeCreated; + + dng_date_time_info fDigitalCreationDateTime; + + dng_string_list fAuthors; + + dng_string fAuthorsPosition; + + dng_string fCity; + dng_string fState; + dng_string fCountry; + dng_string fCountryCode; + + dng_string fLocation; + + dng_string fTransmissionReference; + + dng_string fHeadline; + + dng_string fCredit; + + dng_string fSource; + + dng_string fCopyrightNotice; + + dng_string fDescription; + dng_string fDescriptionWriter; + + protected: + + enum DataSet + { + kRecordVersionSet = 0, + kObjectNameSet = 5, + kUrgencySet = 10, + kCategorySet = 15, + kSupplementalCategoriesSet = 20, + kKeywordsSet = 25, + kSpecialInstructionsSet = 40, + kDateCreatedSet = 55, + kTimeCreatedSet = 60, + kDigitalCreationDateSet = 62, + kDigitalCreationTimeSet = 63, + kBylineSet = 80, + kBylineTitleSet = 85, + kCitySet = 90, + kSublocationSet = 92, + kProvinceStateSet = 95, + kCountryCodeSet = 100, + kCountryNameSet = 101, + kOriginalTransmissionReferenceSet = 103, + kHeadlineSet = 105, + kCreditSet = 110, + kSourceSet = 115, + kCopyrightNoticeSet = 116, + kCaptionSet = 120, + kCaptionWriterSet = 122 + }; + + enum CharSet + { + kCharSetUnknown = 0, + kCharSetUTF8 = 1 + }; + + public: + + dng_iptc (); + + virtual ~dng_iptc (); + + /// Test if IPTC metadata exists. + /// \retval true if no IPTC metadata exists for this DNG. + + bool IsEmpty () const; + + /// Test if IPTC metadata exists. + /// \retval true if IPTC metadata exists for this DNG. + + bool NotEmpty () const + { + return !IsEmpty (); + } + + /// Parse a complete block of IPTC data. + /// \param blockData The block of IPTC data. + /// \param blockSize Size in bytes of data block. + /// \param offsetInOriginalFile Used to enable certain file patching operations such as updating date/time in place. + + void Parse (const void *blockData, + uint32 blockSize, + uint64 offsetInOriginalFile); + + /// Serialize IPTC data to a memory block. + /// \param allocator Memory allocator used to acquire memory block. + /// \param padForTIFF Forces length of block to be a multiple of four bytes in accordance with TIFF standard. + /// \retval Memory block + + dng_memory_block * Spool (dng_memory_allocator &allocator, + bool padForTIFF); + + protected: + + void ParseString (dng_stream &stream, + dng_string &s, + CharSet charSet); + + void SpoolString (dng_stream &stream, + const dng_string &s, + uint8 dataSet, + uint32 maxChars, + CharSet charSet); + + }; + +/*****************************************************************************/ + +#endif + +/*****************************************************************************/ |