diff options
author | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2012-01-16 16:40:47 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-20 06:30:37 +0100 |
commit | 8ff5b88b27b83438bfe576eea824a4a4d47249ce (patch) | |
tree | 1ccb1b0114ec8371ac44a0ab68535c50f8e4e604 /src/multimedia/qtmedianamespace.cpp | |
parent | 382ba7d4f4c1ca91d59d04faf35a3d75d6430df5 (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.cpp | 116 |
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. |