30 #include "exiv2lib_export.h" 50 RecordInfo(uint16_t recordId,
const char* name,
const char* desc);
95 static const uint16_t invalidRecord = 0;
96 static const uint16_t envelope = 1;
97 static const uint16_t application2 = 2;
102 static const uint16_t ModelVersion = 0;
103 static const uint16_t Destination = 5;
104 static const uint16_t FileFormat = 20;
105 static const uint16_t FileVersion = 22;
106 static const uint16_t ServiceId = 30;
107 static const uint16_t EnvelopeNumber = 40;
108 static const uint16_t ProductId = 50;
109 static const uint16_t EnvelopePriority = 60;
110 static const uint16_t DateSent = 70;
111 static const uint16_t TimeSent = 80;
112 static const uint16_t CharacterSet = 90;
113 static const uint16_t UNO = 100;
114 static const uint16_t ARMId = 120;
115 static const uint16_t ARMVersion = 122;
116 static const uint16_t RecordVersion = 0;
117 static const uint16_t ObjectType = 3;
118 static const uint16_t ObjectAttribute = 4;
119 static const uint16_t ObjectName = 5;
120 static const uint16_t EditStatus = 7;
121 static const uint16_t EditorialUpdate = 8;
122 static const uint16_t Urgency = 10;
123 static const uint16_t Subject = 12;
124 static const uint16_t Category = 15;
125 static const uint16_t SuppCategory = 20;
126 static const uint16_t FixtureId = 22;
127 static const uint16_t Keywords = 25;
128 static const uint16_t LocationCode = 26;
129 static const uint16_t LocationName = 27;
130 static const uint16_t ReleaseDate = 30;
131 static const uint16_t ReleaseTime = 35;
132 static const uint16_t ExpirationDate = 37;
133 static const uint16_t ExpirationTime = 38;
134 static const uint16_t SpecialInstructions = 40;
135 static const uint16_t ActionAdvised = 42;
136 static const uint16_t ReferenceService = 45;
137 static const uint16_t ReferenceDate = 47;
138 static const uint16_t ReferenceNumber = 50;
139 static const uint16_t DateCreated = 55;
140 static const uint16_t TimeCreated = 60;
141 static const uint16_t DigitizationDate = 62;
142 static const uint16_t DigitizationTime = 63;
143 static const uint16_t Program = 65;
144 static const uint16_t ProgramVersion = 70;
145 static const uint16_t ObjectCycle = 75;
146 static const uint16_t Byline = 80;
147 static const uint16_t BylineTitle = 85;
148 static const uint16_t City = 90;
149 static const uint16_t SubLocation = 92;
150 static const uint16_t ProvinceState = 95;
151 static const uint16_t CountryCode = 100;
152 static const uint16_t CountryName = 101;
153 static const uint16_t TransmissionReference = 103;
154 static const uint16_t Headline = 105;
155 static const uint16_t Credit = 110;
156 static const uint16_t Source = 115;
157 static const uint16_t Copyright = 116;
158 static const uint16_t Contact = 118;
159 static const uint16_t Caption = 120;
160 static const uint16_t Writer = 122;
161 static const uint16_t RasterizedCaption = 125;
162 static const uint16_t ImageType = 130;
163 static const uint16_t ImageOrientation = 131;
164 static const uint16_t Language = 135;
165 static const uint16_t AudioType = 150;
166 static const uint16_t AudioRate = 151;
167 static const uint16_t AudioResolution = 152;
168 static const uint16_t AudioDuration = 153;
169 static const uint16_t AudioOutcue = 154;
170 static const uint16_t PreviewFormat = 200;
171 static const uint16_t PreviewVersion = 201;
172 static const uint16_t Preview = 202;
192 static std::string dataSetName(uint16_t number, uint16_t recordId);
199 static const char* dataSetTitle(uint16_t number, uint16_t recordId);
206 static const char* dataSetDesc(uint16_t number, uint16_t recordId);
214 static const char* dataSetPsName(uint16_t number, uint16_t recordId);
221 static bool dataSetRepeatable(uint16_t number, uint16_t recordId);
232 static uint16_t dataSet(
const std::string& dataSetName, uint16_t recordId);
234 static TypeId dataSetType(uint16_t number, uint16_t recordId);
248 static const char* recordDesc(uint16_t recordId);
255 static uint16_t recordId(
const std::string& recordName);
257 static const DataSet* envelopeRecordList();
259 static const DataSet* application2RecordList();
261 static void dataSetList(std::ostream& os);
264 static int dataSetIdx(uint16_t number, uint16_t recordId);
265 static int dataSetIdx(
const std::string& dataSetName, uint16_t recordId);
267 static const DataSet* records_[];
296 IptcKey(uint16_t tag, uint16_t record);
314 virtual const char* familyName()
const;
322 virtual uint16_t tag()
const;
327 uint16_t record()
const;
350 virtual IptcKey* clone_()
const;
353 static const char* familyName_;
422 #endif // #ifndef DATASETS_HPP_ const char * name_
Dataset name.
Definition: datasets.hpp:73
const char * desc_
Record description.
Definition: datasets.hpp:53
const char * photoshop_
Photoshop string.
Definition: datasets.hpp:82
uint32_t maxbytes_
Maximum number of bytes.
Definition: datasets.hpp:79
std::map< std::string, std::string > Dictionary
typedef for string:string map
Definition: datasets.hpp:364
Details of an IPTC record.
Definition: datasets.hpp:48
TypeId
Exiv2 value type identifiers.
Definition: types.hpp:130
Uint32Vector::const_iterator Uint32Vector_i
typedef for Uint32Vector iterator
Definition: datasets.hpp:411
Dictionary::const_iterator Dictionary_i
typedef for Dictionary iterator
Definition: datasets.hpp:372
std::vector< std::string > StringVector
typedef for string vector
Definition: datasets.hpp:390
Abstract base class defining the Key of a metadatum. Keys are used to identify and group metadata...
Definition: metadatum.hpp:55
uint16_t recordId_
Record id.
Definition: datasets.hpp:51
std::vector< uint32_t > Uint32Vector
typedef for uint32_t vector
Definition: datasets.hpp:403
bool mandatory_
True if dataset is mandatory.
Definition: datasets.hpp:76
StringVector * StringVector_p
typedef for StringVector pointer
Definition: datasets.hpp:394
bool repeatable_
True if dataset is repeatable.
Definition: datasets.hpp:77
IPTC dataset reference, implemented as a static class.
Definition: datasets.hpp:86
Concrete keys for IPTC metadata.
Definition: datasets.hpp:275
StringSet * StringSet_p
typedef for StringSet*
Definition: datasets.hpp:381
const char * name_
Record name (one word)
Definition: datasets.hpp:52
const char * title_
Dataset title or label.
Definition: datasets.hpp:74
std::set< std::string >::const_iterator StringSet_i
Class to provide a StringSet iterator.
Definition: datasets.hpp:385
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition: tags_int.cpp:2155
uint16_t number_
Dataset number.
Definition: datasets.hpp:72
IPTC string type.
Definition: types.hpp:147
TypeId type_
Exiv2 default type.
Definition: datasets.hpp:80
const char * desc_
Dataset description.
Definition: datasets.hpp:75
Uint32Vector * Uint32Vector_p
typedef for Uint32Vector pointer
Definition: datasets.hpp:407
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
Dictionary * Dictionary_p
typedef for Dictionary*
Definition: datasets.hpp:368
uint32_t minbytes_
Minimum number of bytes.
Definition: datasets.hpp:78
EXIV2API std::ostream & operator<<(std::ostream &os, const DataSet &dataSet)
Output operator for dataSet.
Definition: datasets.cpp:709
std::set< std::string > StringSet
typedef for string set (unique strings)
Definition: datasets.hpp:377
uint16_t recordId_
Record id.
Definition: datasets.hpp:81
Details of an IPTC dataset.
Definition: datasets.hpp:57
StringVector::const_iterator StringVector_i
Class to provide a StringVector iterator.
Definition: datasets.hpp:398
std::auto_ptr< IptcKey > AutoPtr
Shortcut for an IptcKey auto pointer.
Definition: datasets.hpp:278