diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-04-13 13:35:42 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-04-16 11:01:01 +0000 |
commit | dd17bf10c9932cc4928a954d71a67bbafc587659 (patch) | |
tree | a89e5591e2c9d6caec5cc630aba0ce1ed89987b4 /src/imports | |
parent | 24e4fb4cbcb73c2268b3232e5704bcc32e7f6a23 (diff) |
Expose QMediaMetaData as a value type to QML
And get rid of the QML wrapper class.
Change-Id: Idd024bb9582f7d27c943ad5e065914337216bdd5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Doris Verria <doris.verria@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/multimedia/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/imports/multimedia/multimedia.cpp | 6 | ||||
-rw-r--r-- | src/imports/multimedia/plugins.qmltypes | 104 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera.cpp | 53 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera_p.h | 5 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecamerarecorder.cpp | 17 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecamerarecorder_p.h | 6 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativemediametadata_p.h | 439 |
8 files changed, 4 insertions, 627 deletions
diff --git a/src/imports/multimedia/CMakeLists.txt b/src/imports/multimedia/CMakeLists.txt index 0cfa7f902..b4bb45bb8 100644 --- a/src/imports/multimedia/CMakeLists.txt +++ b/src/imports/multimedia/CMakeLists.txt @@ -18,7 +18,6 @@ qt_internal_add_qml_module(declarative_multimedia qdeclarativecameraimageprocessing.cpp qdeclarativecameraimageprocessing_p.h qdeclarativecamerapreviewprovider.cpp qdeclarativecamerapreviewprovider_p.h qdeclarativecamerarecorder.cpp qdeclarativecamerarecorder_p.h - qdeclarativemediametadata_p.h qdeclarativemultimediaglobal.cpp qdeclarativemultimediaglobal_p.h qdeclarativeplaylist.cpp qdeclarativeplaylist_p.h qdeclarativetorch.cpp qdeclarativetorch_p.h diff --git a/src/imports/multimedia/multimedia.cpp b/src/imports/multimedia/multimedia.cpp index b2f3d45c4..ddbf81f63 100644 --- a/src/imports/multimedia/multimedia.cpp +++ b/src/imports/multimedia/multimedia.cpp @@ -43,11 +43,11 @@ #include <QtQml/qqmlcomponent.h> #include "qsoundeffect.h" #include "qmediaplayer.h" +#include "qmediametadata.h" #include <private/qdeclarativevideooutput_p.h> #include "qdeclarativemultimediaglobal_p.h" -#include "qdeclarativemediametadata_p.h" #include "qdeclarativeplaylist_p.h" #include "qdeclarativecamera_p.h" #include "qdeclarativecamerapreviewprovider_p.h" @@ -67,6 +67,8 @@ static QObject *multimedia_global_object(QQmlEngine *qmlEngine, QJSEngine *jsEng return new QDeclarativeMultimediaGlobal(jsEngine); } +Q_DECLARE_METATYPE(QMediaMetaData) + class QMultimediaDeclarativeModule : public QQmlExtensionPlugin { Q_OBJECT @@ -147,8 +149,6 @@ public: qmlRegisterUncreatableType<QDeclarativeCameraImageProcessing, 3>(uri, 5, 11, "CameraImageProcessing", tr("CameraImageProcessing is provided by Camera")); - qmlRegisterAnonymousType<QDeclarativeMediaMetaData>(uri, 5); - // 5.13 types qmlRegisterType<QDeclarativeVideoOutput, 13>(uri, 5, 13, "VideoOutput"); diff --git a/src/imports/multimedia/plugins.qmltypes b/src/imports/multimedia/plugins.qmltypes index 14e0f5878..f09d015dd 100644 --- a/src/imports/multimedia/plugins.qmltypes +++ b/src/imports/multimedia/plugins.qmltypes @@ -449,12 +449,6 @@ Module { Property { name: "playbackRate"; type: "double" } Property { name: "error"; type: "Error"; isReadonly: true } Property { name: "errorString"; type: "string"; isReadonly: true } - Property { - name: "metaData" - type: "QDeclarativeMediaMetaData" - isReadonly: true - isPointer: true - } Property { name: "availability"; type: "Availability"; isReadonly: true } Property { name: "audioRole"; revision: 1; type: "AudioRole" } Property { name: "videoOutput"; revision: 15; type: "QVariant" } @@ -625,13 +619,6 @@ Module { isPointer: true } Property { - name: "metaData" - revision: 1 - type: "QDeclarativeMediaMetaData" - isReadonly: true - isPointer: true - } - Property { name: "viewfinder" revision: 1 type: "QDeclarativeCameraViewfinder" @@ -1257,97 +1244,6 @@ Module { Property { name: "maximumFrameRate"; type: "double" } } Component { - name: "QDeclarativeMediaMetaData" - prototype: "QObject" - Property { name: "title"; type: "QVariant" } - Property { name: "subTitle"; type: "QVariant" } - Property { name: "author"; type: "QVariant" } - Property { name: "comment"; type: "QVariant" } - Property { name: "description"; type: "QVariant" } - Property { name: "category"; type: "QVariant" } - Property { name: "genre"; type: "QVariant" } - Property { name: "year"; type: "QVariant" } - Property { name: "date"; type: "QVariant" } - Property { name: "userRating"; type: "QVariant" } - Property { name: "keywords"; type: "QVariant" } - Property { name: "language"; type: "QVariant" } - Property { name: "publisher"; type: "QVariant" } - Property { name: "copyright"; type: "QVariant" } - Property { name: "parentalRating"; type: "QVariant" } - Property { name: "ratingOrganization"; type: "QVariant" } - Property { name: "size"; type: "QVariant" } - Property { name: "mediaType"; type: "QVariant" } - Property { name: "duration"; type: "QVariant" } - Property { name: "audioBitRate"; type: "QVariant" } - Property { name: "audioCodec"; type: "QVariant" } - Property { name: "averageLevel"; type: "QVariant" } - Property { name: "channelCount"; type: "QVariant" } - Property { name: "peakValue"; type: "QVariant" } - Property { name: "sampleRate"; type: "QVariant" } - Property { name: "albumTitle"; type: "QVariant" } - Property { name: "albumArtist"; type: "QVariant" } - Property { name: "contributingArtist"; type: "QVariant" } - Property { name: "composer"; type: "QVariant" } - Property { name: "conductor"; type: "QVariant" } - Property { name: "lyrics"; type: "QVariant" } - Property { name: "mood"; type: "QVariant" } - Property { name: "trackNumber"; type: "QVariant" } - Property { name: "trackCount"; type: "QVariant" } - Property { name: "coverArtUrlSmall"; type: "QVariant" } - Property { name: "coverArtUrlLarge"; type: "QVariant" } - Property { name: "resolution"; type: "QVariant" } - Property { name: "videoFrameRate"; type: "QVariant" } - Property { name: "videoBitRate"; type: "QVariant" } - Property { name: "videoCodec"; type: "QVariant" } - Property { name: "posterUrl"; type: "QVariant" } - Property { name: "chapterNumber"; type: "QVariant" } - Property { name: "director"; type: "QVariant" } - Property { name: "leadPerformer"; type: "QVariant" } - Property { name: "writer"; type: "QVariant" } - Property { name: "cameraManufacturer"; type: "QVariant" } - Property { name: "cameraModel"; type: "QVariant" } - Property { name: "event"; type: "QVariant" } - Property { name: "subject"; type: "QVariant" } - Property { name: "orientation"; type: "QVariant" } - Property { name: "exposureTime"; type: "QVariant" } - Property { name: "fNumber"; type: "QVariant" } - Property { name: "exposureProgram"; type: "QVariant" } - Property { name: "isoSpeedRatings"; type: "QVariant" } - Property { name: "exposureBiasValue"; type: "QVariant" } - Property { name: "dateTimeOriginal"; type: "QVariant" } - Property { name: "dateTimeDigitized"; type: "QVariant" } - Property { name: "subjectDistance"; type: "QVariant" } - Property { name: "lightSource"; type: "QVariant" } - Property { name: "flash"; type: "QVariant" } - Property { name: "focalLength"; type: "QVariant" } - Property { name: "exposureMode"; type: "QVariant" } - Property { name: "whiteBalance"; type: "QVariant" } - Property { name: "digitalZoomRatio"; type: "QVariant" } - Property { name: "focalLengthIn35mmFilm"; type: "QVariant" } - Property { name: "sceneCaptureType"; type: "QVariant" } - Property { name: "gainControl"; type: "QVariant" } - Property { name: "contrast"; type: "QVariant" } - Property { name: "saturation"; type: "QVariant" } - Property { name: "sharpness"; type: "QVariant" } - Property { name: "deviceSettingDescription"; type: "QVariant" } - Property { name: "gpsLatitude"; type: "QVariant" } - Property { name: "gpsLongitude"; type: "QVariant" } - Property { name: "gpsAltitude"; type: "QVariant" } - Property { name: "gpsTimeStamp"; type: "QVariant" } - Property { name: "gpsSatellites"; type: "QVariant" } - Property { name: "gpsStatus"; type: "QVariant" } - Property { name: "gpsDOP"; type: "QVariant" } - Property { name: "gpsSpeed"; type: "QVariant" } - Property { name: "gpsTrack"; type: "QVariant" } - Property { name: "gpsTrackRef"; type: "QVariant" } - Property { name: "gpsImgDirection"; type: "QVariant" } - Property { name: "gpsImgDirectionRef"; type: "QVariant" } - Property { name: "gpsMapDatum"; type: "QVariant" } - Property { name: "gpsProcessingMethod"; type: "QVariant" } - Property { name: "gpsAreaInformation"; type: "QVariant" } - Signal { name: "metaDataChanged" } - } - Component { name: "QDeclarativeMultimediaGlobal" prototype: "QObject" exports: ["QtMultimedia/QtMultimedia 5.4"] diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp index 9e4f775a8..b89dcf24a 100644 --- a/src/imports/multimedia/qdeclarativecamera.cpp +++ b/src/imports/multimedia/qdeclarativecamera.cpp @@ -46,8 +46,6 @@ #include "qdeclarativecamerafocus_p.h" #include "qdeclarativecameraimageprocessing_p.h" -#include "qdeclarativemediametadata_p.h" - #include <private/qplatformmediaplayer_p.h> #include <qobject.h> #include <QMediaDeviceManager> @@ -165,7 +163,6 @@ void QDeclarativeCamera::_q_errorOccurred(QCamera::Error errorCode) QDeclarativeCamera::QDeclarativeCamera(QObject *parent) : QObject(parent), m_camera(nullptr), - m_metaData(nullptr), m_componentComplete(false) { m_currentCameraInfo = QMediaDeviceManager::defaultVideoInput(); @@ -197,7 +194,6 @@ QDeclarativeCamera::~QDeclarativeCamera() delete m_flash; delete m_focus; delete m_imageProcessing; - delete m_metaData; delete m_camera; } @@ -583,55 +579,6 @@ void QDeclarativeCamera::setZoomFactor(qreal value) */ /*! - \qmlpropertygroup QtMultimedia::Camera::metaData - \qmlproperty variant QtMultimedia::Camera::metaData.cameraManufacturer - \qmlproperty variant QtMultimedia::Camera::metaData.cameraModel - \qmlproperty variant QtMultimedia::Camera::metaData.event - \qmlproperty variant QtMultimedia::Camera::metaData.subject - \qmlproperty variant QtMultimedia::Camera::metaData.orientation - \qmlproperty variant QtMultimedia::Camera::metaData.dateTimeOriginal - \qmlproperty variant QtMultimedia::Camera::metaData.gpsLatitude - \qmlproperty variant QtMultimedia::Camera::metaData.gpsLongitude - \qmlproperty variant QtMultimedia::Camera::metaData.gpsAltitude - \qmlproperty variant QtMultimedia::Camera::metaData.gpsTimestamp - \qmlproperty variant QtMultimedia::Camera::metaData.gpsTrack - \qmlproperty variant QtMultimedia::Camera::metaData.gpsSpeed - \qmlproperty variant QtMultimedia::Camera::metaData.gpsImgDirection - \qmlproperty variant QtMultimedia::Camera::metaData.gpsProcessingMethod - - These properties hold the meta data for the camera captures. - - \list - \li \c metaData.cameraManufacturer holds the name of the manufacturer of the camera. - \li \c metaData.cameraModel holds the name of the model of the camera. - \li \c metaData.event holds the event during which the photo or video is to be captured. - \li \c metaData.subject holds the name of the subject of the capture or recording. - \li \c metaData.orientation holds the clockwise rotation of the camera at time of capture. - \li \c metaData.dateTimeOriginal holds the initial time at which the photo or video is captured. - \li \c metaData.gpsLatitude holds the latitude of the camera in decimal degrees at time of capture. - \li \c metaData.gpsLongitude holds the longitude of the camera in decimal degrees at time of capture. - \li \c metaData.gpsAltitude holds the altitude of the camera in meters at time of capture. - \li \c metaData.gpsTimestamp holds the timestamp of the GPS position data. - \li \c metaData.gpsTrack holds direction of movement of the camera at the time of - capture. It is measured in degrees clockwise from north. - \li \c metaData.gpsSpeed holds the velocity in kilometers per hour of the camera at time of capture. - \li \c metaData.gpsImgDirection holds direction the camera is facing at the time of capture. - It is measured in degrees clockwise from north. - \li \c metaData.gpsProcessingMethod holds the name of the method for determining the GPS position. - \endlist - - \sa {QMediaMetaData} - \since 5.4 -*/ - -QDeclarativeMediaMetaData *QDeclarativeCamera::metaData() -{ - if (!m_metaData) - m_metaData = new QDeclarativeMediaMetaData(m_camera); - return m_metaData; -} - -/*! \qmlmethod list<size> QtMultimedia::Camera::supportedViewfinderResolutions(real minimumFrameRate, real maximumFrameRate) Returns a list of supported viewfinder resolutions. diff --git a/src/imports/multimedia/qdeclarativecamera_p.h b/src/imports/multimedia/qdeclarativecamera_p.h index c06df6c42..daadd5c5e 100644 --- a/src/imports/multimedia/qdeclarativecamera_p.h +++ b/src/imports/multimedia/qdeclarativecamera_p.h @@ -73,7 +73,6 @@ class QDeclarativeCameraFocus; class QDeclarativeCameraFlash; class QDeclarativeTorch; class QDeclarativeCameraImageProcessing; -class QDeclarativeMediaMetaData; class QDeclarativeCamera : public QObject, public QQmlParserStatus { Q_OBJECT @@ -99,7 +98,6 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus Q_PROPERTY(QDeclarativeTorch* torch READ torch 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(Position) Q_ENUMS(State) @@ -187,8 +185,6 @@ public: QDeclarativeCameraFocus *focus() { return m_focus; } QDeclarativeCameraImageProcessing *imageProcessing() { return m_imageProcessing; } - QDeclarativeMediaMetaData *metaData(); - QString deviceId() const; void setDeviceId(const QString &name); @@ -258,7 +254,6 @@ private: QDeclarativeTorch *m_torch; QDeclarativeCameraFocus *m_focus; QDeclarativeCameraImageProcessing *m_imageProcessing; - QDeclarativeMediaMetaData *m_metaData; bool m_componentComplete; bool pendingActive = false; diff --git a/src/imports/multimedia/qdeclarativecamerarecorder.cpp b/src/imports/multimedia/qdeclarativecamerarecorder.cpp index b61d97177..61446a11d 100644 --- a/src/imports/multimedia/qdeclarativecamerarecorder.cpp +++ b/src/imports/multimedia/qdeclarativecamerarecorder.cpp @@ -39,7 +39,6 @@ #include "qdeclarativecamera_p.h" #include "qdeclarativecamerarecorder_p.h" -#include "qdeclarativemediametadata_p.h" #include <QtCore/qurl.h> @@ -95,7 +94,6 @@ QDeclarativeCameraRecorder::QDeclarativeCameraRecorder(QMediaCaptureSession *ses QDeclarativeCameraRecorder::~QDeclarativeCameraRecorder() { - delete m_metaData; } /*! @@ -560,21 +558,6 @@ void QDeclarativeCameraRecorder::setMuted(bool muted) m_captureSession->setMuted(muted); } -/*! - \qmlmethod QtMultimedia::CameraRecorder::setMetadata(key, value) - - Sets metadata for the next video to be recorder, with - the given \a key being associated with \a value. -*/ - -QDeclarativeMediaMetaData *QDeclarativeCameraRecorder::metaData() -{ - // ### Doesn't quite work as QDeclarativeMediaMetaData expects a QMediaSource -// if (!m_metaData) -// m_metaData = new QDeclarativeMediaMetaData(m_recorder); - return m_metaData; -} - void QDeclarativeCameraRecorder::updateRecorderState(QMediaEncoder::State state) { if (state == QMediaEncoder::PausedState) diff --git a/src/imports/multimedia/qdeclarativecamerarecorder_p.h b/src/imports/multimedia/qdeclarativecamerarecorder_p.h index a2444ca1d..9903c552d 100644 --- a/src/imports/multimedia/qdeclarativecamerarecorder_p.h +++ b/src/imports/multimedia/qdeclarativecamerarecorder_p.h @@ -59,7 +59,6 @@ QT_BEGIN_NAMESPACE class QDeclarativeCamera; -class QDeclarativeMediaMetaData; class QDeclarativeCameraRecorder : public QObject { @@ -92,7 +91,7 @@ class QDeclarativeCameraRecorder : public QObject Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged) Q_PROPERTY(QString errorString READ errorString NOTIFY error) Q_PROPERTY(Error errorCode READ errorCode NOTIFY error) - Q_PROPERTY(QDeclarativeMediaMetaData *metaData READ metaData CONSTANT) +// Q_PROPERTY(QDeclarativeMediaMetaData *metaData READ metaData CONSTANT) public: enum RecorderState { @@ -176,8 +175,6 @@ public Q_SLOTS: void setVideoEncodingMode(EncodingMode encodingMode); void setAudioEncodingMode(EncodingMode encodingMode); - QDeclarativeMediaMetaData *metaData(); - Q_SIGNALS: void recorderStateChanged(QDeclarativeCameraRecorder::RecorderState state); void recorderStatusChanged(); @@ -213,7 +210,6 @@ private: QMediaCaptureSession *m_captureSession = nullptr; QMediaEncoder *m_encoder = nullptr; - QDeclarativeMediaMetaData *m_metaData = nullptr; QMediaEncoderSettings m_encoderSettings; }; diff --git a/src/imports/multimedia/qdeclarativemediametadata_p.h b/src/imports/multimedia/qdeclarativemediametadata_p.h deleted file mode 100644 index 91b609b4c..000000000 --- a/src/imports/multimedia/qdeclarativemediametadata_p.h +++ /dev/null @@ -1,439 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QDECLARATIVEMEDIAMETADATA_P_H -#define QDECLARATIVEMEDIAMETADATA_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists for the convenience -// of other Qt classes. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <QtQml/qqml.h> -#include <QtMultimedia/qmediametadata.h> -#include "qmediametadata.h" - -QT_BEGIN_NAMESPACE - -class QDeclarativeMediaMetaData : public QObject -{ - Q_OBJECT - 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 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 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 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(QObject *player, QObject *parent = 0) - : QObject(parent) - , m_mediaSource(player) - { - connect(player, SIGNAL(metaDataChanged()), this, SIGNAL(metaDataChanged())); - connect(player, SIGNAL(metaDataChanged()), this, SLOT(updateMetaData())); - auto *mo = player->metaObject(); - int idx = mo->indexOfProperty("metaData"); - if (idx >= 0) - m_property = mo->property(idx); - updateMetaData(); - } - - ~QDeclarativeMediaMetaData() - { - } - - QVariant title() const { return metaData.value(QMediaMetaData::Title); } - void setTitle(const QVariant &title) { setMetaData(QMediaMetaData::Title, title); } - QVariant author() const { return metaData.value(QMediaMetaData::Author); } - void setAuthor(const QVariant &author) { setMetaData(QMediaMetaData::Author, author); } - QVariant comment() const { return metaData.value(QMediaMetaData::Comment); } - void setComment(const QVariant &comment) { setMetaData(QMediaMetaData::Comment, comment); } - QVariant description() const { return metaData.value(QMediaMetaData::Description); } - void setDescription(const QVariant &description) { - setMetaData(QMediaMetaData::Description, description); } - QVariant genre() const { return metaData.value(QMediaMetaData::Genre); } - void setGenre(const QVariant &genre) { setMetaData(QMediaMetaData::Genre, genre); } - QVariant date() const { return metaData.value(QMediaMetaData::Date); } - void setDate(const QVariant &date) { setMetaData(QMediaMetaData::Date, date); } -// QVariant userRating() const { return metaData.value(QMediaMetaData::UserRating); } -// void setUserRating(const QVariant &rating) { setMetaData(QMediaMetaData::UserRating, rating); } -// QVariant keywords() const { return metaData.value(QMediaMetaData::Keywords); } -// void setKeywords(const QVariant &keywords) { setMetaData(QMediaMetaData::Keywords, keywords); } -// QVariant language() const { return metaData.value(QMediaMetaData::Language); } -// void setLanguage(const QVariant &language) { setMetaData(QMediaMetaData::Language, language); } -// QVariant publisher() const { return metaData.value(QMediaMetaData::Publisher); } -// void setPublisher(const QVariant &publisher) { -// setMetaData(QMediaMetaData::Publisher, publisher); } -// QVariant copyright() const { return metaData.value(QMediaMetaData::Copyright); } -// void setCopyright(const QVariant ©right) { -// setMetaData(QMediaMetaData::Copyright, copyright); } -// QVariant parentalRating() const { return metaData.value(QMediaMetaData::ParentalRating); } -// void setParentalRating(const QVariant &rating) { -// setMetaData(QMediaMetaData::ParentalRating, rating); } -// QVariant ratingOrganization() const { -// return metaData.value(QMediaMetaData::RatingOrganization); } -// void setRatingOrganization(const QVariant &organization) { -// setMetaData(QMediaMetaData::RatingOrganization, organization); } -// QVariant size() const { return metaData.value(QMediaMetaData::Size); } -// void setSize(const QVariant &size) { setMetaData(QMediaMetaData::Size, size); } -// QVariant mediaType() const { return metaData.value(QMediaMetaData::MediaType); } -// void setMediaType(const QVariant &type) { setMetaData(QMediaMetaData::MediaType, type); } -// QVariant duration() const { return metaData.value(QMediaMetaData::Duration); } -// void setDuration(const QVariant &duration) { setMetaData(QMediaMetaData::Duration, duration); } -// QVariant audioBitRate() const { return metaData.value(QMediaMetaData::AudioBitRate); } -// void setAudioBitRate(const QVariant &rate) { setMetaData(QMediaMetaData::AudioBitRate, rate); } -// QVariant audioCodec() const { return metaData.value(QMediaMetaData::AudioCodec); } -// void setAudioCodec(const QVariant &codec) { setMetaData(QMediaMetaData::AudioCodec, codec); } -// QVariant averageLevel() const { return metaData.value(QMediaMetaData::AverageLevel); } -// void setAverageLevel(const QVariant &level) { -// setMetaData(QMediaMetaData::AverageLevel, level); } -// QVariant channelCount() const { return metaData.value(QMediaMetaData::ChannelCount); } -// void setChannelCount(const QVariant &count) { -// setMetaData(QMediaMetaData::ChannelCount, count); } -// QVariant peakValue() const { return metaData.value(QMediaMetaData::PeakValue); } -// void setPeakValue(const QVariant &value) { setMetaData(QMediaMetaData::PeakValue, value); } -// QVariant sampleRate() const { return metaData.value(QMediaMetaData::SampleRate); } -// void setSampleRate(const QVariant &rate) { setMetaData(QMediaMetaData::SampleRate, rate); } -// QVariant albumTitle() const { return metaData.value(QMediaMetaData::AlbumTitle); } -// void setAlbumTitle(const QVariant &title) { setMetaData(QMediaMetaData::AlbumTitle, title); } -// QVariant albumArtist() const { return metaData.value(QMediaMetaData::AlbumArtist); } -// void setAlbumArtist(const QVariant &artist) { -// setMetaData(QMediaMetaData::AlbumArtist, artist); } -// QVariant contributingArtist() const { -// return metaData.value(QMediaMetaData::ContributingArtist); } -// void setContributingArtist(const QVariant &artist) { -// setMetaData(QMediaMetaData::ContributingArtist, artist); } -// QVariant composer() const { return metaData.value(QMediaMetaData::Composer); } -// void setComposer(const QVariant &composer) { setMetaData(QMediaMetaData::Composer, composer); } -// QVariant conductor() const { return metaData.value(QMediaMetaData::Conductor); } -// void setConductor(const QVariant &conductor) { -// setMetaData(QMediaMetaData::Conductor, conductor); } -// QVariant lyrics() const { return metaData.value(QMediaMetaData::Lyrics); } -// void setLyrics(const QVariant &lyrics) { setMetaData(QMediaMetaData::Lyrics, lyrics); } -// QVariant mood() const { return metaData.value(QMediaMetaData::Mood); } -// void setMood(const QVariant &mood) { setMetaData(QMediaMetaData::Mood, mood); } -// QVariant trackNumber() const { return metaData.value(QMediaMetaData::TrackNumber); } -// void setTrackNumber(const QVariant &track) { setMetaData(QMediaMetaData::TrackNumber, track); } -// QVariant trackCount() const { return metaData.value(QMediaMetaData::TrackCount); } -// void setTrackCount(const QVariant &count) { setMetaData(QMediaMetaData::TrackCount, count); } -// QVariant coverArtUrlSmall() const { -// return metaData.value(QMediaMetaData::CoverArtUrlSmall); } -// void setCoverArtUrlSmall(const QVariant &url) { -// setMetaData(QMediaMetaData::CoverArtUrlSmall, url); } -// QVariant coverArtUrlLarge() const { -// return metaData.value(QMediaMetaData::CoverArtUrlLarge); } -// void setCoverArtUrlLarge(const QVariant &url) { -// setMetaData(QMediaMetaData::CoverArtUrlLarge, url); } -// QVariant resolution() const { return metaData.value(QMediaMetaData::Resolution); } -// void setResolution(const QVariant &resolution) { -// setMetaData(QMediaMetaData::Resolution, resolution); } -// QVariant videoFrameRate() const { return metaData.value(QMediaMetaData::VideoFrameRate); } -// void setVideoFrameRate(const QVariant &rate) { -// setMetaData(QMediaMetaData::VideoFrameRate, rate); } -// QVariant videoBitRate() const { return metaData.value(QMediaMetaData::VideoBitRate); } -// void setVideoBitRate(const QVariant &rate) { -// setMetaData(QMediaMetaData::VideoBitRate, rate); } -// QVariant videoCodec() const { return metaData.value(QMediaMetaData::VideoCodec); } -// void setVideoCodec(const QVariant &codec) { -// setMetaData(QMediaMetaData::VideoCodec, codec); } -// QVariant posterUrl() const { return metaData.value(QMediaMetaData::PosterUrl); } -// void setPosterUrl(const QVariant &url) { -// setMetaData(QMediaMetaData::PosterUrl, url); } -// QVariant chapterNumber() const { return metaData.value(QMediaMetaData::ChapterNumber); } -// void setChapterNumber(const QVariant &chapter) { -// setMetaData(QMediaMetaData::ChapterNumber, chapter); } -// QVariant director() const { return metaData.value(QMediaMetaData::Director); } -// void setDirector(const QVariant &director) { setMetaData(QMediaMetaData::Director, director); } -// QVariant leadPerformer() const { return metaData.value(QMediaMetaData::LeadPerformer); } -// void setLeadPerformer(const QVariant &performer) { -// setMetaData(QMediaMetaData::LeadPerformer, performer); } -// QVariant writer() const { return metaData.value(QMediaMetaData::Writer); } -// void setWriter(const QVariant &writer) { setMetaData(QMediaMetaData::Writer, writer); } - -// QVariant cameraManufacturer() const { -// return metaData.value(QMediaMetaData::CameraManufacturer); } -// void setCameraManufacturer(const QVariant &manufacturer) { -// setMetaData(QMediaMetaData::CameraManufacturer, manufacturer); } -// QVariant cameraModel() const { return metaData.value(QMediaMetaData::CameraModel); } -// void setCameraModel(const QVariant &model) { setMetaData(QMediaMetaData::CameraModel, model); } - -//QT_WARNING_PUSH -//QT_WARNING_DISABLE_GCC("-Woverloaded-virtual") -//QT_WARNING_DISABLE_CLANG("-Woverloaded-virtual") -// QVariant event() const { return metaData.value(QMediaMetaData::Event); } -//QT_WARNING_POP - -// void setEvent(const QVariant &event) { setMetaData(QMediaMetaData::Event, event); } -// QVariant subject() const { return metaData.value(QMediaMetaData::Subject); } -// void setSubject(const QVariant &subject) { setMetaData(QMediaMetaData::Subject, subject); } -// QVariant orientation() const { return metaData.value(QMediaMetaData::Orientation); } -// void setOrientation(const QVariant &orientation) { -// setMetaData(QMediaMetaData::Orientation, orientation); } -// QVariant exposureTime() const { return metaData.value(QMediaMetaData::ExposureTime); } -// void setExposureTime(const QVariant &time) { setMetaData(QMediaMetaData::ExposureTime, time); } -// QVariant fNumber() const { return metaData.value(QMediaMetaData::FNumber); } -// void setFNumber(const QVariant &number) { setMetaData(QMediaMetaData::FNumber, number); } -// QVariant exposureProgram() const { -// return metaData.value(QMediaMetaData::ExposureProgram); } -// void setExposureProgram(const QVariant &program) { -// setMetaData(QMediaMetaData::ExposureProgram, program); } -// QVariant isoSpeedRatings() const { -// return metaData.value(QMediaMetaData::ISOSpeedRatings); } -// void setISOSpeedRatings(const QVariant &ratings) { -// setMetaData(QMediaMetaData::ISOSpeedRatings, ratings); } -// QVariant exposureBiasValue() const { -// return metaData.value(QMediaMetaData::ExposureBiasValue); } -// void setExposureBiasValue(const QVariant &bias) { -// setMetaData(QMediaMetaData::ExposureBiasValue, bias); } -// QVariant dateTimeOriginal() const { -// return metaData.value(QMediaMetaData::DateTimeOriginal); } -// void setDateTimeOriginal(const QVariant &dateTime) { -// setMetaData(QMediaMetaData::DateTimeOriginal, dateTime); } -// QVariant dateTimeDigitized() const { -// return metaData.value(QMediaMetaData::DateTimeDigitized); } -// void setDateTimeDigitized(const QVariant &dateTime) { -// setMetaData(QMediaMetaData::DateTimeDigitized, dateTime); } -// QVariant subjectDistance() const { -// return metaData.value(QMediaMetaData::SubjectDistance); } -// void setSubjectDistance(const QVariant &distance) { -// setMetaData(QMediaMetaData::SubjectDistance, distance); } -// QVariant lightSource() const { return metaData.value(QMediaMetaData::LightSource); } -// void setLightSource(const QVariant &source) { -// setMetaData(QMediaMetaData::LightSource, source); } -// QVariant flash() const { return metaData.value(QMediaMetaData::Flash); } -// void setFlash(const QVariant &flash) { setMetaData(QMediaMetaData::Flash, flash); } -// QVariant focalLength() const { return metaData.value(QMediaMetaData::FocalLength); } -// void setFocalLength(const QVariant &length) { -// setMetaData(QMediaMetaData::FocalLength, length); } -// QVariant exposureMode() const { return metaData.value(QMediaMetaData::ExposureMode); } -// void setExposureMode(const QVariant &mode) { -// setMetaData(QMediaMetaData::ExposureMode, mode); } -// QVariant whiteBalance() const { return metaData.value(QMediaMetaData::WhiteBalance); } -// void setWhiteBalance(const QVariant &balance) { -// setMetaData(QMediaMetaData::WhiteBalance, balance); } -// QVariant digitalZoomRatio() const { -// return metaData.value(QMediaMetaData::DigitalZoomRatio); } -// void setDigitalZoomRatio(const QVariant &ratio) { -// setMetaData(QMediaMetaData::DigitalZoomRatio, ratio); } -// QVariant focalLengthIn35mmFilm() const { -// return metaData.value(QMediaMetaData::FocalLengthIn35mmFilm); } -// void setFocalLengthIn35mmFilm(const QVariant &length) { -// setMetaData(QMediaMetaData::FocalLengthIn35mmFilm, length); } -// QVariant sceneCaptureType() const { -// return metaData.value(QMediaMetaData::SceneCaptureType); } -// void setSceneCaptureType(const QVariant &type) { -// setMetaData(QMediaMetaData::SceneCaptureType, type); } -// QVariant gainControl() const { return metaData.value(QMediaMetaData::GainControl); } -// void setGainControl(const QVariant &gain) { setMetaData(QMediaMetaData::GainControl, gain); } -// QVariant contrast() const { return metaData.value(QMediaMetaData::Contrast); } -// void setContrast(const QVariant &contrast) { setMetaData(QMediaMetaData::Contrast, contrast); } -// QVariant saturation() const { return metaData.value(QMediaMetaData::Saturation); } -// void setSaturation(const QVariant &saturation) { -// setMetaData(QMediaMetaData::Saturation, saturation); } -// QVariant sharpness() const { return metaData.value(QMediaMetaData::Sharpness); } -// void setSharpness(const QVariant &sharpness) { -// setMetaData(QMediaMetaData::Sharpness, sharpness); } -// QVariant deviceSettingDescription() const { -// return metaData.value(QMediaMetaData::DeviceSettingDescription); } -// void setDeviceSettingDescription(const QVariant &description) { -// setMetaData(QMediaMetaData::DeviceSettingDescription, description); } - -// QVariant gpsLatitude() const { return metaData.value(QMediaMetaData::GPSLatitude); } -// void setGPSLatitude(const QVariant &latitude) { -// setMetaData(QMediaMetaData::GPSLatitude, latitude); } -// QVariant gpsLongitude() const { return metaData.value(QMediaMetaData::GPSLongitude); } -// void setGPSLongitude(const QVariant &longitude) { -// setMetaData(QMediaMetaData::GPSLongitude, longitude); } -// QVariant gpsAltitude() const { return metaData.value(QMediaMetaData::GPSAltitude); } -// void setGPSAltitude(const QVariant &altitude) { -// setMetaData(QMediaMetaData::GPSAltitude, altitude); } -// QVariant gpsTimeStamp() const { return metaData.value(QMediaMetaData::GPSTimeStamp); } -// void setGPSTimeStamp(const QVariant ×tamp) { -// setMetaData(QMediaMetaData::GPSTimeStamp, timestamp); } -// QVariant gpsSatellites() const { -// return metaData.value(QMediaMetaData::GPSSatellites); } -// void setGPSSatellites(const QVariant &satellites) { -// setMetaData(QMediaMetaData::GPSSatellites, satellites); } -// QVariant gpsStatus() const { return metaData.value(QMediaMetaData::GPSStatus); } -// void setGPSStatus(const QVariant &status) { setMetaData(QMediaMetaData::GPSStatus, status); } -// QVariant gpsDOP() const { return metaData.value(QMediaMetaData::GPSDOP); } -// void setGPSDOP(const QVariant &dop) { setMetaData(QMediaMetaData::GPSDOP, dop); } -// QVariant gpsSpeed() const { return metaData.value(QMediaMetaData::GPSSpeed); } -// void setGPSSpeed(const QVariant &speed) { setMetaData(QMediaMetaData::GPSSpeed, speed); } -// QVariant gpsTrack() const { return metaData.value(QMediaMetaData::GPSTrack); } -// void setGPSTrack(const QVariant &track) { setMetaData(QMediaMetaData::GPSTrack, track); } -// QVariant gpsTrackRef() const { return metaData.value(QMediaMetaData::GPSTrackRef); } -// void setGPSTrackRef(const QVariant &ref) { setMetaData(QMediaMetaData::GPSTrackRef, ref); } -// QVariant gpsImgDirection() const { -// return metaData.value(QMediaMetaData::GPSImgDirection); } -// void setGPSImgDirection(const QVariant &direction) { -// setMetaData(QMediaMetaData::GPSImgDirection, direction); } -// QVariant gpsImgDirectionRef() const { -// return metaData.value(QMediaMetaData::GPSImgDirectionRef); } -// void setGPSImgDirectionRef(const QVariant &ref) { -// setMetaData(QMediaMetaData::GPSImgDirectionRef, ref); } -// QVariant gpsMapDatum() const { return metaData.value(QMediaMetaData::GPSMapDatum); } -// void setGPSMapDatum(const QVariant &datum) { -// setMetaData(QMediaMetaData::GPSMapDatum, datum); } -// QVariant gpsProcessingMethod() const { -// return metaData.value(QMediaMetaData::GPSProcessingMethod); } -// void setGPSProcessingMethod(const QVariant &method) { -// setMetaData(QMediaMetaData::GPSProcessingMethod, method); } -// QVariant gpsAreaInformation() const { -// return metaData.value(QMediaMetaData::GPSAreaInformation); } -// void setGPSAreaInformation(const QVariant &information) { -// setMetaData(QMediaMetaData::GPSAreaInformation, information); } - -Q_SIGNALS: - void metaDataChanged(); - -private: - void setMetaData(QMediaMetaData::Key key, const QVariant &value) - { - metaData.insert(key, value); - if (!m_property.isValid() || !m_property.isWritable()) - return; - m_property.write(m_mediaSource, QVariant::fromValue(metaData)); - } - - void updateMetaData() - { - if (!m_property.isValid() || !m_property.isReadable()) - return; - metaData = m_property.read(m_mediaSource).value<QMediaMetaData>(); - } - - QMetaProperty m_property; - QObject *m_mediaSource; - QMediaMetaData metaData; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QT_PREPEND_NAMESPACE(QDeclarativeMediaMetaData)) - -#endif |