1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 3 as published by the Free Software
20** Foundation and appearing in the file LICENSE.LGPL3 included in the
21** packaging of this file. Please review the following information to
22** ensure the GNU Lesser General Public License version 3 requirements
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24**
25** GNU General Public License Usage
26** Alternatively, this file may be used under the terms of the GNU
27** General Public License version 2.0 or (at your option) the GNU General
28** Public license version 3 or any later version approved by the KDE Free
29** Qt Foundation. The licenses are as published by the Free Software
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31** included in the packaging of this file. Please review the following
32** information to ensure the GNU General Public License requirements will
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34** https://www.gnu.org/licenses/gpl-3.0.html.
35**
36** $QT_END_LICENSE$
37**
38****************************************************************************/
39
40#ifndef QMEDIAMETADATA_H
41#define QMEDIAMETADATA_H
42
43#include <QtCore/qpair.h>
44#include <QtCore/qmetatype.h>
45#include <QtCore/qstring.h>
46
47#include <QtMultimedia/qtmultimediaglobal.h>
48
49QT_BEGIN_NAMESPACE
50
51// Class forward declaration required for QDoc bug
52class QString;
53
54#define Q_DECLARE_METADATA(key) Q_MULTIMEDIA_EXPORT extern const QString key
55
56namespace QMediaMetaData {
57#ifdef Q_QDOC
58 // QDoc does not like macros, so try to keep this in sync :)
59 QString Title;
60 QString SubTitle;
61 QString Author;
62 QString Comment;
63 QString Description;
64 QString Category;
65 QString Genre;
66 QString Year;
67 QString Date;
68 QString UserRating;
69 QString Keywords;
70 QString Language;
71 QString Publisher;
72 QString Copyright;
73 QString ParentalRating;
74 QString RatingOrganization;
75
76 // Media
77 QString Size;
78 QString MediaType;
79 QString Duration;
80
81 // Audio
82 QString AudioBitRate;
83 QString AudioCodec;
84 QString AverageLevel;
85 QString ChannelCount;
86 QString PeakValue;
87 QString SampleRate;
88
89 // Music
90 QString AlbumTitle;
91 QString AlbumArtist;
92 QString ContributingArtist;
93 QString Composer;
94 QString Conductor;
95 QString Lyrics;
96 QString Mood;
97 QString TrackNumber;
98 QString TrackCount;
99
100 QString CoverArtUrlSmall;
101 QString CoverArtUrlLarge;
102
103 // Image/Video
104 QString Resolution;
105 QString PixelAspectRatio;
106
107 // Video
108 QString VideoFrameRate;
109 QString VideoBitRate;
110 QString VideoCodec;
111
112 QString PosterUrl;
113
114 // Movie
115 QString ChapterNumber;
116 QString Director;
117 QString LeadPerformer;
118 QString Writer;
119
120 // Photos
121 QString CameraManufacturer;
122 QString CameraModel;
123 QString Event;
124 QString Subject;
125 QString Orientation;
126 QString ExposureTime;
127 QString FNumber;
128 QString ExposureProgram;
129 QString ISOSpeedRatings;
130 QString ExposureBiasValue;
131 QString DateTimeOriginal;
132 QString DateTimeDigitized;
133 QString SubjectDistance;
134 QString MeteringMode;
135 QString LightSource;
136 QString Flash;
137 QString FocalLength;
138 QString ExposureMode;
139 QString WhiteBalance;
140 QString DigitalZoomRatio;
141 QString FocalLengthIn35mmFilm;
142 QString SceneCaptureType;
143 QString GainControl;
144 QString Contrast;
145 QString Saturation;
146 QString Sharpness;
147 QString DeviceSettingDescription;
148
149 // Location
150 QString GPSLatitude;
151 QString GPSLongitude;
152 QString GPSAltitude;
153 QString GPSTimeStamp;
154 QString GPSSatellites;
155 QString GPSStatus;
156 QString GPSDOP;
157 QString GPSSpeed;
158 QString GPSTrack;
159 QString GPSTrackRef;
160 QString GPSImgDirection;
161 QString GPSImgDirectionRef;
162 QString GPSMapDatum;
163 QString GPSProcessingMethod;
164 QString GPSAreaInformation;
165
166 QString PosterImage;
167 QString CoverArtImage;
168 QString ThumbnailImage;
169#else
170 // Common
171 Q_DECLARE_METADATA(Title);
172 Q_DECLARE_METADATA(SubTitle);
173 Q_DECLARE_METADATA(Author);
174 Q_DECLARE_METADATA(Comment);
175 Q_DECLARE_METADATA(Description);
176 Q_DECLARE_METADATA(Category);
177 Q_DECLARE_METADATA(Genre);
178 Q_DECLARE_METADATA(Year);
179 Q_DECLARE_METADATA(Date);
180 Q_DECLARE_METADATA(UserRating);
181 Q_DECLARE_METADATA(Keywords);
182 Q_DECLARE_METADATA(Language);
183 Q_DECLARE_METADATA(Publisher);
184 Q_DECLARE_METADATA(Copyright);
185 Q_DECLARE_METADATA(ParentalRating);
186 Q_DECLARE_METADATA(RatingOrganization);
187
188 // Media
189 Q_DECLARE_METADATA(Size);
190 Q_DECLARE_METADATA(MediaType);
191 Q_DECLARE_METADATA(Duration);
192
193 // Audio
194 Q_DECLARE_METADATA(AudioBitRate);
195 Q_DECLARE_METADATA(AudioCodec);
196 Q_DECLARE_METADATA(AverageLevel);
197 Q_DECLARE_METADATA(ChannelCount);
198 Q_DECLARE_METADATA(PeakValue);
199 Q_DECLARE_METADATA(SampleRate);
200
201 // Music
202 Q_DECLARE_METADATA(AlbumTitle);
203 Q_DECLARE_METADATA(AlbumArtist);
204 Q_DECLARE_METADATA(ContributingArtist);
205 Q_DECLARE_METADATA(Composer);
206 Q_DECLARE_METADATA(Conductor);
207 Q_DECLARE_METADATA(Lyrics);
208 Q_DECLARE_METADATA(Mood);
209 Q_DECLARE_METADATA(TrackNumber);
210 Q_DECLARE_METADATA(TrackCount);
211
212 Q_DECLARE_METADATA(CoverArtUrlSmall);
213 Q_DECLARE_METADATA(CoverArtUrlLarge);
214
215 // Image/Video
216 Q_DECLARE_METADATA(Resolution);
217 Q_DECLARE_METADATA(PixelAspectRatio);
218
219 // Video
220 Q_DECLARE_METADATA(VideoFrameRate);
221 Q_DECLARE_METADATA(VideoBitRate);
222 Q_DECLARE_METADATA(VideoCodec);
223
224 Q_DECLARE_METADATA(PosterUrl);
225
226 // Movie
227 Q_DECLARE_METADATA(ChapterNumber);
228 Q_DECLARE_METADATA(Director);
229 Q_DECLARE_METADATA(LeadPerformer);
230 Q_DECLARE_METADATA(Writer);
231
232 // Photos
233 Q_DECLARE_METADATA(CameraManufacturer);
234 Q_DECLARE_METADATA(CameraModel);
235 Q_DECLARE_METADATA(Event);
236 Q_DECLARE_METADATA(Subject);
237 Q_DECLARE_METADATA(Orientation);
238 Q_DECLARE_METADATA(ExposureTime);
239 Q_DECLARE_METADATA(FNumber);
240 Q_DECLARE_METADATA(ExposureProgram);
241 Q_DECLARE_METADATA(ISOSpeedRatings);
242 Q_DECLARE_METADATA(ExposureBiasValue);
243 Q_DECLARE_METADATA(DateTimeOriginal);
244 Q_DECLARE_METADATA(DateTimeDigitized);
245 Q_DECLARE_METADATA(SubjectDistance);
246 Q_DECLARE_METADATA(MeteringMode);
247 Q_DECLARE_METADATA(LightSource);
248 Q_DECLARE_METADATA(Flash);
249 Q_DECLARE_METADATA(FocalLength);
250 Q_DECLARE_METADATA(ExposureMode);
251 Q_DECLARE_METADATA(WhiteBalance);
252 Q_DECLARE_METADATA(DigitalZoomRatio);
253 Q_DECLARE_METADATA(FocalLengthIn35mmFilm);
254 Q_DECLARE_METADATA(SceneCaptureType);
255 Q_DECLARE_METADATA(GainControl);
256 Q_DECLARE_METADATA(Contrast);
257 Q_DECLARE_METADATA(Saturation);
258 Q_DECLARE_METADATA(Sharpness);
259 Q_DECLARE_METADATA(DeviceSettingDescription);
260
261 // Location
262 Q_DECLARE_METADATA(GPSLatitude);
263 Q_DECLARE_METADATA(GPSLongitude);
264 Q_DECLARE_METADATA(GPSAltitude);
265 Q_DECLARE_METADATA(GPSTimeStamp);
266 Q_DECLARE_METADATA(GPSSatellites);
267 Q_DECLARE_METADATA(GPSStatus);
268 Q_DECLARE_METADATA(GPSDOP);
269 Q_DECLARE_METADATA(GPSSpeed);
270 Q_DECLARE_METADATA(GPSTrack);
271 Q_DECLARE_METADATA(GPSTrackRef);
272 Q_DECLARE_METADATA(GPSImgDirection);
273 Q_DECLARE_METADATA(GPSImgDirectionRef);
274 Q_DECLARE_METADATA(GPSMapDatum);
275 Q_DECLARE_METADATA(GPSProcessingMethod);
276 Q_DECLARE_METADATA(GPSAreaInformation);
277
278 Q_DECLARE_METADATA(PosterImage);
279 Q_DECLARE_METADATA(CoverArtImage);
280 Q_DECLARE_METADATA(ThumbnailImage);
281#endif
282}
283
284#undef Q_DECLARE_METADATA
285
286QT_END_NAMESPACE
287
288#endif // QMEDIAMETADATA_H
289