 |
Exiv2
|
Go to the documentation of this file.
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_
Key & operator=(const Key &rhs)
Assignment operator. Protected so that it can only be used by subclasses but not directly.
Definition: metadatum.cpp:49
StringVector::const_iterator StringVector_i
Class to provide a StringVector iterator.
Definition: datasets.hpp:398
static uint16_t dataSet(const std::string &dataSetName, uint16_t recordId)
Return the dataSet number for dataset name and record id.
Definition: datasets.cpp:524
static const char * dataSetDesc(uint16_t number, uint16_t recordId)
Return the description of the dataset.
Definition: datasets.cpp:503
uint32_t maxbytes_
Maximum number of bytes.
Definition: datasets.hpp:79
std::vector< std::string > StringVector
typedef for string vector
Definition: datasets.hpp:390
StringSet * StringSet_p
typedef for StringSet*
Definition: datasets.hpp:381
const char * desc_
Record description.
Definition: datasets.hpp:53
virtual ~IptcKey()
Destructor.
Definition: datasets.cpp:605
std::vector< uint32_t > Uint32Vector
typedef for uint32_t vector
Definition: datasets.hpp:403
Type definitions for Exiv2 and related functionality.
@ undefined
Exif UNDEFINED type, an 8-bit byte that may contain anything.
Definition: types.hpp:137
static bool dataSetRepeatable(uint16_t number, uint16_t recordId)
Check if a given dataset is repeatable.
Definition: datasets.cpp:517
Dictionary::const_iterator Dictionary_i
typedef for Dictionary iterator
Definition: datasets.hpp:372
std::set< std::string > StringSet
typedef for string set (unique strings)
Definition: datasets.hpp:377
Details of an IPTC record.
Definition: datasets.hpp:48
const char * name_
Record name (one word)
Definition: datasets.hpp:52
EXIV2API bool isHex(const std::string &str, size_t size=0, const std::string &prefix="")
Return true if str is a hex number starting with prefix followed by size hex digits,...
Definition: types.cpp:543
static const DataSet * application2RecordList()
Return read-only list of built-in Application2 Record datasets.
Definition: datasets.cpp:435
bool repeatable_
True if dataset is repeatable.
Definition: datasets.hpp:77
IPTC dataset reference, implemented as a static class.
Definition: datasets.hpp:86
Uint32Vector * Uint32Vector_p
typedef for Uint32Vector pointer
Definition: datasets.hpp:407
Uint32Vector::const_iterator Uint32Vector_i
typedef for Uint32Vector iterator
Definition: datasets.hpp:411
Details of an IPTC dataset.
Definition: datasets.hpp:57
virtual std::string key() const
Return the key of the metadatum as a string. The key is of the form 'familyName.groupName....
Definition: datasets.cpp:619
static TypeId dataSetType(uint16_t number, uint16_t recordId)
Return the type for dataSet number and Record id.
Definition: datasets.cpp:478
bool mandatory_
True if dataset is mandatory.
Definition: datasets.hpp:76
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition: tags_int.cpp:2158
void makeKey()
Set the key corresponding to the dataset and record id. The key is of the form 'Iptc....
Definition: datasets.cpp:699
static const char * dataSetPsName(uint16_t number, uint16_t recordId)
Return the photohsop name of a given dataset.
Definition: datasets.cpp:510
static std::string recordName(uint16_t recordId)
Return the name of the Record.
Definition: datasets.cpp:541
std::auto_ptr< IptcKey > AutoPtr
Shortcut for an IptcKey auto pointer.
Definition: datasets.hpp:278
static std::string dataSetName(uint16_t number, uint16_t recordId)
Return the name of the dataset.
Definition: datasets.cpp:485
Abstract base class defining the Key of a metadatum. Keys are used to identify and group metadata.
Definition: metadatum.hpp:55
IptcKey(const std::string &key)
Constructor to create an IPTC key from a key string.
Definition: datasets.cpp:588
std::string recordName() const
Return the name of the record.
Definition: datasets.cpp:649
std::set< std::string >::const_iterator StringSet_i
Class to provide a StringSet iterator.
Definition: datasets.hpp:385
Dictionary * Dictionary_p
typedef for Dictionary*
Definition: datasets.hpp:368
const char * title_
Dataset title or label.
Definition: datasets.hpp:74
static const char * recordDesc(uint16_t recordId)
Return the description of a record.
Definition: datasets.cpp:553
EXIV2API std::ostream & operator<<(std::ostream &os, const DataSet &dataSet)
Output operator for dataSet.
Definition: datasets.cpp:709
@ unsignedShort
Exif SHORT type, 16-bit (2-byte) unsigned integer.
Definition: types.hpp:133
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
const char * desc_
Dataset description.
Definition: datasets.hpp:75
Value interface and concrete subclasses.
TypeId
Exiv2 value type identifiers.
Definition: types.hpp:130
static const char * typeName(TypeId typeId)
Return the name of the type, 0 if unknown.
Definition: types.cpp:107
uint16_t number_
Dataset number.
Definition: datasets.hpp:72
TypeId type_
Exiv2 default type.
Definition: datasets.hpp:80
uint32_t minbytes_
Minimum number of bytes.
Definition: datasets.hpp:78
DataSet(uint16_t number, const char *name, const char *title, const char *desc, bool mandatory, bool repeatable, uint32_t minbytes, uint32_t maxbytes, TypeId type, uint16_t recordId, const char *photoshop)
Constructor.
Definition: datasets.cpp:43
@ time
IPTC time type.
Definition: types.hpp:149
@ date
IPTC date type.
Definition: types.hpp:148
virtual const char * familyName() const
Return an identifier for the type of metadata (the first part of the key)
Definition: datasets.cpp:624
static const DataSet * envelopeRecordList()
Return read-only list of built-in Envelope Record datasets.
Definition: datasets.cpp:158
void decomposeKey()
Parse and convert the key string into dataset and record id. Updates data members if the string can b...
Definition: datasets.cpp:669
virtual std::string groupName() const
Return the name of the group (the second part of the key). For IPTC keys, the group name is the recor...
Definition: datasets.cpp:629
static const char * dataSetTitle(uint16_t number, uint16_t recordId)
Return the title (label) of the dataset.
Definition: datasets.cpp:496
virtual std::string tagLabel() const
Return a label for the tag.
Definition: datasets.cpp:639
IptcKey & operator=(const IptcKey &rhs)
Assignment operator.
Definition: datasets.cpp:609
BasicError< char > Error
Error class used for exceptions (std::string based)
Definition: error.hpp:323
Concrete keys for IPTC metadata.
Definition: datasets.hpp:275
uint16_t recordId_
Record id.
Definition: datasets.hpp:81
uint16_t recordId_
Record id.
Definition: datasets.hpp:51
StringVector * StringVector_p
typedef for StringVector pointer
Definition: datasets.hpp:394
@ string
IPTC string type.
Definition: types.hpp:147
std::map< std::string, std::string > Dictionary
typedef for string:string map
Definition: datasets.hpp:364
RecordInfo(uint16_t recordId, const char *name, const char *desc)
Constructor.
Definition: datasets.cpp:63
IPTC dataset and type information.
static void dataSetList(std::ostream &os)
Print a list of all dataSets to output stream.
Definition: datasets.cpp:575
uint16_t record() const
Return the record id.
Definition: datasets.cpp:654
virtual uint16_t tag() const
Return the tag number.
Definition: datasets.cpp:644
virtual std::string tagName() const
Return the name of the tag (which is also the third part of the key)
Definition: datasets.cpp:634
const char * name_
Dataset name.
Definition: datasets.hpp:73
Error class for exceptions, log message class.
static uint16_t recordId(const std::string &recordName)
Return the Id number of a record.
Definition: datasets.cpp:561
const char * photoshop_
Photoshop string.
Definition: datasets.hpp:82