PIKApp/plug-ins/metadata/metadata-tags.h

260 lines
6.5 KiB
C

/* PIKA - Photo and Image Kooker Application
* a rebranding of The GNU Image Manipulation Program (created with heckimp)
* A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio
*
* Original copyright, applying to most contents (license remains unchanged):
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* Copyright (C) 2016, 2017 Ben Touchette
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef __METADATA_TAGS_H__
#define __METADATA_TAGS_H__
#include "metadata-misc.h"
#define TAG_TYPE_XMP 1
#define TAG_TYPE_EXIF 2
#define TAG_TYPE_IPTC 3
enum
{
PIKA_XMP_NONE = 0,
PIKA_XMP_TEXT,
PIKA_XMP_BAG,
PIKA_XMP_SEQ,
PIKA_XMP_LANG,
PIKA_XMP_ALT
};
enum
{
COL_LICENSOR_NAME = 0,
COL_LICENSOR_ID,
COL_LICENSOR_PHONE1,
COL_LICENSOR_PHONE_TYPE1,
COL_LICENSOR_PHONE2,
COL_LICENSOR_PHONE_TYPE2,
COL_LICENSOR_EMAIL,
COL_LICENSOR_WEB,
COL_LICENSOR_NUM_COLS
};
enum
{
COL_CR_OWNER_NAME = 0,
COL_CR_OWNER_ID,
COL_CR_OWNER_NUM_COLS
};
enum
{
COL_IMG_CR8_NAME = 0,
COL_IMG_CR8_ID,
COL_IMG_CR8_NUM_COLS
};
enum
{
COL_AOO_TITLE = 0,
COL_AOO_DATE_CREAT,
COL_AOO_CREATOR,
COL_AOO_SOURCE,
COL_AOO_SRC_INV_ID,
COL_AOO_CR_NOT,
COL_AOO_NUM_COLS
};
enum
{
COL_REGISTRY_ORG_ID = 0,
COL_REGISTRY_ITEM_ID,
COL_REGISTRY_NUM_COLS
};
enum
{
COL_LOC_SHO_SUB_LOC = 0,
COL_LOC_SHO_CITY,
COL_LOC_SHO_STATE_PROV,
COL_LOC_SHO_CNTRY,
COL_LOC_SHO_CNTRY_ISO,
COL_LOC_SHO_CNTRY_WRLD_REG,
COL_LOC_SHO_NUM_COLS
};
enum
{
COL_ORG_IMG_CODE = 0,
ORG_IMG_CODE_REL_NUM_COLS
};
enum
{
COL_ORG_IMG_NAME = 0,
ORG_IMG_NAME_REL_NUM_COLS
};
enum
{
COL_MOD_REL_ID = 0,
MOD_REL_NUM_COLS
};
enum
{
COL_PROP_REL_ID = 0,
PROP_REL_NUM_COLS
};
enum METADATA_SPECIAL_PROCESSING
{
METADATA_NONE = 0,
METADATA_PHONETYPE,
METADATA_PREPROCESS_TEXT
};
extern const metadata_tag default_metadata_tags[];
extern const gint n_default_metadata_tags;
extern const iptc_tag_info equivalent_metadata_tags[];
extern const gint n_equivalent_metadata_tags;
extern const exif_tag_info exif_equivalent_tags[];
/* Tag indexes in equivalent_metadata_tags that need special processing. */
#define SPECIAL_PROCESSING_DATE_CREATED 0
/* Digital Source Type Combobox Items
* http://cv.iptc.org/newscodes/digitalsourcetype/
*/
extern const combobox_str_tag digitalsourcetype[];
extern const gint n_digitalsourcetype;
/* Model Release Status Combobox Items
* http://ns.useplus.org/LDF/ldf-XMPSpecification#ModelReleaseStatus
*/
extern const combobox_str_tag modelreleasestatus[];
extern const gint n_modelreleasestatus;
/* Property Release Status Combobox Items
* http://ns.useplus.org/LDF/ldf-XMPSpecification#PropertyReleaseStatus
*/
extern const combobox_str_tag propertyreleasestatus[];
extern const gint n_propertyreleasestatus;
/* Minor Model Age Disclosure Combobox Items
* http://ns.useplus.org/LDF/ldf-XMPSpecification#MinorModelAgeDisclosure
*/
extern const combobox_str_tag minormodelagedisclosure[];
extern const gint n_minormodelagedisclosure;
/* Urgency */
extern const gchar *urgency[];
extern const gint n_urgency;
/* Marked */
extern const combobox_int_tag marked[];
extern const gint n_marked;
/* Phone Types */
extern const combobox_str_tag phone_types[];
extern const gint n_phone_types;
/* DICOM Patient Sex
* http://dicomlookup.com/lookup.asp?sw=Ttable&q=C.7-1
* http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/XMP.html#DICOM
* https://dicomiseasy.blogspot.ca/2011/11/introduction-to-dicom-chapter-iii-dicom.html
* http://dicom.nema.org/standard.html
*/
extern const combobox_str_tag dicom[];
extern const gint n_dicom;
/* GPS Altitude Ref */
extern const gchar *gpsaltref[];
extern const gint n_gpsaltref;
/* GPS Latitude Ref */
extern const gchar *gpslatref[];
extern const gint n_gpslatref;
/* GPS Longitude Ref */
extern const gchar *gpslngref[];
extern const gint n_gpslngref;
/* GPS Measurement System */
extern const gchar *gpsaltsys[];
extern const gint n_gpsaltsys;
extern const TranslateTag creatorContactInfoTags[];
extern const gint n_creatorContactInfoTags;
extern const TranslateTag locationCreationInfoTags[];
extern const gint n_locationCreationInfoTags;
extern const TranslateTag imageSupplierInfoTags[];
extern const gint n_imageSupplierInfoTags;
/* Plus and IPTC extension tags */
#define LICENSOR_HEADER "Xmp.plus.Licensor"
extern const gchar *licensor[];
extern const gint n_licensor;
extern const gint licensor_special_handling[];
#ifdef USE_TAGS
#define IMAGESUPPLIER_HEADER "Xmp.plus.ImageSupplier"
extern const gchar *imagesupplier[];
extern const gint n_imagesupplier;
#endif
#define IMAGECREATOR_HEADER "Xmp.plus.ImageCreator"
extern const gchar *imagecreator[];
extern const gint n_imagecreator;
#define COPYRIGHTOWNER_HEADER "Xmp.plus.CopyrightOwner"
extern const gchar *copyrightowner[];
extern const gint n_copyrightowner;
#define REGISTRYID_HEADER "Xmp.iptcExt.RegistryId"
extern const gchar *registryid[];
extern const gchar *registryid_alternative[];
extern const gint n_registryid;
#define ARTWORKOROBJECT_HEADER "Xmp.iptcExt.ArtworkOrObject"
extern const gchar *artworkorobject[];
extern const gchar *artworkorobject_alternative[];
extern const gint n_artworkorobject;
#define LOCATIONSHOWN_HEADER "Xmp.iptcExt.LocationShown"
extern const gchar *locationshown[];
extern const gchar *locationshown_alternative[];
extern const gint n_locationshown;
#ifdef USE_TAGS
#define LOCATIONCREATED_HEADER "Xmp.iptcExt.LocationCreated"
extern const gchar *locationcreated[];
extern const gint n_locationcreated;
#endif
gchar * metadata_format_gps_longitude_latitude (const gdouble value);
gchar * metadata_format_gps_altitude (const gdouble value,
gboolean use_meter,
gchar *measurement_symbol);
#endif /* __METADATA_TAGS_H__ */