diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/multimedia/multimedia.cpp | 1 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera.cpp | 128 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera_p.h | 5 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativemediametadata_p.h | 359 |
4 files changed, 447 insertions, 46 deletions
diff --git a/src/imports/multimedia/multimedia.cpp b/src/imports/multimedia/multimedia.cpp index 5954db22c..18c74e006 100644 --- a/src/imports/multimedia/multimedia.cpp +++ b/src/imports/multimedia/multimedia.cpp @@ -81,6 +81,7 @@ public: qmlRegisterType<QDeclarativeRadio>(uri, 5, 0, "Radio"); qmlRegisterType<QDeclarativeRadioData>(uri, 5, 0, "RadioData"); qmlRegisterType<QDeclarativeCamera>(uri, 5, 0, "Camera"); + qmlRegisterRevision<QDeclarativeCamera, 1>(uri, 5, 4); qmlRegisterType<QDeclarativeTorch>(uri, 5, 0, "Torch"); qmlRegisterUncreatableType<QDeclarativeCameraCapture>(uri, 5, 0, "CameraCapture", trUtf8("CameraCapture is provided by Camera")); diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp index db5ba81a0..e2a5d0097 100644 --- a/src/imports/multimedia/qdeclarativecamera.cpp +++ b/src/imports/multimedia/qdeclarativecamera.cpp @@ -47,6 +47,8 @@ #include "qdeclarativecamerafocus_p.h" #include "qdeclarativecameraimageprocessing_p.h" +#include "qdeclarativemediametadata_p.h" + #include <qmediaplayercontrol.h> #include <qmediaservice.h> #include <qvideorenderercontrol.h> @@ -172,6 +174,7 @@ void QDeclarativeCamera::_q_availabilityChanged(QMultimedia::AvailabilityStatus QDeclarativeCamera::QDeclarativeCamera(QObject *parent) : QObject(parent), m_camera(0), + m_metaData(0), m_pendingState(ActiveState), m_componentComplete(false) { @@ -200,6 +203,8 @@ QDeclarativeCamera::QDeclarativeCamera(QObject *parent) : /*! Destructor, clean up memory */ QDeclarativeCamera::~QDeclarativeCamera() { + delete m_metaData; + m_camera->unload(); } @@ -673,6 +678,129 @@ void QDeclarativeCamera::setDigitalZoom(qreal value) The corresponding handler is \c onMaximumDigitalZoomChanged. */ +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.cameraManufacturer + + This property holds the name of the manufacturer of the camera. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.cameraModel + + This property holds the name of the model of the camera. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.event + + This property holds the event during which the photo or video is to be captured. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.subject + + This property holds the name of the subject of the capture or recording. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.orientation + + This property holds the clockwise rotation of the camera at time of capture. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.dateTimeOriginal + + This property holds the initial time at which the photo or video is + captured. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.gpsLatitude + \qmlproperty variant QtMultimedia::Camera::metaData.gpsLongitude + \qmlproperty variant QtMultimedia::Camera::metaData.gpsAltitude + + These properties hold the the geographic position in decimal degrees of the + camera at time of capture. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.gpsTimestamp + + This property holds the timestamp of the GPS position data. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.gpsTrack + + This property holds direction of movement of the camera at the time of + capture. It is measured in degrees clockwise from north. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.gpsSpeed + + This property holds the velocity in kilometers per hour of the camera at + time of capture. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.gpsImgDirection + + This property holds direction the camera is facing at the time of capture. + It is measured in degrees clockwise from north. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +/*! + \qmlproperty variant QtMultimedia::Camera::metaData.gpsProcessingMethod + + This property holds the name of the method for determining the GPS position + data. + + \sa {QMediaMetaData} + \since 5.4 +*/ + +QDeclarativeMediaMetaData *QDeclarativeCamera::metaData() +{ + if (!m_metaData) + m_metaData = new QDeclarativeMediaMetaData(m_camera, this); + return m_metaData; +} + QT_END_NAMESPACE #include "moc_qdeclarativecamera_p.cpp" diff --git a/src/imports/multimedia/qdeclarativecamera_p.h b/src/imports/multimedia/qdeclarativecamera_p.h index 8638c423d..05dd55f3a 100644 --- a/src/imports/multimedia/qdeclarativecamera_p.h +++ b/src/imports/multimedia/qdeclarativecamera_p.h @@ -71,6 +71,7 @@ class QDeclarativeCameraExposure; class QDeclarativeCameraFocus; class QDeclarativeCameraFlash; class QDeclarativeCameraImageProcessing; +class QDeclarativeMediaMetaData; class QDeclarativeCamera : public QObject, public QQmlParserStatus { @@ -98,6 +99,7 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus Q_PROPERTY(QDeclarativeCameraFlash* flash READ flash CONSTANT) Q_PROPERTY(QDeclarativeCameraFocus* focus READ focus CONSTANT) Q_PROPERTY(QDeclarativeCameraImageProcessing* imageProcessing READ imageProcessing CONSTANT) + Q_PROPERTY(QDeclarativeMediaMetaData *metaData READ metaData CONSTANT REVISION 1) Q_ENUMS(CaptureMode) Q_ENUMS(State) @@ -232,6 +234,8 @@ public: QDeclarativeCameraFocus *focus() { return m_focus; } QDeclarativeCameraImageProcessing *imageProcessing() { return m_imageProcessing; } + QDeclarativeMediaMetaData *metaData(); + CaptureMode captureMode() const; State cameraState() const; Status cameraStatus() const; @@ -301,6 +305,7 @@ private: QDeclarativeCameraFlash *m_flash; QDeclarativeCameraFocus *m_focus; QDeclarativeCameraImageProcessing *m_imageProcessing; + QDeclarativeMediaMetaData *m_metaData; State m_pendingState; bool m_componentComplete; diff --git a/src/imports/multimedia/qdeclarativemediametadata_p.h b/src/imports/multimedia/qdeclarativemediametadata_p.h index 1983effa0..090528c8f 100644 --- a/src/imports/multimedia/qdeclarativemediametadata_p.h +++ b/src/imports/multimedia/qdeclarativemediametadata_p.h @@ -55,6 +55,8 @@ #include <QtQml/qqml.h> #include <QtMultimedia/qmediametadata.h> +#include <QtMultimedia/qmediaservice.h> +#include <QtMultimedia/qmetadatawritercontrol.h> #include "qmediaobject.h" QT_BEGIN_NAMESPACE @@ -62,116 +64,381 @@ QT_BEGIN_NAMESPACE class QDeclarativeMediaMetaData : public QObject { Q_OBJECT - Q_PROPERTY(QVariant title READ title NOTIFY metaDataChanged) - Q_PROPERTY(QVariant subTitle READ subTitle NOTIFY metaDataChanged) - Q_PROPERTY(QVariant author READ author NOTIFY metaDataChanged) - Q_PROPERTY(QVariant comment READ comment NOTIFY metaDataChanged) - Q_PROPERTY(QVariant description READ description NOTIFY metaDataChanged) - Q_PROPERTY(QVariant category READ category NOTIFY metaDataChanged) - Q_PROPERTY(QVariant genre READ genre NOTIFY metaDataChanged) - Q_PROPERTY(QVariant year READ year NOTIFY metaDataChanged) - Q_PROPERTY(QVariant date READ date NOTIFY metaDataChanged) - Q_PROPERTY(QVariant userRating READ userRating NOTIFY metaDataChanged) - Q_PROPERTY(QVariant keywords READ keywords NOTIFY metaDataChanged) - Q_PROPERTY(QVariant language READ language NOTIFY metaDataChanged) - Q_PROPERTY(QVariant publisher READ publisher NOTIFY metaDataChanged) - Q_PROPERTY(QVariant copyright READ copyright NOTIFY metaDataChanged) - Q_PROPERTY(QVariant parentalRating READ parentalRating NOTIFY metaDataChanged) - Q_PROPERTY(QVariant ratingOrganization READ ratingOrganization NOTIFY metaDataChanged) - Q_PROPERTY(QVariant size READ size NOTIFY metaDataChanged) - Q_PROPERTY(QVariant mediaType READ mediaType NOTIFY metaDataChanged) - Q_PROPERTY(QVariant duration READ duration NOTIFY metaDataChanged) - Q_PROPERTY(QVariant audioBitRate READ audioBitRate NOTIFY metaDataChanged) - Q_PROPERTY(QVariant audioCodec READ audioCodec NOTIFY metaDataChanged) - Q_PROPERTY(QVariant averageLevel READ averageLevel NOTIFY metaDataChanged) - Q_PROPERTY(QVariant channelCount READ channelCount NOTIFY metaDataChanged) - Q_PROPERTY(QVariant peakValue READ peakValue NOTIFY metaDataChanged) - Q_PROPERTY(QVariant sampleRate READ sampleRate NOTIFY metaDataChanged) - Q_PROPERTY(QVariant albumTitle READ albumTitle NOTIFY metaDataChanged) - Q_PROPERTY(QVariant albumArtist READ albumArtist NOTIFY metaDataChanged) - Q_PROPERTY(QVariant contributingArtist READ contributingArtist NOTIFY metaDataChanged) - Q_PROPERTY(QVariant composer READ composer NOTIFY metaDataChanged) - Q_PROPERTY(QVariant conductor READ conductor NOTIFY metaDataChanged) - Q_PROPERTY(QVariant lyrics READ lyrics NOTIFY metaDataChanged) - Q_PROPERTY(QVariant mood READ mood NOTIFY metaDataChanged) - Q_PROPERTY(QVariant trackNumber READ trackNumber NOTIFY metaDataChanged) - Q_PROPERTY(QVariant trackCount READ trackCount NOTIFY metaDataChanged) - Q_PROPERTY(QVariant coverArtUrlSmall READ coverArtUrlSmall NOTIFY metaDataChanged) - Q_PROPERTY(QVariant coverArtUrlLarge READ coverArtUrlLarge NOTIFY metaDataChanged) - Q_PROPERTY(QVariant resolution READ resolution NOTIFY metaDataChanged) - Q_PROPERTY(QVariant pixelAspectRatio READ pixelAspectRatio NOTIFY metaDataChanged) - Q_PROPERTY(QVariant videoFrameRate READ videoFrameRate NOTIFY metaDataChanged) - Q_PROPERTY(QVariant videoBitRate READ videoBitRate NOTIFY metaDataChanged) - Q_PROPERTY(QVariant videoCodec READ videoCodec NOTIFY metaDataChanged) - Q_PROPERTY(QVariant posterUrl READ posterUrl NOTIFY metaDataChanged) - Q_PROPERTY(QVariant chapterNumber READ chapterNumber NOTIFY metaDataChanged) - Q_PROPERTY(QVariant director READ director NOTIFY metaDataChanged) - Q_PROPERTY(QVariant leadPerformer READ leadPerformer NOTIFY metaDataChanged) - Q_PROPERTY(QVariant writer READ writer NOTIFY metaDataChanged) + Q_PROPERTY(QVariant title READ title WRITE setTitle NOTIFY metaDataChanged) + Q_PROPERTY(QVariant subTitle READ subTitle WRITE setSubTitle NOTIFY metaDataChanged) + Q_PROPERTY(QVariant author READ author WRITE setAuthor NOTIFY metaDataChanged) + Q_PROPERTY(QVariant comment READ comment WRITE setComment NOTIFY metaDataChanged) + Q_PROPERTY(QVariant description READ description WRITE setDescription NOTIFY metaDataChanged) + Q_PROPERTY(QVariant category READ category WRITE setCategory NOTIFY metaDataChanged) + Q_PROPERTY(QVariant genre READ genre WRITE setGenre NOTIFY metaDataChanged) + Q_PROPERTY(QVariant year READ year WRITE setYear NOTIFY metaDataChanged) + Q_PROPERTY(QVariant date READ date WRITE setDate NOTIFY metaDataChanged) + Q_PROPERTY(QVariant userRating READ userRating WRITE setUserRating NOTIFY metaDataChanged) + Q_PROPERTY(QVariant keywords READ keywords WRITE setKeywords NOTIFY metaDataChanged) + Q_PROPERTY(QVariant language READ language WRITE setLanguage NOTIFY metaDataChanged) + Q_PROPERTY(QVariant publisher READ publisher WRITE setPublisher NOTIFY metaDataChanged) + Q_PROPERTY(QVariant copyright READ copyright WRITE setCopyright NOTIFY metaDataChanged) + Q_PROPERTY(QVariant parentalRating READ parentalRating WRITE setParentalRating NOTIFY metaDataChanged) + Q_PROPERTY(QVariant ratingOrganization READ ratingOrganization WRITE setRatingOrganization NOTIFY metaDataChanged) + Q_PROPERTY(QVariant size READ size WRITE setSize NOTIFY metaDataChanged) + Q_PROPERTY(QVariant mediaType READ mediaType WRITE setMediaType NOTIFY metaDataChanged) + Q_PROPERTY(QVariant duration READ duration WRITE setDuration NOTIFY metaDataChanged) + Q_PROPERTY(QVariant audioBitRate READ audioBitRate WRITE setAudioBitRate NOTIFY metaDataChanged) + Q_PROPERTY(QVariant audioCodec READ audioCodec WRITE setAudioCodec NOTIFY metaDataChanged) + Q_PROPERTY(QVariant averageLevel READ averageLevel WRITE setAverageLevel NOTIFY metaDataChanged) + Q_PROPERTY(QVariant channelCount READ channelCount WRITE setChannelCount NOTIFY metaDataChanged) + Q_PROPERTY(QVariant peakValue READ peakValue WRITE setPeakValue NOTIFY metaDataChanged) + Q_PROPERTY(QVariant sampleRate READ sampleRate WRITE setSampleRate NOTIFY metaDataChanged) + Q_PROPERTY(QVariant albumTitle READ albumTitle WRITE setAlbumTitle NOTIFY metaDataChanged) + Q_PROPERTY(QVariant albumArtist READ albumArtist WRITE setAlbumArtist NOTIFY metaDataChanged) + Q_PROPERTY(QVariant contributingArtist READ contributingArtist WRITE setContributingArtist NOTIFY metaDataChanged) + Q_PROPERTY(QVariant composer READ composer WRITE setComposer NOTIFY metaDataChanged) + Q_PROPERTY(QVariant conductor READ conductor WRITE setConductor NOTIFY metaDataChanged) + Q_PROPERTY(QVariant lyrics READ lyrics WRITE setLyrics NOTIFY metaDataChanged) + Q_PROPERTY(QVariant mood READ mood WRITE setMood NOTIFY metaDataChanged) + Q_PROPERTY(QVariant trackNumber READ trackNumber WRITE setTrackNumber NOTIFY metaDataChanged) + Q_PROPERTY(QVariant trackCount READ trackCount WRITE setTrackCount NOTIFY metaDataChanged) + Q_PROPERTY(QVariant coverArtUrlSmall READ coverArtUrlSmall WRITE setCoverArtUrlSmall NOTIFY metaDataChanged) + Q_PROPERTY(QVariant coverArtUrlLarge READ coverArtUrlLarge WRITE setCoverArtUrlLarge NOTIFY metaDataChanged) + Q_PROPERTY(QVariant resolution READ resolution WRITE setResolution NOTIFY metaDataChanged) + Q_PROPERTY(QVariant pixelAspectRatio READ pixelAspectRatio WRITE setPixelAspectRatio NOTIFY metaDataChanged) + Q_PROPERTY(QVariant videoFrameRate READ videoFrameRate WRITE setVideoFrameRate NOTIFY metaDataChanged) + Q_PROPERTY(QVariant videoBitRate READ videoBitRate WRITE setVideoBitRate NOTIFY metaDataChanged) + Q_PROPERTY(QVariant videoCodec READ videoCodec WRITE setVideoCodec NOTIFY metaDataChanged) + Q_PROPERTY(QVariant posterUrl READ posterUrl WRITE setPosterUrl NOTIFY metaDataChanged) + Q_PROPERTY(QVariant chapterNumber READ chapterNumber WRITE setChapterNumber NOTIFY metaDataChanged) + Q_PROPERTY(QVariant director READ director WRITE setDirector NOTIFY metaDataChanged) + Q_PROPERTY(QVariant leadPerformer READ leadPerformer WRITE setLeadPerformer NOTIFY metaDataChanged) + Q_PROPERTY(QVariant writer READ writer WRITE setWriter NOTIFY metaDataChanged) + + Q_PROPERTY(QVariant cameraManufacturer READ cameraManufacturer WRITE setCameraManufacturer NOTIFY metaDataChanged) + Q_PROPERTY(QVariant cameraModel READ cameraModel WRITE setCameraModel NOTIFY metaDataChanged) + Q_PROPERTY(QVariant event READ event WRITE setEvent NOTIFY metaDataChanged) + Q_PROPERTY(QVariant subject READ subject WRITE setSubject NOTIFY metaDataChanged) + Q_PROPERTY(QVariant orientation READ orientation WRITE setOrientation NOTIFY metaDataChanged) + Q_PROPERTY(QVariant exposureTime READ exposureTime WRITE setExposureTime NOTIFY metaDataChanged) + Q_PROPERTY(QVariant fNumber READ fNumber WRITE setFNumber NOTIFY metaDataChanged) + Q_PROPERTY(QVariant exposureProgram READ exposureProgram WRITE setExposureProgram NOTIFY metaDataChanged) + Q_PROPERTY(QVariant isoSpeedRatings READ isoSpeedRatings WRITE setISOSpeedRatings NOTIFY metaDataChanged) + Q_PROPERTY(QVariant exposureBiasValue READ exposureBiasValue WRITE setExposureBiasValue NOTIFY metaDataChanged) + Q_PROPERTY(QVariant dateTimeOriginal READ dateTimeOriginal WRITE setDateTimeOriginal NOTIFY metaDataChanged) + Q_PROPERTY(QVariant dateTimeDigitized READ dateTimeDigitized WRITE setDateTimeDigitized NOTIFY metaDataChanged) + Q_PROPERTY(QVariant subjectDistance READ subjectDistance WRITE setSubjectDistance NOTIFY metaDataChanged) + Q_PROPERTY(QVariant meteringMode READ meteringMode WRITE setMeteringMode NOTIFY metaDataChanged) + Q_PROPERTY(QVariant lightSource READ lightSource WRITE setLightSource NOTIFY metaDataChanged) + Q_PROPERTY(QVariant flash READ flash WRITE setFlash NOTIFY metaDataChanged) + Q_PROPERTY(QVariant focalLength READ focalLength WRITE setFocalLength NOTIFY metaDataChanged) + Q_PROPERTY(QVariant exposureMode READ exposureMode WRITE setExposureMode NOTIFY metaDataChanged) + Q_PROPERTY(QVariant whiteBalance READ whiteBalance WRITE setWhiteBalance NOTIFY metaDataChanged) + Q_PROPERTY(QVariant digitalZoomRatio READ digitalZoomRatio WRITE setDigitalZoomRatio NOTIFY metaDataChanged) + Q_PROPERTY(QVariant focalLengthIn35mmFilm READ focalLengthIn35mmFilm WRITE setFocalLengthIn35mmFilm NOTIFY metaDataChanged) + Q_PROPERTY(QVariant sceneCaptureType READ sceneCaptureType WRITE setSceneCaptureType NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gainControl READ gainControl WRITE setGainControl NOTIFY metaDataChanged) + Q_PROPERTY(QVariant contrast READ contrast WRITE setContrast NOTIFY metaDataChanged) + Q_PROPERTY(QVariant saturation READ saturation WRITE setSaturation NOTIFY metaDataChanged) + Q_PROPERTY(QVariant sharpness READ sharpness WRITE setSharpness NOTIFY metaDataChanged) + Q_PROPERTY(QVariant deviceSettingDescription READ deviceSettingDescription WRITE setDeviceSettingDescription NOTIFY metaDataChanged) + + Q_PROPERTY(QVariant gpsLatitude READ gpsLatitude WRITE setGPSLatitude NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsLongitude READ gpsLongitude WRITE setGPSLongitude NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsAltitude READ gpsAltitude WRITE setGPSAltitude NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsTimeStamp READ gpsTimeStamp WRITE setGPSTimeStamp NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsSatellites READ gpsSatellites WRITE setGPSSatellites NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsStatus READ gpsStatus WRITE setGPSStatus NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsDOP READ gpsDOP WRITE setGPSDOP NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsSpeed READ gpsSpeed WRITE setGPSSpeed NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsTrack READ gpsTrack WRITE setGPSTrack NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsTrackRef READ gpsTrackRef WRITE setGPSTrackRef NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsImgDirection READ gpsImgDirection WRITE setGPSImgDirection NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsImgDirectionRef READ gpsImgDirectionRef WRITE setGPSImgDirectionRef NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsMapDatum READ gpsMapDatum WRITE setGPSMapDatum NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsProcessingMethod READ gpsProcessingMethod WRITE setGPSProcessingMethod NOTIFY metaDataChanged) + Q_PROPERTY(QVariant gpsAreaInformation READ gpsAreaInformation WRITE setGPSAreaInformation NOTIFY metaDataChanged) + public: QDeclarativeMediaMetaData(QMediaObject *player, QObject *parent = 0) : QObject(parent) , m_mediaObject(player) + , m_writerControl(0) + , m_requestedWriterControl(false) + { + } + + ~QDeclarativeMediaMetaData() { + if (m_writerControl) { + if (QMediaService *service = m_mediaObject->service()) + service->releaseControl(m_writerControl); + } } QVariant title() const { return m_mediaObject->metaData(QMediaMetaData::Title); } + void setTitle(const QVariant &title) { setMetaData(QMediaMetaData::Title, title); } QVariant subTitle() const { return m_mediaObject->metaData(QMediaMetaData::SubTitle); } + void setSubTitle(const QVariant &title) { + setMetaData(QMediaMetaData::SubTitle, title); } QVariant author() const { return m_mediaObject->metaData(QMediaMetaData::Author); } + void setAuthor(const QVariant &author) { setMetaData(QMediaMetaData::Author, author); } QVariant comment() const { return m_mediaObject->metaData(QMediaMetaData::Comment); } + void setComment(const QVariant &comment) { setMetaData(QMediaMetaData::Comment, comment); } QVariant description() const { return m_mediaObject->metaData(QMediaMetaData::Description); } + void setDescription(const QVariant &description) { + setMetaData(QMediaMetaData::Description, description); } QVariant category() const { return m_mediaObject->metaData(QMediaMetaData::Category); } + void setCategory(const QVariant &category) { setMetaData(QMediaMetaData::Category, category); } QVariant genre() const { return m_mediaObject->metaData(QMediaMetaData::Genre); } + void setGenre(const QVariant &genre) { setMetaData(QMediaMetaData::Genre, genre); } QVariant year() const { return m_mediaObject->metaData(QMediaMetaData::Year); } + void setYear(const QVariant &year) { setMetaData(QMediaMetaData::Year, year); } QVariant date() const { return m_mediaObject->metaData(QMediaMetaData::Date); } + void setDate(const QVariant &date) { setMetaData(QMediaMetaData::Date, date); } QVariant userRating() const { return m_mediaObject->metaData(QMediaMetaData::UserRating); } + void setUserRating(const QVariant &rating) { setMetaData(QMediaMetaData::UserRating, rating); } QVariant keywords() const { return m_mediaObject->metaData(QMediaMetaData::Keywords); } + void setKeywords(const QVariant &keywords) { setMetaData(QMediaMetaData::Keywords, keywords); } QVariant language() const { return m_mediaObject->metaData(QMediaMetaData::Language); } + void setLanguage(const QVariant &language) { setMetaData(QMediaMetaData::Language, language); } QVariant publisher() const { return m_mediaObject->metaData(QMediaMetaData::Publisher); } + void setPublisher(const QVariant &publisher) { + setMetaData(QMediaMetaData::Publisher, publisher); } QVariant copyright() const { return m_mediaObject->metaData(QMediaMetaData::Copyright); } + void setCopyright(const QVariant ©right) { + setMetaData(QMediaMetaData::Copyright, copyright); } QVariant parentalRating() const { return m_mediaObject->metaData(QMediaMetaData::ParentalRating); } + void setParentalRating(const QVariant &rating) { + setMetaData(QMediaMetaData::ParentalRating, rating); } QVariant ratingOrganization() const { return m_mediaObject->metaData(QMediaMetaData::RatingOrganization); } + void setRatingOrganization(const QVariant &organization) { + setMetaData(QMediaMetaData::RatingOrganization, organization); } QVariant size() const { return m_mediaObject->metaData(QMediaMetaData::Size); } + void setSize(const QVariant &size) { setMetaData(QMediaMetaData::Size, size); } QVariant mediaType() const { return m_mediaObject->metaData(QMediaMetaData::MediaType); } + void setMediaType(const QVariant &type) { setMetaData(QMediaMetaData::MediaType, type); } QVariant duration() const { return m_mediaObject->metaData(QMediaMetaData::Duration); } + void setDuration(const QVariant &duration) { setMetaData(QMediaMetaData::Duration, duration); } QVariant audioBitRate() const { return m_mediaObject->metaData(QMediaMetaData::AudioBitRate); } + void setAudioBitRate(const QVariant &rate) { setMetaData(QMediaMetaData::AudioBitRate, rate); } QVariant audioCodec() const { return m_mediaObject->metaData(QMediaMetaData::AudioCodec); } + void setAudioCodec(const QVariant &codec) { setMetaData(QMediaMetaData::AudioCodec, codec); } QVariant averageLevel() const { return m_mediaObject->metaData(QMediaMetaData::AverageLevel); } + void setAverageLevel(const QVariant &level) { + setMetaData(QMediaMetaData::AverageLevel, level); } QVariant channelCount() const { return m_mediaObject->metaData(QMediaMetaData::ChannelCount); } + void setChannelCount(const QVariant &count) { + setMetaData(QMediaMetaData::ChannelCount, count); } QVariant peakValue() const { return m_mediaObject->metaData(QMediaMetaData::PeakValue); } + void setPeakValue(const QVariant &value) { setMetaData(QMediaMetaData::PeakValue, value); } QVariant sampleRate() const { return m_mediaObject->metaData(QMediaMetaData::SampleRate); } + void setSampleRate(const QVariant &rate) { setMetaData(QMediaMetaData::SampleRate, rate); } QVariant albumTitle() const { return m_mediaObject->metaData(QMediaMetaData::AlbumTitle); } + void setAlbumTitle(const QVariant &title) { setMetaData(QMediaMetaData::AlbumTitle, title); } QVariant albumArtist() const { return m_mediaObject->metaData(QMediaMetaData::AlbumArtist); } + void setAlbumArtist(const QVariant &artist) { + setMetaData(QMediaMetaData::AlbumArtist, artist); } QVariant contributingArtist() const { return m_mediaObject->metaData(QMediaMetaData::ContributingArtist); } + void setContributingArtist(const QVariant &artist) { + setMetaData(QMediaMetaData::ContributingArtist, artist); } QVariant composer() const { return m_mediaObject->metaData(QMediaMetaData::Composer); } + void setComposer(const QVariant &composer) { setMetaData(QMediaMetaData::Composer, composer); } QVariant conductor() const { return m_mediaObject->metaData(QMediaMetaData::Conductor); } + void setConductor(const QVariant &conductor) { + setMetaData(QMediaMetaData::Conductor, conductor); } QVariant lyrics() const { return m_mediaObject->metaData(QMediaMetaData::Lyrics); } + void setLyrics(const QVariant &lyrics) { setMetaData(QMediaMetaData::Lyrics, lyrics); } QVariant mood() const { return m_mediaObject->metaData(QMediaMetaData::Mood); } + void setMood(const QVariant &mood) { setMetaData(QMediaMetaData::Mood, mood); } QVariant trackNumber() const { return m_mediaObject->metaData(QMediaMetaData::TrackNumber); } + void setTrackNumber(const QVariant &track) { setMetaData(QMediaMetaData::TrackNumber, track); } QVariant trackCount() const { return m_mediaObject->metaData(QMediaMetaData::TrackCount); } + void setTrackCount(const QVariant &count) { setMetaData(QMediaMetaData::TrackCount, count); } QVariant coverArtUrlSmall() const { return m_mediaObject->metaData(QMediaMetaData::CoverArtUrlSmall); } + void setCoverArtUrlSmall(const QVariant &url) { + setMetaData(QMediaMetaData::CoverArtUrlSmall, url); } QVariant coverArtUrlLarge() const { return m_mediaObject->metaData(QMediaMetaData::CoverArtUrlLarge); } + void setCoverArtUrlLarge(const QVariant &url) { + setMetaData(QMediaMetaData::CoverArtUrlLarge, url); } QVariant resolution() const { return m_mediaObject->metaData(QMediaMetaData::Resolution); } + void setResolution(const QVariant &resolution) { + setMetaData(QMediaMetaData::Resolution, resolution); } QVariant pixelAspectRatio() const { return m_mediaObject->metaData(QMediaMetaData::PixelAspectRatio); } + void setPixelAspectRatio(const QVariant &ratio) { + setMetaData(QMediaMetaData::PixelAspectRatio, ratio); } QVariant videoFrameRate() const { return m_mediaObject->metaData(QMediaMetaData::VideoFrameRate); } + void setVideoFrameRate(const QVariant &rate) { + setMetaData(QMediaMetaData::VideoFrameRate, rate); } QVariant videoBitRate() const { return m_mediaObject->metaData(QMediaMetaData::VideoBitRate); } + void setVideoBitRate(const QVariant &rate) { + setMetaData(QMediaMetaData::VideoBitRate, rate); } QVariant videoCodec() const { return m_mediaObject->metaData(QMediaMetaData::VideoCodec); } + void setVideoCodec(const QVariant &codec) { + setMetaData(QMediaMetaData::VideoCodec, codec); } QVariant posterUrl() const { return m_mediaObject->metaData(QMediaMetaData::PosterUrl); } + void setPosterUrl(const QVariant &url) { + setMetaData(QMediaMetaData::PosterUrl, url); } QVariant chapterNumber() const { return m_mediaObject->metaData(QMediaMetaData::ChapterNumber); } + void setChapterNumber(const QVariant &chapter) { + setMetaData(QMediaMetaData::ChapterNumber, chapter); } QVariant director() const { return m_mediaObject->metaData(QMediaMetaData::Director); } + void setDirector(const QVariant &director) { setMetaData(QMediaMetaData::Director, director); } QVariant leadPerformer() const { return m_mediaObject->metaData(QMediaMetaData::LeadPerformer); } + void setLeadPerformer(const QVariant &performer) { + setMetaData(QMediaMetaData::LeadPerformer, performer); } QVariant writer() const { return m_mediaObject->metaData(QMediaMetaData::Writer); } + void setWriter(const QVariant &writer) { setMetaData(QMediaMetaData::Writer, writer); } + + QVariant cameraManufacturer() const { + return m_mediaObject->metaData(QMediaMetaData::CameraManufacturer); } + void setCameraManufacturer(const QVariant &manufacturer) { + setMetaData(QMediaMetaData::CameraManufacturer, manufacturer); } + QVariant cameraModel() const { return m_mediaObject->metaData(QMediaMetaData::CameraModel); } + void setCameraModel(const QVariant &model) { setMetaData(QMediaMetaData::CameraModel, model); } + QVariant event() const { return m_mediaObject->metaData(QMediaMetaData::Event); } + void setEvent(const QVariant &event) { setMetaData(QMediaMetaData::Event, event); } + QVariant subject() const { return m_mediaObject->metaData(QMediaMetaData::Subject); } + void setSubject(const QVariant &subject) { setMetaData(QMediaMetaData::Subject, subject); } + QVariant orientation() const { return m_mediaObject->metaData(QMediaMetaData::Orientation); } + void setOrientation(const QVariant &orientation) { + setMetaData(QMediaMetaData::Orientation, orientation); } + QVariant exposureTime() const { return m_mediaObject->metaData(QMediaMetaData::ExposureTime); } + void setExposureTime(const QVariant &time) { setMetaData(QMediaMetaData::ExposureTime, time); } + QVariant fNumber() const { return m_mediaObject->metaData(QMediaMetaData::FNumber); } + void setFNumber(const QVariant &number) { setMetaData(QMediaMetaData::FNumber, number); } + QVariant exposureProgram() const { + return m_mediaObject->metaData(QMediaMetaData::ExposureProgram); } + void setExposureProgram(const QVariant &program) { + setMetaData(QMediaMetaData::ExposureProgram, program); } + QVariant isoSpeedRatings() const { + return m_mediaObject->metaData(QMediaMetaData::ISOSpeedRatings); } + void setISOSpeedRatings(const QVariant &ratings) { + setMetaData(QMediaMetaData::ISOSpeedRatings, ratings); } + QVariant exposureBiasValue() const { + return m_mediaObject->metaData(QMediaMetaData::ExposureBiasValue); } + void setExposureBiasValue(const QVariant &bias) { + setMetaData(QMediaMetaData::ExposureBiasValue, bias); } + QVariant dateTimeOriginal() const { + return m_mediaObject->metaData(QMediaMetaData::DateTimeOriginal); } + void setDateTimeOriginal(const QVariant &dateTime) { + setMetaData(QMediaMetaData::DateTimeOriginal, dateTime); } + QVariant dateTimeDigitized() const { + return m_mediaObject->metaData(QMediaMetaData::DateTimeDigitized); } + void setDateTimeDigitized(const QVariant &dateTime) { + setMetaData(QMediaMetaData::DateTimeDigitized, dateTime); } + QVariant subjectDistance() const { + return m_mediaObject->metaData(QMediaMetaData::SubjectDistance); } + void setSubjectDistance(const QVariant &distance) { + setMetaData(QMediaMetaData::SubjectDistance, distance); } + QVariant meteringMode() const { return m_mediaObject->metaData(QMediaMetaData::MeteringMode); } + void setMeteringMode(const QVariant &mode) { setMetaData(QMediaMetaData::MeteringMode, mode); } + QVariant lightSource() const { return m_mediaObject->metaData(QMediaMetaData::LightSource); } + void setLightSource(const QVariant &source) { + setMetaData(QMediaMetaData::LightSource, source); } + QVariant flash() const { return m_mediaObject->metaData(QMediaMetaData::Flash); } + void setFlash(const QVariant &flash) { setMetaData(QMediaMetaData::Flash, flash); } + QVariant focalLength() const { return m_mediaObject->metaData(QMediaMetaData::FocalLength); } + void setFocalLength(const QVariant &length) { + setMetaData(QMediaMetaData::FocalLength, length); } + QVariant exposureMode() const { return m_mediaObject->metaData(QMediaMetaData::ExposureMode); } + void setExposureMode(const QVariant &mode) { + setMetaData(QMediaMetaData::ExposureMode, mode); } + QVariant whiteBalance() const { return m_mediaObject->metaData(QMediaMetaData::WhiteBalance); } + void setWhiteBalance(const QVariant &balance) { + setMetaData(QMediaMetaData::WhiteBalance, balance); } + QVariant digitalZoomRatio() const { + return m_mediaObject->metaData(QMediaMetaData::DigitalZoomRatio); } + void setDigitalZoomRatio(const QVariant &ratio) { + setMetaData(QMediaMetaData::DigitalZoomRatio, ratio); } + QVariant focalLengthIn35mmFilm() const { + return m_mediaObject->metaData(QMediaMetaData::FocalLengthIn35mmFilm); } + void setFocalLengthIn35mmFilm(const QVariant &length) { + setMetaData(QMediaMetaData::FocalLengthIn35mmFilm, length); } + QVariant sceneCaptureType() const { + return m_mediaObject->metaData(QMediaMetaData::SceneCaptureType); } + void setSceneCaptureType(const QVariant &type) { + setMetaData(QMediaMetaData::SceneCaptureType, type); } + QVariant gainControl() const { return m_mediaObject->metaData(QMediaMetaData::GainControl); } + void setGainControl(const QVariant &gain) { setMetaData(QMediaMetaData::GainControl, gain); } + QVariant contrast() const { return m_mediaObject->metaData(QMediaMetaData::Contrast); } + void setContrast(const QVariant &contrast) { setMetaData(QMediaMetaData::Contrast, contrast); } + QVariant saturation() const { return m_mediaObject->metaData(QMediaMetaData::Saturation); } + void setSaturation(const QVariant &saturation) { + setMetaData(QMediaMetaData::Saturation, saturation); } + QVariant sharpness() const { return m_mediaObject->metaData(QMediaMetaData::Sharpness); } + void setSharpness(const QVariant &sharpness) { + setMetaData(QMediaMetaData::Sharpness, sharpness); } + QVariant deviceSettingDescription() const { + return m_mediaObject->metaData(QMediaMetaData::DeviceSettingDescription); } + void setDeviceSettingDescription(const QVariant &description) { + setMetaData(QMediaMetaData::DeviceSettingDescription, description); } + + QVariant gpsLatitude() const { return m_mediaObject->metaData(QMediaMetaData::GPSLatitude); } + void setGPSLatitude(const QVariant &latitude) { + setMetaData(QMediaMetaData::GPSLatitude, latitude); } + QVariant gpsLongitude() const { return m_mediaObject->metaData(QMediaMetaData::GPSLongitude); } + void setGPSLongitude(const QVariant &longitude) { + setMetaData(QMediaMetaData::GPSLongitude, longitude); } + QVariant gpsAltitude() const { return m_mediaObject->metaData(QMediaMetaData::GPSAltitude); } + void setGPSAltitude(const QVariant &altitude) { + setMetaData(QMediaMetaData::GPSAltitude, altitude); } + QVariant gpsTimeStamp() const { return m_mediaObject->metaData(QMediaMetaData::GPSTimeStamp); } + void setGPSTimeStamp(const QVariant ×tamp) { + setMetaData(QMediaMetaData::GPSTimeStamp, timestamp); } + QVariant gpsSatellites() const { + return m_mediaObject->metaData(QMediaMetaData::GPSSatellites); } + void setGPSSatellites(const QVariant &satellites) { + setMetaData(QMediaMetaData::GPSSatellites, satellites); } + QVariant gpsStatus() const { return m_mediaObject->metaData(QMediaMetaData::GPSStatus); } + void setGPSStatus(const QVariant &status) { setMetaData(QMediaMetaData::GPSStatus, status); } + QVariant gpsDOP() const { return m_mediaObject->metaData(QMediaMetaData::GPSDOP); } + void setGPSDOP(const QVariant &dop) { setMetaData(QMediaMetaData::GPSDOP, dop); } + QVariant gpsSpeed() const { return m_mediaObject->metaData(QMediaMetaData::GPSSpeed); } + void setGPSSpeed(const QVariant &speed) { setMetaData(QMediaMetaData::GPSSpeed, speed); } + QVariant gpsTrack() const { return m_mediaObject->metaData(QMediaMetaData::GPSTrack); } + void setGPSTrack(const QVariant &track) { setMetaData(QMediaMetaData::GPSTrack, track); } + QVariant gpsTrackRef() const { return m_mediaObject->metaData(QMediaMetaData::GPSTrackRef); } + void setGPSTrackRef(const QVariant &ref) { setMetaData(QMediaMetaData::GPSTrackRef, ref); } + QVariant gpsImgDirection() const { + return m_mediaObject->metaData(QMediaMetaData::GPSImgDirection); } + void setGPSImgDirection(const QVariant &direction) { + setMetaData(QMediaMetaData::GPSImgDirection, direction); } + QVariant gpsImgDirectionRef() const { + return m_mediaObject->metaData(QMediaMetaData::GPSImgDirectionRef); } + void setGPSImgDirectionRef(const QVariant &ref) { + setMetaData(QMediaMetaData::GPSImgDirectionRef, ref); } + QVariant gpsMapDatum() const { return m_mediaObject->metaData(QMediaMetaData::GPSMapDatum); } + void setGPSMapDatum(const QVariant &datum) { + setMetaData(QMediaMetaData::GPSMapDatum, datum); } + QVariant gpsProcessingMethod() const { + return m_mediaObject->metaData(QMediaMetaData::GPSProcessingMethod); } + void setGPSProcessingMethod(const QVariant &method) { + setMetaData(QMediaMetaData::GPSProcessingMethod, method); } + QVariant gpsAreaInformation() const { + return m_mediaObject->metaData(QMediaMetaData::GPSAreaInformation); } + void setGPSAreaInformation(const QVariant &information) { + setMetaData(QMediaMetaData::GPSAreaInformation, information); } Q_SIGNALS: void metaDataChanged(); private: + void setMetaData(const QString &key, const QVariant &value) + { + if (!m_requestedWriterControl) { + m_requestedWriterControl = true; + if (QMediaService *service = m_mediaObject->service()) + m_writerControl = service->requestControl<QMetaDataWriterControl *>(); + } + if (m_writerControl) + m_writerControl->setMetaData(key, value); + } + QMediaObject *m_mediaObject; + QMetaDataWriterControl *m_writerControl; + bool m_requestedWriterControl; }; QT_END_NAMESPACE |