remove pointless constructors

Replaced with Uniform initialization. Allows constexpr usage.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
main
Rosen Penev 4 years ago committed by Luis Díaz Más
parent b83b2197c1
commit 036af68a71

@ -46,8 +46,6 @@ namespace Exiv2 {
//! Details of an IPTC record. //! Details of an IPTC record.
struct EXIV2API RecordInfo { struct EXIV2API RecordInfo {
//! Constructor
RecordInfo(uint16_t recordId, const char* name, const char* desc);
uint16_t recordId_; //!< Record id uint16_t recordId_; //!< Record id
const char* name_; //!< Record name (one word) const char* name_; //!< Record name (one word)
const char* desc_; //!< Record description const char* desc_; //!< Record description
@ -55,20 +53,6 @@ namespace Exiv2 {
//! Details of an IPTC dataset. //! Details of an IPTC dataset.
struct EXIV2API DataSet { struct EXIV2API DataSet {
//! Constructor
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
);
uint16_t number_; //!< Dataset number uint16_t number_; //!< Dataset number
const char* name_; //!< Dataset name const char* name_; //!< Dataset name
const char* title_; //!< Dataset title or label const char* title_; //!< Dataset title or label

@ -39,67 +39,37 @@
// ***************************************************************************** // *****************************************************************************
// class member definitions // class member definitions
namespace Exiv2 { namespace Exiv2 {
constexpr RecordInfo IptcDataSets::recordInfo_[] = {
DataSet::DataSet( {IptcDataSets::invalidRecord, "(invalid)", N_("(invalid)")},
uint16_t number, {IptcDataSets::envelope, "Envelope", N_("IIM envelope record")},
const char* name, {IptcDataSets::application2, "Application2", N_("IIM application record 2")},
const char* title,
const char* desc,
bool mandatory,
bool repeatable,
uint32_t minbytes,
uint32_t maxbytes,
TypeId type,
uint16_t recordId,
const char* photoshop
)
: number_(number), name_(name), title_(title), desc_(desc),
mandatory_(mandatory), repeatable_(repeatable), minbytes_(minbytes),
maxbytes_(maxbytes), type_(type), recordId_(recordId),
photoshop_(photoshop)
{
}
RecordInfo::RecordInfo(
uint16_t recordId,
const char* name,
const char* desc
)
: recordId_(recordId), name_(name), desc_(desc)
{
}
const RecordInfo IptcDataSets::recordInfo_[] = {
RecordInfo(IptcDataSets::invalidRecord, "(invalid)", N_("(invalid)")),
RecordInfo(IptcDataSets::envelope, "Envelope", N_("IIM envelope record")),
RecordInfo(IptcDataSets::application2, "Application2", N_("IIM application record 2")),
}; };
static const DataSet envelopeRecord[] = { static const DataSet envelopeRecord[] = {
DataSet(IptcDataSets::ModelVersion, "ModelVersion", N_("Model Version"), {IptcDataSets::ModelVersion, "ModelVersion", N_("Model Version"),
N_("A binary number identifying the version of the Information " N_("A binary number identifying the version of the Information "
"Interchange Model, Part I, utilised by the provider. Version " "Interchange Model, Part I, utilised by the provider. Version "
"numbers are assigned by IPTC and NAA organizations."), "numbers are assigned by IPTC and NAA organizations."),
true, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::envelope, ""), true, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::Destination, "Destination", N_("Destination"), {IptcDataSets::Destination, "Destination", N_("Destination"),
N_("This DataSet is to accommodate some providers who require " N_("This DataSet is to accommodate some providers who require "
"routing information above the appropriate OSI layers."), "routing information above the appropriate OSI layers."),
false, true, 0, 1024, Exiv2::string, IptcDataSets::envelope, ""), false, true, 0, 1024, Exiv2::string, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::FileFormat, "FileFormat", N_("File Format"), {IptcDataSets::FileFormat, "FileFormat", N_("File Format"),
N_("A binary number representing the file format. The file format " N_("A binary number representing the file format. The file format "
"must be registered with IPTC or NAA with a unique number " "must be registered with IPTC or NAA with a unique number "
"assigned to it. The information is used to route " "assigned to it. The information is used to route "
"the data to the appropriate system and to allow the receiving " "the data to the appropriate system and to allow the receiving "
"system to perform the appropriate actions there to."), "system to perform the appropriate actions there to."),
true, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::envelope, ""), true, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::FileVersion, "FileVersion", N_("File Version"), {IptcDataSets::FileVersion, "FileVersion", N_("File Version"),
N_("A binary number representing the particular version of the File " N_("A binary number representing the particular version of the File "
"Format specified by <FileFormat> tag."), "Format specified by <FileFormat> tag."),
true, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::envelope, ""), true, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::ServiceId, "ServiceId", N_("Service Id"), {IptcDataSets::ServiceId, "ServiceId", N_("Service Id"),
N_("Identifies the provider and product"), N_("Identifies the provider and product"),
true, false, 0, 10, Exiv2::string, IptcDataSets::envelope, ""), true, false, 0, 10, Exiv2::string, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::EnvelopeNumber, "EnvelopeNumber", N_("Envelope Number"), {IptcDataSets::EnvelopeNumber, "EnvelopeNumber", N_("Envelope Number"),
N_("The characters form a number that will be unique for the date " N_("The characters form a number that will be unique for the date "
"specified in <DateSent> tag and for the Service Identifier " "specified in <DateSent> tag and for the Service Identifier "
"specified by <ServiceIdentifier> tag. " "specified by <ServiceIdentifier> tag. "
@ -107,52 +77,52 @@ namespace Exiv2 {
"with the same Service Identifier, records 2-9 must be unchanged " "with the same Service Identifier, records 2-9 must be unchanged "
"from the original. This is not intended to be a sequential serial " "from the original. This is not intended to be a sequential serial "
"number reception check."), "number reception check."),
true, false, 8, 8, Exiv2::string, IptcDataSets::envelope, ""), true, false, 8, 8, Exiv2::string, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::ProductId, "ProductId", N_("Product Id"), {IptcDataSets::ProductId, "ProductId", N_("Product Id"),
N_("Allows a provider to identify subsets of its overall service. Used " N_("Allows a provider to identify subsets of its overall service. Used "
"to provide receiving organisation data on which to select, route, " "to provide receiving organisation data on which to select, route, "
"or otherwise handle data."), "or otherwise handle data."),
false, true, 0, 32, Exiv2::string, IptcDataSets::envelope, ""), false, true, 0, 32, Exiv2::string, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::EnvelopePriority, "EnvelopePriority", N_("Envelope Priority"), {IptcDataSets::EnvelopePriority, "EnvelopePriority", N_("Envelope Priority"),
N_("Specifies the envelope handling priority and not the editorial " N_("Specifies the envelope handling priority and not the editorial "
"urgency (see <Urgency> tag). \"1\" indicates the most urgent, \"5\" " "urgency (see <Urgency> tag). \"1\" indicates the most urgent, \"5\" "
"the normal urgency, and \"8\" the least urgent copy. The numeral " "the normal urgency, and \"8\" the least urgent copy. The numeral "
"\"9\" indicates a User Defined Priority. The numeral \"0\" is reserved " "\"9\" indicates a User Defined Priority. The numeral \"0\" is reserved "
"for future use."), "for future use."),
false, false, 1, 1, Exiv2::string, IptcDataSets::envelope, ""), false, false, 1, 1, Exiv2::string, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::DateSent, "DateSent", N_("Date Sent"), {IptcDataSets::DateSent, "DateSent", N_("Date Sent"),
N_("Uses the format CCYYMMDD (century, year, month, day) as de-fined " N_("Uses the format CCYYMMDD (century, year, month, day) as de-fined "
"in ISO 8601 to indicate year, month and day the service sent the material."), "in ISO 8601 to indicate year, month and day the service sent the material."),
true, false, 8, 8, Exiv2::date, IptcDataSets::envelope, ""), true, false, 8, 8, Exiv2::date, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::TimeSent, "TimeSent", N_("Time Sent"), {IptcDataSets::TimeSent, "TimeSent", N_("Time Sent"),
N_("Uses the format HHMMSS:HHMM where HHMMSS refers to " N_("Uses the format HHMMSS:HHMM where HHMMSS refers to "
"local hour, minute and seconds and HHMM refers to hours and " "local hour, minute and seconds and HHMM refers to hours and "
"minutes ahead (+) or behind (-) Universal Coordinated Time as " "minutes ahead (+) or behind (-) Universal Coordinated Time as "
"described in ISO 8601. This is the time the service sent the material."), "described in ISO 8601. This is the time the service sent the material."),
false, false, 11, 11, Exiv2::time, IptcDataSets::envelope, ""), false, false, 11, 11, Exiv2::time, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::CharacterSet, "CharacterSet", N_("Character Set"), {IptcDataSets::CharacterSet, "CharacterSet", N_("Character Set"),
N_("This tag consisting of one or more control functions used for the announcement, " N_("This tag consisting of one or more control functions used for the announcement, "
"invocation or designation of coded character sets. The control functions follow " "invocation or designation of coded character sets. The control functions follow "
"the ISO 2022 standard and may consist of the escape control " "the ISO 2022 standard and may consist of the escape control "
"character and one or more graphic characters."), "character and one or more graphic characters."),
false, false, 0, 32, Exiv2::string, IptcDataSets::envelope, ""), false, false, 0, 32, Exiv2::string, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::UNO, "UNO", N_("Unique Name Object"), {IptcDataSets::UNO, "UNO", N_("Unique Name Object"),
N_("This tag provide a globally unique " N_("This tag provide a globally unique "
"identification for objects as specified in the IIM, independent of " "identification for objects as specified in the IIM, independent of "
"provider and for any media form. The provider must ensure the " "provider and for any media form. The provider must ensure the "
"UNO is unique. Objects with the same UNO are identical."), "UNO is unique. Objects with the same UNO are identical."),
false, false, 14, 80, Exiv2::string, IptcDataSets::envelope, ""), false, false, 14, 80, Exiv2::string, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::ARMId, "ARMId", N_("ARM Identifier"), {IptcDataSets::ARMId, "ARMId", N_("ARM Identifier"),
N_("The DataSet identifies the Abstract Relationship Method identifier (ARM) " N_("The DataSet identifies the Abstract Relationship Method identifier (ARM) "
"which is described in a document registered by the originator of " "which is described in a document registered by the originator of "
"the ARM with the IPTC and NAA organizations."), "the ARM with the IPTC and NAA organizations."),
false, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::envelope, ""), false, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::envelope, ""},
DataSet(IptcDataSets::ARMVersion, "ARMVersion", N_("ARM Version"), {IptcDataSets::ARMVersion, "ARMVersion", N_("ARM Version"),
N_("This tag consisting of a binary number representing the particular " N_("This tag consisting of a binary number representing the particular "
"version of the ARM specified by tag <ARMId>."), "version of the ARM specified by tag <ARMId>."),
false, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::envelope, ""), false, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::envelope, ""},
DataSet(0xffff, "(Invalid)", "(Invalid)", {0xffff, "(Invalid)", "(Invalid)",
"(Invalid)", false, false, 0, 0, Exiv2::unsignedShort, IptcDataSets::envelope, "") "(Invalid)", false, false, 0, 0, Exiv2::unsignedShort, IptcDataSets::envelope, ""},
}; };
const DataSet* IptcDataSets::envelopeRecordList() const DataSet* IptcDataSets::envelopeRecordList()
@ -161,12 +131,12 @@ namespace Exiv2 {
} }
static const DataSet application2Record[] = { static const DataSet application2Record[] = {
DataSet(IptcDataSets::RecordVersion, "RecordVersion", N_("Record Version"), {IptcDataSets::RecordVersion, "RecordVersion", N_("Record Version"),
N_("A binary number identifying the version of the Information " N_("A binary number identifying the version of the Information "
"Interchange Model, Part II, utilised by the provider. " "Interchange Model, Part II, utilised by the provider. "
"Version numbers are assigned by IPTC and NAA organizations."), "Version numbers are assigned by IPTC and NAA organizations."),
true, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::application2, ""), true, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ObjectType, "ObjectType", N_("Object Type"), {IptcDataSets::ObjectType, "ObjectType", N_("Object Type"),
N_("The Object Type is used to distinguish between different types " N_("The Object Type is used to distinguish between different types "
"of objects within the IIM. The first part is a number representing " "of objects within the IIM. The first part is a number representing "
"a language independent international reference to an Object Type " "a language independent international reference to an Object Type "
@ -174,8 +144,8 @@ namespace Exiv2 {
"representation of the Object Type Number consisting of graphic " "representation of the Object Type Number consisting of graphic "
"characters plus spaces either in English or in the language of the " "characters plus spaces either in English or in the language of the "
"service as indicated in tag <LanguageIdentifier>"), "service as indicated in tag <LanguageIdentifier>"),
false, false, 3, 67, Exiv2::string, IptcDataSets::application2, ""), false, false, 3, 67, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ObjectAttribute, "ObjectAttribute", N_("Object Attribute"), {IptcDataSets::ObjectAttribute, "ObjectAttribute", N_("Object Attribute"),
N_("The Object Attribute defines the nature of the object " N_("The Object Attribute defines the nature of the object "
"independent of the Subject. The first part is a number representing " "independent of the Subject. The first part is a number representing "
"a language independent international reference to an Object Attribute " "a language independent international reference to an Object Attribute "
@ -183,157 +153,157 @@ namespace Exiv2 {
"representation of the Object Attribute Number consisting of graphic " "representation of the Object Attribute Number consisting of graphic "
"characters plus spaces either in English, or in the language of the " "characters plus spaces either in English, or in the language of the "
"service as indicated in tag <LanguageIdentifier>"), "service as indicated in tag <LanguageIdentifier>"),
false, true, 4, 68, Exiv2::string, IptcDataSets::application2, ""), false, true, 4, 68, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ObjectName, "ObjectName", N_("Object Name"), {IptcDataSets::ObjectName, "ObjectName", N_("Object Name"),
N_("Used as a shorthand reference for the object. Changes to exist-ing " N_("Used as a shorthand reference for the object. Changes to exist-ing "
"data, such as updated stories or new crops on photos, should be " "data, such as updated stories or new crops on photos, should be "
"identified in tag <EditStatus>."), "identified in tag <EditStatus>."),
false, false, 0, 64, Exiv2::string, IptcDataSets::application2, false, false, 0, 64, Exiv2::string, IptcDataSets::application2,
N_("Document Title")), N_("Document Title")},
DataSet(IptcDataSets::EditStatus, "EditStatus", N_("Edit Status"), {IptcDataSets::EditStatus, "EditStatus", N_("Edit Status"),
N_("Status of the object data, according to the practice of the provider."), N_("Status of the object data, according to the practice of the provider."),
false, false, 0, 64, Exiv2::string, IptcDataSets::application2, ""), false, false, 0, 64, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::EditorialUpdate, "EditorialUpdate", N_("Editorial Update"), {IptcDataSets::EditorialUpdate, "EditorialUpdate", N_("Editorial Update"),
N_("Indicates the type of update that this object provides to a " N_("Indicates the type of update that this object provides to a "
"previous object. The link to the previous object is made using " "previous object. The link to the previous object is made using "
"the tags <ARMIdentifier> and <ARMVersion>, according to the practices of the provider."), "the tags <ARMIdentifier> and <ARMVersion>, according to the practices of the provider."),
false, false, 2, 2, Exiv2::string, IptcDataSets::application2, ""), false, false, 2, 2, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::Urgency, "Urgency", N_("Urgency"), {IptcDataSets::Urgency, "Urgency", N_("Urgency"),
N_("Specifies the editorial urgency of content and not necessarily the " N_("Specifies the editorial urgency of content and not necessarily the "
"envelope handling priority (see tag <EnvelopePriority>). The \"1\" " "envelope handling priority (see tag <EnvelopePriority>). The \"1\" "
"is most urgent, \"5\" normal and \"8\" denotes the least-urgent copy."), "is most urgent, \"5\" normal and \"8\" denotes the least-urgent copy."),
false, false, 1, 1, Exiv2::string, IptcDataSets::application2, false, false, 1, 1, Exiv2::string, IptcDataSets::application2,
N_("Urgency")), N_("Urgency")},
DataSet(IptcDataSets::Subject, "Subject", N_("Subject"), {IptcDataSets::Subject, "Subject", N_("Subject"),
N_("The Subject Reference is a structured definition of the subject matter."), N_("The Subject Reference is a structured definition of the subject matter."),
false, true, 13, 236, Exiv2::string, IptcDataSets::application2, ""), false, true, 13, 236, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::Category, "Category", N_("Category"), {IptcDataSets::Category, "Category", N_("Category"),
N_("Identifies the subject of the object data in the opinion of the provider. " N_("Identifies the subject of the object data in the opinion of the provider. "
"A list of categories will be maintained by a regional registry, " "A list of categories will be maintained by a regional registry, "
"where available, otherwise by the provider."), "where available, otherwise by the provider."),
false, false, 0, 3, Exiv2::string, IptcDataSets::application2, false, false, 0, 3, Exiv2::string, IptcDataSets::application2,
N_("Category")), N_("Category")},
DataSet(IptcDataSets::SuppCategory, "SuppCategory", N_("Supplemental Category"), {IptcDataSets::SuppCategory, "SuppCategory", N_("Supplemental Category"),
N_("Supplemental categories further refine the subject of an " N_("Supplemental categories further refine the subject of an "
"object data. A supplemental category may include " "object data. A supplemental category may include "
"any of the recognised categories as used in tag <Category>. Otherwise, " "any of the recognised categories as used in tag <Category>. Otherwise, "
"selection of supplemental categories are left to the provider."), "selection of supplemental categories are left to the provider."),
false, true, 0, 32, Exiv2::string, IptcDataSets::application2, false, true, 0, 32, Exiv2::string, IptcDataSets::application2,
N_("Supplemental Categories")), N_("Supplemental Categories")},
DataSet(IptcDataSets::FixtureId, "FixtureId", N_("Fixture Id"), {IptcDataSets::FixtureId, "FixtureId", N_("Fixture Id"),
N_("Identifies object data that recurs often and predictably. Enables " N_("Identifies object data that recurs often and predictably. Enables "
"users to immediately find or recall such an object."), "users to immediately find or recall such an object."),
false, false, 0, 32, Exiv2::string, IptcDataSets::application2, ""), false, false, 0, 32, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::Keywords, "Keywords", N_("Keywords"), {IptcDataSets::Keywords, "Keywords", N_("Keywords"),
N_("Used to indicate specific information retrieval words. " N_("Used to indicate specific information retrieval words. "
"It is expected that a provider of various types of data that are related " "It is expected that a provider of various types of data that are related "
"in subject matter uses the same keyword, enabling the receiving system " "in subject matter uses the same keyword, enabling the receiving system "
"or subsystems to search across all types of data for related material."), "or subsystems to search across all types of data for related material."),
false, true, 0, 64, Exiv2::string, IptcDataSets::application2, false, true, 0, 64, Exiv2::string, IptcDataSets::application2,
N_("Keywords")), N_("Keywords")},
DataSet(IptcDataSets::LocationCode, "LocationCode", N_("Location Code"), {IptcDataSets::LocationCode, "LocationCode", N_("Location Code"),
N_("Indicates the code of a country/geographical location referenced " N_("Indicates the code of a country/geographical location referenced "
"by the content of the object. Where ISO has established an appropriate " "by the content of the object. Where ISO has established an appropriate "
"country code under ISO 3166, that code will be used. When ISO 3166 does not " "country code under ISO 3166, that code will be used. When ISO 3166 does not "
"adequately provide for identification of a location or a country, " "adequately provide for identification of a location or a country, "
"e.g. ships at sea, space, IPTC will assign an appropriate three-character " "e.g. ships at sea, space, IPTC will assign an appropriate three-character "
"code under the provisions of ISO 3166 to avoid conflicts."), "code under the provisions of ISO 3166 to avoid conflicts."),
false, true, 3, 3, Exiv2::string, IptcDataSets::application2, ""), false, true, 3, 3, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::LocationName, "LocationName", N_("Location Name"), {IptcDataSets::LocationName, "LocationName", N_("Location Name"),
N_("Provides a full, publishable name of a country/geographical " N_("Provides a full, publishable name of a country/geographical "
"location referenced by the content of the object, according to " "location referenced by the content of the object, according to "
"guidelines of the provider."), "guidelines of the provider."),
false, true, 0, 64, Exiv2::string, IptcDataSets::application2, ""), false, true, 0, 64, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ReleaseDate, "ReleaseDate", N_("Release Date"), {IptcDataSets::ReleaseDate, "ReleaseDate", N_("Release Date"),
N_("Designates in the form CCYYMMDD the earliest date the " N_("Designates in the form CCYYMMDD the earliest date the "
"provider intends the object to be used. Follows ISO 8601 standard."), "provider intends the object to be used. Follows ISO 8601 standard."),
false, false, 8, 8, Exiv2::date, IptcDataSets::application2, ""), false, false, 8, 8, Exiv2::date, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ReleaseTime, "ReleaseTime", N_("Release Time"), {IptcDataSets::ReleaseTime, "ReleaseTime", N_("Release Time"),
N_("Designates in the form HHMMSS:HHMM the earliest time the " N_("Designates in the form HHMMSS:HHMM the earliest time the "
"provider intends the object to be used. Follows ISO 8601 standard."), "provider intends the object to be used. Follows ISO 8601 standard."),
false, false, 11, 11, Exiv2::time, IptcDataSets::application2, ""), false, false, 11, 11, Exiv2::time, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ExpirationDate, "ExpirationDate", N_("Expiration Date"), {IptcDataSets::ExpirationDate, "ExpirationDate", N_("Expiration Date"),
N_("Designates in the form CCYYMMDD the latest date the provider " N_("Designates in the form CCYYMMDD the latest date the provider "
"or owner intends the object data to be used. Follows ISO 8601 standard."), "or owner intends the object data to be used. Follows ISO 8601 standard."),
false, false, 8, 8, Exiv2::date, IptcDataSets::application2, ""), false, false, 8, 8, Exiv2::date, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ExpirationTime, "ExpirationTime", N_("ExpirationTime"), {IptcDataSets::ExpirationTime, "ExpirationTime", N_("ExpirationTime"),
N_("Designates in the form HHMMSS:HHMM the latest time the " N_("Designates in the form HHMMSS:HHMM the latest time the "
"provider or owner intends the object data to be used. Follows ISO 8601 standard."), "provider or owner intends the object data to be used. Follows ISO 8601 standard."),
false, false, 11, 11, Exiv2::time, IptcDataSets::application2, ""), false, false, 11, 11, Exiv2::time, IptcDataSets::application2, ""},
DataSet(IptcDataSets::SpecialInstructions, "SpecialInstructions", N_("Special Instructions"), {IptcDataSets::SpecialInstructions, "SpecialInstructions", N_("Special Instructions"),
N_("Other editorial instructions concerning the use of the object data, " N_("Other editorial instructions concerning the use of the object data, "
"such as embargoes and warnings."), "such as embargoes and warnings."),
false, false, 0, 256, Exiv2::string, IptcDataSets::application2, false, false, 0, 256, Exiv2::string, IptcDataSets::application2,
N_("Instructions")), N_("Instructions")},
DataSet(IptcDataSets::ActionAdvised, "ActionAdvised", N_("Action Advised"), {IptcDataSets::ActionAdvised, "ActionAdvised", N_("Action Advised"),
N_("Indicates the type of action that this object provides to a " N_("Indicates the type of action that this object provides to a "
"previous object. The link to the previous object is made using " "previous object. The link to the previous object is made using "
"tags <ARMIdentifier> and <ARMVersion>, according to the practices of the provider."), "tags <ARMIdentifier> and <ARMVersion>, according to the practices of the provider."),
false, false, 2, 2, Exiv2::string, IptcDataSets::application2, ""), false, false, 2, 2, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ReferenceService, "ReferenceService", N_("Reference Service"), {IptcDataSets::ReferenceService, "ReferenceService", N_("Reference Service"),
N_("Identifies the Service Identifier of a prior envelope to which the " N_("Identifies the Service Identifier of a prior envelope to which the "
"current object refers."), "current object refers."),
false, true, 0, 10, Exiv2::string, IptcDataSets::application2, ""), false, true, 0, 10, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ReferenceDate, "ReferenceDate", N_("Reference Date"), {IptcDataSets::ReferenceDate, "ReferenceDate", N_("Reference Date"),
N_("Identifies the date of a prior envelope to which the current object refers."), N_("Identifies the date of a prior envelope to which the current object refers."),
false, true, 8, 8, Exiv2::date, IptcDataSets::application2, ""), false, true, 8, 8, Exiv2::date, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ReferenceNumber, "ReferenceNumber", N_("Reference Number"), {IptcDataSets::ReferenceNumber, "ReferenceNumber", N_("Reference Number"),
N_("Identifies the Envelope Number of a prior envelope to which the current object refers."), N_("Identifies the Envelope Number of a prior envelope to which the current object refers."),
false, true, 8, 8, Exiv2::string, IptcDataSets::application2, ""), false, true, 8, 8, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::DateCreated, "DateCreated", N_("Date Created"), {IptcDataSets::DateCreated, "DateCreated", N_("Date Created"),
N_("Represented in the form CCYYMMDD to designate the date the " N_("Represented in the form CCYYMMDD to designate the date the "
"intellectual content of the object data was created rather than the " "intellectual content of the object data was created rather than the "
"date of the creation of the physical representation. Follows ISO 8601 standard."), "date of the creation of the physical representation. Follows ISO 8601 standard."),
false, false, 8, 8, Exiv2::date, IptcDataSets::application2, false, false, 8, 8, Exiv2::date, IptcDataSets::application2,
N_("Date Created")), N_("Date Created")},
DataSet(IptcDataSets::TimeCreated, "TimeCreated", N_("Time Created"), {IptcDataSets::TimeCreated, "TimeCreated", N_("Time Created"),
N_("Represented in the form HHMMSS:HHMM to designate the " N_("Represented in the form HHMMSS:HHMM to designate the "
"time the intellectual content of the object data current source " "time the intellectual content of the object data current source "
"material was created rather than the creation of the physical " "material was created rather than the creation of the physical "
"representation. Follows ISO 8601 standard."), "representation. Follows ISO 8601 standard."),
false, false, 11, 11, Exiv2::time, IptcDataSets::application2, ""), false, false, 11, 11, Exiv2::time, IptcDataSets::application2, ""},
DataSet(IptcDataSets::DigitizationDate, "DigitizationDate", N_("Digitization Date"), {IptcDataSets::DigitizationDate, "DigitizationDate", N_("Digitization Date"),
N_("Represented in the form CCYYMMDD to designate the date the " N_("Represented in the form CCYYMMDD to designate the date the "
"digital representation of the object data was created. Follows ISO 8601 standard."), "digital representation of the object data was created. Follows ISO 8601 standard."),
false, false, 8, 8, Exiv2::date, IptcDataSets::application2, ""), false, false, 8, 8, Exiv2::date, IptcDataSets::application2, ""},
DataSet(IptcDataSets::DigitizationTime, "DigitizationTime", N_("Digitization Time"), {IptcDataSets::DigitizationTime, "DigitizationTime", N_("Digitization Time"),
N_("Represented in the form HHMMSS:HHMM to designate the " N_("Represented in the form HHMMSS:HHMM to designate the "
"time the digital representation of the object data was created. " "time the digital representation of the object data was created. "
"Follows ISO 8601 standard."), "Follows ISO 8601 standard."),
false, false, 11, 11, Exiv2::time, IptcDataSets::application2, ""), false, false, 11, 11, Exiv2::time, IptcDataSets::application2, ""},
DataSet(IptcDataSets::Program, "Program", N_("Program"), {IptcDataSets::Program, "Program", N_("Program"),
N_("Identifies the type of program used to originate the object data."), N_("Identifies the type of program used to originate the object data."),
false, false, 0, 32, Exiv2::string, IptcDataSets::application2, ""), false, false, 0, 32, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ProgramVersion, "ProgramVersion", N_("Program Version"), {IptcDataSets::ProgramVersion, "ProgramVersion", N_("Program Version"),
N_("Used to identify the version of the program mentioned in tag <Program>."), N_("Used to identify the version of the program mentioned in tag <Program>."),
false, false, 0, 10, Exiv2::string, IptcDataSets::application2, ""), false, false, 0, 10, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ObjectCycle, "ObjectCycle", N_("Object Cycle"), {IptcDataSets::ObjectCycle, "ObjectCycle", N_("Object Cycle"),
N_("Used to identify the editorial cycle of object data."), N_("Used to identify the editorial cycle of object data."),
false, false, 1, 1, Exiv2::string, IptcDataSets::application2, ""), false, false, 1, 1, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::Byline, "Byline", N_("By-line"), {IptcDataSets::Byline, "Byline", N_("By-line"),
N_("Contains name of the creator of the object data, e.g. writer, photographer " N_("Contains name of the creator of the object data, e.g. writer, photographer "
"or graphic artist."), "or graphic artist."),
false, true, 0, 32, Exiv2::string, IptcDataSets::application2, false, true, 0, 32, Exiv2::string, IptcDataSets::application2,
N_("Author")), N_("Author")},
DataSet(IptcDataSets::BylineTitle, "BylineTitle", N_("By-line Title"), {IptcDataSets::BylineTitle, "BylineTitle", N_("By-line Title"),
N_("A by-line title is the title of the creator or creators of an " N_("A by-line title is the title of the creator or creators of an "
"object data. Where used, a by-line title should follow the by-line it modifies."), "object data. Where used, a by-line title should follow the by-line it modifies."),
false, true, 0, 32, Exiv2::string, IptcDataSets::application2, "Authors Position"), false, true, 0, 32, Exiv2::string, IptcDataSets::application2, "Authors Position"},
DataSet(IptcDataSets::City, "City", N_("City"), {IptcDataSets::City, "City", N_("City"),
N_("Identifies city of object data origin according to guidelines established " N_("Identifies city of object data origin according to guidelines established "
"by the provider."), "by the provider."),
false, false, 0, 32, Exiv2::string, IptcDataSets::application2, false, false, 0, 32, Exiv2::string, IptcDataSets::application2,
N_("City")), N_("City")},
DataSet(IptcDataSets::SubLocation, "SubLocation", N_("Sub Location"), {IptcDataSets::SubLocation, "SubLocation", N_("Sub Location"),
N_("Identifies the location within a city from which the object data " N_("Identifies the location within a city from which the object data "
"originates, according to guidelines established by the provider."), "originates, according to guidelines established by the provider."),
false, false, 0, 32, Exiv2::string, IptcDataSets::application2, ""), false, false, 0, 32, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ProvinceState, "ProvinceState", N_("Province State"), {IptcDataSets::ProvinceState, "ProvinceState", N_("Province State"),
N_("Identifies Province/State of origin according to guidelines " N_("Identifies Province/State of origin according to guidelines "
"established by the provider."), "established by the provider."),
false, false, 0, 32, Exiv2::string, IptcDataSets::application2, false, false, 0, 32, Exiv2::string, IptcDataSets::application2,
N_("State/Province")), N_("State/Province")},
DataSet(IptcDataSets::CountryCode, "CountryCode", N_("Country Code"), {IptcDataSets::CountryCode, "CountryCode", N_("Country Code"),
N_("Indicates the code of the country/primary location where the " N_("Indicates the code of the country/primary location where the "
"intellectual property of the object data was created, e.g. a photo " "intellectual property of the object data was created, e.g. a photo "
"was taken, an event occurred. Where ISO has established an appropriate " "was taken, an event occurred. Where ISO has established an appropriate "
@ -342,94 +312,94 @@ namespace Exiv2 {
"country, e.g. ships at sea, space, IPTC will assign an " "country, e.g. ships at sea, space, IPTC will assign an "
"appropriate three-character code under the provisions of " "appropriate three-character code under the provisions of "
"ISO 3166 to avoid conflicts."), "ISO 3166 to avoid conflicts."),
false, false, 3, 3, Exiv2::string, IptcDataSets::application2, ""), false, false, 3, 3, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::CountryName, "CountryName", N_("Country Name"), {IptcDataSets::CountryName, "CountryName", N_("Country Name"),
N_("Provides full, publishable, name of the country/primary location " N_("Provides full, publishable, name of the country/primary location "
"where the intellectual property of the object data was created, " "where the intellectual property of the object data was created, "
"according to guidelines of the provider."), "according to guidelines of the provider."),
false, false, 0, 64, Exiv2::string, IptcDataSets::application2, false, false, 0, 64, Exiv2::string, IptcDataSets::application2,
N_("Country")), N_("Country")},
DataSet(IptcDataSets::TransmissionReference, "TransmissionReference", N_("Transmission Reference"), {IptcDataSets::TransmissionReference, "TransmissionReference", N_("Transmission Reference"),
N_("A code representing the location of original transmission according " N_("A code representing the location of original transmission according "
"to practices of the provider."), "to practices of the provider."),
false, false, 0, 32, Exiv2::string, IptcDataSets::application2, false, false, 0, 32, Exiv2::string, IptcDataSets::application2,
N_("Transmission Reference")), N_("Transmission Reference")},
DataSet(IptcDataSets::Headline, "Headline", N_("Headline"), {IptcDataSets::Headline, "Headline", N_("Headline"),
N_("A publishable entry providing a synopsis of the contents of the object data."), N_("A publishable entry providing a synopsis of the contents of the object data."),
false, false, 0, 256, Exiv2::string, IptcDataSets::application2, false, false, 0, 256, Exiv2::string, IptcDataSets::application2,
N_("Headline")), N_("Headline")},
DataSet(IptcDataSets::Credit, "Credit", N_("Credit"), {IptcDataSets::Credit, "Credit", N_("Credit"),
N_("Identifies the provider of the object data, not necessarily the owner/creator."), N_("Identifies the provider of the object data, not necessarily the owner/creator."),
false, false, 0, 32, Exiv2::string, IptcDataSets::application2, false, false, 0, 32, Exiv2::string, IptcDataSets::application2,
N_("Credit")), N_("Credit")},
DataSet(IptcDataSets::Source, "Source", N_("Source"), {IptcDataSets::Source, "Source", N_("Source"),
N_("Identifies the original owner of the intellectual content of the " N_("Identifies the original owner of the intellectual content of the "
"object data. This could be an agency, a member of an agency or an individual."), "object data. This could be an agency, a member of an agency or an individual."),
false, false, 0, 32, Exiv2::string, IptcDataSets::application2, false, false, 0, 32, Exiv2::string, IptcDataSets::application2,
N_("Source")), N_("Source")},
DataSet(IptcDataSets::Copyright, "Copyright", N_("Copyright"), {IptcDataSets::Copyright, "Copyright", N_("Copyright"),
N_("Contains any necessary copyright notice."), N_("Contains any necessary copyright notice."),
false, false, 0, 128, Exiv2::string, IptcDataSets::application2, false, false, 0, 128, Exiv2::string, IptcDataSets::application2,
N_("Copyright Notice")), N_("Copyright Notice")},
DataSet(IptcDataSets::Contact, "Contact", N_("Contact"), {IptcDataSets::Contact, "Contact", N_("Contact"),
N_("Identifies the person or organisation which can provide further " N_("Identifies the person or organisation which can provide further "
"background information on the object data."), "background information on the object data."),
false, true, 0, 128, Exiv2::string, IptcDataSets::application2, ""), false, true, 0, 128, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::Caption, "Caption", N_("Caption"), {IptcDataSets::Caption, "Caption", N_("Caption"),
N_("A textual description of the object data."), N_("A textual description of the object data."),
false, false, 0, 2000, Exiv2::string, IptcDataSets::application2, false, false, 0, 2000, Exiv2::string, IptcDataSets::application2,
N_("Description")), N_("Description")},
DataSet(IptcDataSets::Writer, "Writer", N_("Writer"), {IptcDataSets::Writer, "Writer", N_("Writer"),
N_("Identification of the name of the person involved in the writing, " N_("Identification of the name of the person involved in the writing, "
"editing or correcting the object data or caption/abstract."), "editing or correcting the object data or caption/abstract."),
false, true, 0, 32, Exiv2::string, IptcDataSets::application2, "Description writer"), false, true, 0, 32, Exiv2::string, IptcDataSets::application2, "Description writer"},
DataSet(IptcDataSets::RasterizedCaption, "RasterizedCaption", N_("Rasterized Caption"), {IptcDataSets::RasterizedCaption, "RasterizedCaption", N_("Rasterized Caption"),
N_("Contains the rasterized object data description and is used " N_("Contains the rasterized object data description and is used "
"where characters that have not been coded are required for the caption."), "where characters that have not been coded are required for the caption."),
false, false, 7360, 7360, Exiv2::undefined, IptcDataSets::application2, ""), false, false, 7360, 7360, Exiv2::undefined, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ImageType, "ImageType", N_("Image Type"), {IptcDataSets::ImageType, "ImageType", N_("Image Type"),
N_("Indicates the color components of an image."), N_("Indicates the color components of an image."),
false, false, 2, 2, Exiv2::string, IptcDataSets::application2, ""), false, false, 2, 2, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::ImageOrientation, "ImageOrientation", N_("Image Orientation"), {IptcDataSets::ImageOrientation, "ImageOrientation", N_("Image Orientation"),
N_("Indicates the layout of an image."), N_("Indicates the layout of an image."),
false, false, 1, 1, Exiv2::string, IptcDataSets::application2, ""), false, false, 1, 1, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::Language, "Language", N_("Language"), {IptcDataSets::Language, "Language", N_("Language"),
N_("Describes the major national language of the object, according " N_("Describes the major national language of the object, according "
"to the 2-letter codes of ISO 639:1988. Does not define or imply " "to the 2-letter codes of ISO 639:1988. Does not define or imply "
"any coded character set, but is used for internal routing, e.g. to " "any coded character set, but is used for internal routing, e.g. to "
"various editorial desks."), "various editorial desks."),
false, false, 2, 3, Exiv2::string, IptcDataSets::application2, ""), false, false, 2, 3, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::AudioType, "AudioType", N_("Audio Type"), {IptcDataSets::AudioType, "AudioType", N_("Audio Type"),
N_("Indicates the type of an audio content."), N_("Indicates the type of an audio content."),
false, false, 2, 2, Exiv2::string, IptcDataSets::application2, ""), false, false, 2, 2, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::AudioRate, "AudioRate", N_("Audio Rate"), {IptcDataSets::AudioRate, "AudioRate", N_("Audio Rate"),
N_("Indicates the sampling rate in Hertz of an audio content."), N_("Indicates the sampling rate in Hertz of an audio content."),
false, false, 6, 6, Exiv2::string, IptcDataSets::application2, ""), false, false, 6, 6, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::AudioResolution, "AudioResolution", N_("Audio Resolution"), {IptcDataSets::AudioResolution, "AudioResolution", N_("Audio Resolution"),
N_("Indicates the sampling resolution of an audio content."), N_("Indicates the sampling resolution of an audio content."),
false, false, 2, 2, Exiv2::string, IptcDataSets::application2, ""), false, false, 2, 2, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::AudioDuration, "AudioDuration", N_("Audio Duration"), {IptcDataSets::AudioDuration, "AudioDuration", N_("Audio Duration"),
N_("Indicates the duration of an audio content."), N_("Indicates the duration of an audio content."),
false, false, 6, 6, Exiv2::string, IptcDataSets::application2, ""), false, false, 6, 6, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::AudioOutcue, "AudioOutcue", N_("Audio Outcue"), {IptcDataSets::AudioOutcue, "AudioOutcue", N_("Audio Outcue"),
N_("Identifies the content of the end of an audio object data, " N_("Identifies the content of the end of an audio object data, "
"according to guidelines established by the provider."), "according to guidelines established by the provider."),
false, false, 0, 64, Exiv2::string, IptcDataSets::application2, ""), false, false, 0, 64, Exiv2::string, IptcDataSets::application2, ""},
DataSet(IptcDataSets::PreviewFormat, "PreviewFormat", N_("Preview Format"), {IptcDataSets::PreviewFormat, "PreviewFormat", N_("Preview Format"),
N_("A binary number representing the file format of the object data " N_("A binary number representing the file format of the object data "
"preview. The file format must be registered with IPTC or NAA organizations " "preview. The file format must be registered with IPTC or NAA organizations "
"with a unique number assigned to it."), "with a unique number assigned to it."),
false, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::application2, ""), false, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::application2, ""},
DataSet(IptcDataSets::PreviewVersion, "PreviewVersion", N_("Preview Version"), {IptcDataSets::PreviewVersion, "PreviewVersion", N_("Preview Version"),
N_("A binary number representing the particular version of the " N_("A binary number representing the particular version of the "
"object data preview file format specified in tag <PreviewFormat>."), "object data preview file format specified in tag <PreviewFormat>."),
false, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::application2, ""), false, false, 2, 2, Exiv2::unsignedShort, IptcDataSets::application2, ""},
DataSet(IptcDataSets::Preview, "Preview", N_("Preview Data"), {IptcDataSets::Preview, "Preview", N_("Preview Data"),
N_("Binary image preview data."), N_("Binary image preview data."),
false, false, 0, 256000, Exiv2::undefined, IptcDataSets::application2, ""), false, false, 0, 256000, Exiv2::undefined, IptcDataSets::application2, ""},
DataSet(0xffff, "(Invalid)", N_("(Invalid)"), {0xffff, "(Invalid)", N_("(Invalid)"),
N_("(Invalid)"), N_("(Invalid)"),
false, false, 0, 0, Exiv2::unsignedShort, IptcDataSets::application2, "") false, false, 0, 0, Exiv2::unsignedShort, IptcDataSets::application2, ""},
}; };
const DataSet* IptcDataSets::application2RecordList() const DataSet* IptcDataSets::application2RecordList()
@ -437,11 +407,11 @@ namespace Exiv2 {
return application2Record; return application2Record;
} }
static const DataSet unknownDataSet(0xffff, "Unknown dataset", N_("Unknown dataset"), static const DataSet unknownDataSet{0xffff, "Unknown dataset", N_("Unknown dataset"),
N_("Unknown dataset"), N_("Unknown dataset"),
false, true, 0, 0xffffffff, Exiv2::string, false, true, 0, 0xffffffff, Exiv2::string,
IptcDataSets::invalidRecord, IptcDataSets::invalidRecord,
N_("Unknown dataset")); N_("Unknown dataset")};
// Dataset lookup lists.This is an array with pointers to one list per IIM4 Record. // Dataset lookup lists.This is an array with pointers to one list per IIM4 Record.
// The record id is used as the index into the array. // The record id is used as the index into the array.

Loading…
Cancel
Save