File indexing completed on 2025-03-16 06:50:38
0001 /* 0002 This file is part of KFileMetaData 0003 SPDX-FileCopyrightText: 2014 Vishesh Handa <me@vhanda.in> 0004 0005 SPDX-License-Identifier: LGPL-2.1-or-later 0006 */ 0007 0008 #ifndef KFILEMETADATA_PROPERTIES 0009 #define KFILEMETADATA_PROPERTIES 0010 0011 #include "kfilemetadata_export.h" 0012 0013 #include <QMap> 0014 #include <QVariant> 0015 0016 /** @file properties.h <KFileMetaData/Properties> */ 0017 namespace KFileMetaData { 0018 namespace Property { 0019 0020 /** 0021 * @brief The Property enum contains all files property types that KFileMetaData manipulates 0022 */ 0023 enum Property { 0024 Empty = 0, 0025 0026 /** 0027 * The Bit Rate of the Audio in the File. Represented as an integer 0028 * in kbit/sec 0029 */ 0030 BitRate, 0031 0032 /** 0033 * The number of channels of the Audio in the File. Represented as an 0034 * integer. 0035 */ 0036 Channels, 0037 0038 /** 0039 * The duration of the media in the file. Represented as an integer 0040 * in seconds. 0041 */ 0042 Duration, 0043 0044 /** 0045 * The Genre of an Audio file. This s represented as a string 0046 * of genres and not integers. The IDv1 standard provides a list of 0047 * commonly excepted genres. 0048 */ 0049 Genre, 0050 0051 /** 0052 * The same rate or frequency of the Audio in the file. This is represented 0053 * as an integer in Hz. So a file with "44.1KHz" will have a frequency 0054 * of 44100 0055 */ 0056 SampleRate, 0057 0058 /** 0059 * Represents the track number in a set. Typically maps to the "TRCK" tag 0060 * in IDv3 0061 */ 0062 TrackNumber, 0063 0064 /** 0065 * Indicates the year a track was released. Represented as an integer. 0066 * Typically mapped to the "TYE (Year)" tag in IDv1 0067 */ 0068 ReleaseYear, 0069 0070 /** 0071 * Represents a comment stored in the file. This can map 0072 * to e.g. the "COMM" field from IDv3 0073 */ 0074 Comment, 0075 0076 /** 0077 * Represents the artist of a media file. This generally corresponds 0078 * to the IDv1 ARTIST tag. Many extractors often split this string 0079 * into a number of artists. 0080 */ 0081 Artist, 0082 0083 /** 0084 * Represents the album of a media file. This generally corresponds 0085 * to the IDv1 ALBUM tag. 0086 */ 0087 Album, 0088 0089 /** 0090 * Represents the album artist of a media file. This generally corresponds 0091 * to the IDv3 TPE2 ("Band/Orchestra/Accompaniment") tag. 0092 */ 0093 AlbumArtist, 0094 0095 /** 0096 * Represents the Composer of a media file. This generally corresponds 0097 * to the IDv2 COMPOSER tag. 0098 */ 0099 Composer, 0100 0101 /** 0102 * Represents the Lyricist of a media file. This generally corresponds 0103 * to the IDv2 "Lyricist/text writer" tag. 0104 */ 0105 Lyricist, 0106 0107 /** 0108 * The Author field indicated the primary creator of a document. 0109 * This often corresponds directly to dc:creator 0110 */ 0111 Author, 0112 0113 /** 0114 * Refers to the Title of the content of the file. This can represented 0115 * by the IDv1 tag TT2 (Title/songname/content description) or the TITLE 0116 * in a PDF file or the 'dc:title' tag in DublinCore. 0117 */ 0118 Title, 0119 0120 /** 0121 * Refers to the subject of the file. This directly corresponds to the 0122 * 'dc:subject' tag from DublinCore. 0123 */ 0124 Subject, 0125 0126 /** 0127 * Refers to the Application used to create this file. In the ODF standard 0128 * this maps to the 'meta:generator' tag. In PDFs its mapped to the 0129 * "Producer" tag. 0130 */ 0131 Generator, 0132 0133 /** 0134 * The number of pages in a document 0135 */ 0136 PageCount, 0137 0138 /** 0139 * The number of words in a document. This is often only provided for 0140 * documents where the word count is available in the metadata. 0141 */ 0142 WordCount, 0143 0144 /** 0145 * The number of lines in a document. This is often only provided for 0146 * documents where the line count is available in the metadata. 0147 */ 0148 LineCount, 0149 0150 /** 0151 * The language the document is written in. This directly maps to the 0152 * 'dc:language' tag from DublinCore. We do NOT employ any language 0153 * detection schemes on the text. 0154 * @since 5.50 0155 */ 0156 Language, 0157 0158 /** 0159 * The copyright of the file. Represented as a string. 0160 */ 0161 Copyright, 0162 0163 /** 0164 * The publisher of the content. Represented as a string. 0165 */ 0166 Publisher, 0167 0168 /** 0169 * The date the content of the file was created. This is extracted 0170 * from the File MetaData and not from the file system. 0171 * In ODF, it corresponds to "meta:creation-date", in PDF to the 0172 * "CreationDate" tag, and otherwise the "dcterms:created" tag. 0173 */ 0174 CreationDate, 0175 0176 /** 0177 * The keywords used to represent the document. This is mostly a string list 0178 * of all the keywords. 0179 */ 0180 Keywords, 0181 0182 /** 0183 * Represents the width of the Media in pixels. This is generally 0184 * only applicable for Images and Videos. 0185 */ 0186 Width, 0187 0188 /** 0189 * Represents the height of the Media in pixels. This is generally 0190 * only applicable for Images and Videos. 0191 */ 0192 Height, 0193 0194 /** 0195 * The Aspect Ratio of the visual image or video. 0196 * It is the width of a pixel divided by the height of the pixel. 0197 */ 0198 AspectRatio, 0199 0200 /** 0201 * Number of frames per second 0202 */ 0203 FrameRate, 0204 0205 /** 0206 * The manufacturer of the equipment used for generating the file 0207 * and metadata. Typically maps to the 'Exif.Image.Make' tag. 0208 * @since 5.60 0209 */ 0210 Manufacturer, 0211 0212 /** 0213 * The model name of the equipment used for generating the file 0214 * and metadata. Typically maps to the 'Exif.Image.Model' tag. 0215 * @since 5.60 0216 */ 0217 Model, 0218 0219 ImageDateTime, 0220 ImageOrientation, 0221 PhotoFlash, 0222 PhotoPixelXDimension, 0223 PhotoPixelYDimension, 0224 PhotoDateTimeOriginal, 0225 PhotoFocalLength, 0226 PhotoFocalLengthIn35mmFilm, 0227 PhotoExposureTime, 0228 PhotoFNumber, 0229 PhotoApertureValue, 0230 PhotoExposureBiasValue, 0231 PhotoWhiteBalance, 0232 PhotoMeteringMode, 0233 PhotoISOSpeedRatings, 0234 PhotoSaturation, 0235 PhotoSharpness, 0236 PhotoGpsLatitude, 0237 PhotoGpsLongitude, 0238 PhotoGpsAltitude, 0239 0240 TranslationUnitsTotal, 0241 TranslationUnitsWithTranslation, 0242 TranslationUnitsWithDraftTranslation, 0243 TranslationLastAuthor, 0244 TranslationLastUpDate, 0245 TranslationTemplateDate, 0246 0247 /** 0248 * The URL this file has originally been downloaded from. 0249 */ 0250 OriginUrl, 0251 0252 /** 0253 * The subject of the email this file was originally attached to. 0254 */ 0255 OriginEmailSubject, 0256 0257 /** 0258 * The sender of the email this file was originally attached to. 0259 */ 0260 OriginEmailSender, 0261 0262 /** 0263 * The message ID of the email this file was originally attached to. 0264 */ 0265 OriginEmailMessageId, 0266 0267 /** 0268 * Represents the disc number in a multi-disc set. Typically maps to the "TPOS" tag for mp3 0269 */ 0270 DiscNumber, 0271 0272 /** 0273 * Represents the location where an audio file was recorded. 0274 */ 0275 Location, 0276 0277 /** 0278 * Represents the (lead) performer of an audio file. 0279 */ 0280 Performer, 0281 0282 /** 0283 * Represents the ensemble of an audio file. 0284 */ 0285 Ensemble, 0286 0287 /** 0288 * Represents the arranger of an audio file. 0289 */ 0290 Arranger, 0291 0292 /** 0293 * Represents the conductor of an audio file. 0294 */ 0295 Conductor, 0296 0297 /** 0298 * Represents the opus of an audio file mostly used for classical music. 0299 */ 0300 Opus, 0301 0302 /** 0303 * Represents the label of the content. 0304 */ 0305 Label, 0306 0307 /** 0308 * Contains the name of the compilation of an audio file. 0309 */ 0310 Compilation, 0311 0312 /** 0313 * Contains the license information of the file 0314 */ 0315 License, 0316 0317 /** 0318 * For ratings stored in Metadata tags 0319 */ 0320 Rating, 0321 /** 0322 * Contains the lyrics of a song embedded in the file 0323 */ 0324 Lyrics, 0325 /** 0326 * Contains ReplayGain information for audio files 0327 */ 0328 ReplayGainAlbumPeak, 0329 /** 0330 * Contains ReplayGain information for audio files 0331 * The album gain is given in "dB" 0332 */ 0333 ReplayGainAlbumGain, 0334 /** 0335 * Contains ReplayGain information for audio files 0336 */ 0337 ReplayGainTrackPeak, 0338 /** 0339 * Contains ReplayGain information for audio files 0340 * The track gain is given in "dB" 0341 */ 0342 ReplayGainTrackGain, 0343 0344 /** 0345 * Represents the description stored in the file. This maps 0346 * to the 'dc:description' tag from DublinCore 0347 */ 0348 Description, 0349 }; 0350 0351 } // namespace Property 0352 0353 using PropertyMultiMap = QMultiMap<Property::Property, QVariant>; 0354 0355 } // namespace KFileMetaData 0356 0357 Q_DECLARE_METATYPE(KFileMetaData::Property::Property) 0358 0359 #endif