summaryrefslogtreecommitdiffstats
path: root/src/multimedia/qtmedianamespace.cpp
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2012-01-16 16:40:47 +1000
committerQt by Nokia <qt-info@nokia.com>2012-01-20 06:30:37 +0100
commit8ff5b88b27b83438bfe576eea824a4a4d47249ce (patch)
tree1ccb1b0114ec8371ac44a0ab68535c50f8e4e604 /src/multimedia/qtmedianamespace.cpp
parent382ba7d4f4c1ca91d59d04faf35a3d75d6430df5 (diff)
Changed metadata keys type from enum to QString.
This allows to combine metaData and extendedMetaData and simplify metadata handling on both backend and application sides. Change-Id: I136eedc86c215be3485db101c43069ca7c82101b Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'src/multimedia/qtmedianamespace.cpp')
-rw-r--r--src/multimedia/qtmedianamespace.cpp116
1 files changed, 113 insertions, 3 deletions
diff --git a/src/multimedia/qtmedianamespace.cpp b/src/multimedia/qtmedianamespace.cpp
index b228dad34..51dd02c80 100644
--- a/src/multimedia/qtmedianamespace.cpp
+++ b/src/multimedia/qtmedianamespace.cpp
@@ -54,17 +54,127 @@ namespace
{
qRegisterMetaType<QtMultimedia::AvailabilityError>();
qRegisterMetaType<QtMultimedia::SupportEstimate>();
- qRegisterMetaType<QtMultimedia::MetaData>();
qRegisterMetaType<QtMultimedia::EncodingMode>();
qRegisterMetaType<QtMultimedia::EncodingQuality>();
}
} _registerMetaTypes;
}
+/*
+ When these conditions are satisfied, QStringLiteral is implemented by
+ gcc's statement-expression extension. However, in this file it will
+ not work, because "statement-expressions are not allowed outside functions
+ nor in template-argument lists".
+
+ Fall back to the less-performant QLatin1String in this case.
+*/
+#if defined(QStringLiteral) && defined(QT_UNICODE_LITERAL_II) && defined(Q_CC_GNU) && !defined(Q_COMPILER_LAMBDA)
+# undef QStringLiteral
+# define QStringLiteral QLatin1String
+#endif
+
+#define Q_DEFINE_METADATA(key) const QString QtMultimedia::MetaData::key(QStringLiteral(#key))
+
+// Common
+Q_DEFINE_METADATA(Title);
+Q_DEFINE_METADATA(SubTitle);
+Q_DEFINE_METADATA(Author);
+Q_DEFINE_METADATA(Comment);
+Q_DEFINE_METADATA(Description);
+Q_DEFINE_METADATA(Category);
+Q_DEFINE_METADATA(Genre);
+Q_DEFINE_METADATA(Year);
+Q_DEFINE_METADATA(Date);
+Q_DEFINE_METADATA(UserRating);
+Q_DEFINE_METADATA(Keywords);
+Q_DEFINE_METADATA(Language);
+Q_DEFINE_METADATA(Publisher);
+Q_DEFINE_METADATA(Copyright);
+Q_DEFINE_METADATA(ParentalRating);
+Q_DEFINE_METADATA(RatingOrganization);
+
+// Media
+Q_DEFINE_METADATA(Size);
+Q_DEFINE_METADATA(MediaType);
+Q_DEFINE_METADATA(Duration);
+
+// Audio
+Q_DEFINE_METADATA(AudioBitRate);
+Q_DEFINE_METADATA(AudioCodec);
+Q_DEFINE_METADATA(AverageLevel);
+Q_DEFINE_METADATA(ChannelCount);
+Q_DEFINE_METADATA(PeakValue);
+Q_DEFINE_METADATA(SampleRate);
+
+// Music
+Q_DEFINE_METADATA(AlbumTitle);
+Q_DEFINE_METADATA(AlbumArtist);
+Q_DEFINE_METADATA(ContributingArtist);
+Q_DEFINE_METADATA(Composer);
+Q_DEFINE_METADATA(Conductor);
+Q_DEFINE_METADATA(Lyrics);
+Q_DEFINE_METADATA(Mood);
+Q_DEFINE_METADATA(TrackNumber);
+Q_DEFINE_METADATA(TrackCount);
+
+Q_DEFINE_METADATA(CoverArtUrlSmall);
+Q_DEFINE_METADATA(CoverArtUrlLarge);
+
+// Image/Video
+Q_DEFINE_METADATA(Resolution);
+Q_DEFINE_METADATA(PixelAspectRatio);
+
+// Video
+Q_DEFINE_METADATA(VideoFrameRate);
+Q_DEFINE_METADATA(VideoBitRate);
+Q_DEFINE_METADATA(VideoCodec);
+
+Q_DEFINE_METADATA(PosterUrl);
+
+// Movie
+Q_DEFINE_METADATA(ChapterNumber);
+Q_DEFINE_METADATA(Director);
+Q_DEFINE_METADATA(LeadPerformer);
+Q_DEFINE_METADATA(Writer);
+
+// Photos
+Q_DEFINE_METADATA(CameraManufacturer);
+Q_DEFINE_METADATA(CameraModel);
+Q_DEFINE_METADATA(Event);
+Q_DEFINE_METADATA(Subject);
+Q_DEFINE_METADATA(Orientation);
+Q_DEFINE_METADATA(ExposureTime);
+Q_DEFINE_METADATA(FNumber);
+Q_DEFINE_METADATA(ExposureProgram);
+Q_DEFINE_METADATA(ISOSpeedRatings);
+Q_DEFINE_METADATA(ExposureBiasValue);
+Q_DEFINE_METADATA(DateTimeOriginal);
+Q_DEFINE_METADATA(DateTimeDigitized);
+Q_DEFINE_METADATA(SubjectDistance);
+Q_DEFINE_METADATA(MeteringMode);
+Q_DEFINE_METADATA(LightSource);
+Q_DEFINE_METADATA(Flash);
+Q_DEFINE_METADATA(FocalLength);
+Q_DEFINE_METADATA(ExposureMode);
+Q_DEFINE_METADATA(WhiteBalance);
+Q_DEFINE_METADATA(DigitalZoomRatio);
+Q_DEFINE_METADATA(FocalLengthIn35mmFilm);
+Q_DEFINE_METADATA(SceneCaptureType);
+Q_DEFINE_METADATA(GainControl);
+Q_DEFINE_METADATA(Contrast);
+Q_DEFINE_METADATA(Saturation);
+Q_DEFINE_METADATA(Sharpness);
+Q_DEFINE_METADATA(DeviceSettingDescription);
+
+Q_DEFINE_METADATA(PosterImage);
+Q_DEFINE_METADATA(CoverArtImage);
+Q_DEFINE_METADATA(ThumbnailImage);
+
+
/*!
- \enum QtMultimedia::MetaData
+ \namespace QtMultimedia::MetaData
- This enum provides identifiers for meta-data attributes.
+ This namespace provides identifiers for meta-data attributes.
\note Not all identifiers are supported on all platforms. Please consult vendor documentation for specific support
on different platforms.