diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-02-11 22:47:17 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-02-17 08:27:39 +0000 |
commit | 4b45c95b5601acbdcd8aee52cf0d8af136b982e3 (patch) | |
tree | 6f3a1738209d0bbceee5f2a2cf511856ec49362a | |
parent | d7aa862d368d6d75fa3413f7e3ea7bcbf758c5f1 (diff) |
Remove QMediaSource inheritance from QCamera
With this, QMediaSource and QMediaSink are now
obsolete and unused.
Change-Id: I5356739fc58e2c79d741a19229c6bbd205ba0a73
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera.cpp | 22 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera_p.h | 10 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativetorch.cpp | 3 | ||||
-rw-r--r-- | src/multimedia/camera/qcamera.cpp | 41 | ||||
-rw-r--r-- | src/multimedia/camera/qcamera.h | 6 | ||||
-rw-r--r-- | src/multimedia/camera/qcamera_p.h | 24 | ||||
-rw-r--r-- | src/multimedia/camera/qcameraexposure.cpp | 3 | ||||
-rw-r--r-- | src/multimedia/camera/qcameraimagecapture.cpp | 3 | ||||
-rw-r--r-- | src/multimedia/recording/qmediarecorder.cpp | 2 | ||||
-rw-r--r-- | tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp | 14 | ||||
-rw-r--r-- | tests/auto/unit/multimedia/qcameraimagecapture/tst_qcameraimagecapture.cpp | 2 | ||||
-rw-r--r-- | tests/auto/unit/multimedia/qmediarecorder/tst_qmediarecorder.cpp | 4 |
12 files changed, 53 insertions, 81 deletions
diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp index 949db70fd..d334f5122 100644 --- a/src/imports/multimedia/qdeclarativecamera.cpp +++ b/src/imports/multimedia/qdeclarativecamera.cpp @@ -390,25 +390,13 @@ QString QDeclarativeCamera::errorString() const } /*! - \qmlproperty enumeration QtMultimedia::Camera::availability - - This property holds the availability state of the camera. - - \value Camera.Available - The camera is available for use. - \value Camera.Busy - The camera is busy at the moment as it is being used by another - process. - \value Camera.Unavailable - The camera is not available for use (there may be no camera - hardware). - \value Camera.ResourceMissing - The camera cannot be used because of missing resources. - It may be possible to try again at a later time. + \qmlproperty enumeration QtMultimedia::Camera::isAvailable + + This property returns the availability of the camera. */ -QDeclarativeCamera::Availability QDeclarativeCamera::availability() const +bool QDeclarativeCamera::isAvailable() const { - return Availability(m_camera->availability()); + return m_camera->isAvailable(); } /*! diff --git a/src/imports/multimedia/qdeclarativecamera_p.h b/src/imports/multimedia/qdeclarativecamera_p.h index 7a13d6fc6..0a57e708b 100644 --- a/src/imports/multimedia/qdeclarativecamera_p.h +++ b/src/imports/multimedia/qdeclarativecamera_p.h @@ -110,7 +110,6 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus Q_ENUMS(FocusMode) Q_ENUMS(FocusPointMode) Q_ENUMS(FocusAreaStatus) - Q_ENUMS(Availability) public: enum Position { @@ -205,13 +204,6 @@ public: FocusAreaFocused = QCameraFocusZone::Focused }; - enum Availability { - Available = QMultimedia::Available, - Busy = QMultimedia::Busy, - Unavailable = QMultimedia::ServiceMissing, - ResourceMissing = QMultimedia::ResourceError - }; - QDeclarativeCamera(QObject *parent = 0); ~QDeclarativeCamera(); @@ -245,7 +237,7 @@ public: qreal zoomFactor() const; - Availability availability() const; + bool isAvailable() const; public Q_SLOTS: void start(); diff --git a/src/imports/multimedia/qdeclarativetorch.cpp b/src/imports/multimedia/qdeclarativetorch.cpp index 28b86eb07..fa634cfcf 100644 --- a/src/imports/multimedia/qdeclarativetorch.cpp +++ b/src/imports/multimedia/qdeclarativetorch.cpp @@ -39,6 +39,7 @@ #include <QDebug> #include <QMediaService> +#include <private/qmediaplatformcaptureinterface_p.h> #include "qdeclarativetorch_p.h" @@ -70,7 +71,7 @@ QDeclarativeTorch::QDeclarativeTorch(QObject *parent) : QObject(parent) { m_camera = new QCamera(this); - QMediaService *service = m_camera->service(); + auto *service = m_camera->captureInterface(); m_exposure = service ? service->requestControl<QCameraExposureControl*>() : 0; diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp index 5ecc9018c..a1928bfb2 100644 --- a/src/multimedia/camera/qcamera.cpp +++ b/src/multimedia/camera/qcamera.cpp @@ -153,8 +153,9 @@ void QCameraPrivate::initControls() { Q_Q(QCamera); - if (service) { - control = qobject_cast<QCameraControl *>(service->requestControl(QCameraControl_iid)); + captureInterface = QMediaPlatformIntegration::instance()->createCaptureInterface(QMediaRecorder::AudioAndVideo); + if (captureInterface) { + control = qobject_cast<QCameraControl *>(captureInterface->requestControl(QCameraControl_iid)); if (control) { q->connect(control, SIGNAL(stateChanged(QCamera::State)), q, SLOT(_q_updateState(QCamera::State))); @@ -167,7 +168,7 @@ void QCameraPrivate::initControls() control = nullptr; error = QCamera::CameraError; - errorString = QCamera::tr("The camera service is missing"); + errorString = QCamera::tr("The camera captureInterface is missing"); } } @@ -177,16 +178,16 @@ void QCameraPrivate::clear() delete cameraFocus; delete imageProcessing; - if (service) { + if (captureInterface) { if (control) - service->releaseControl(control); + captureInterface->releaseControl(control); } cameraExposure = nullptr; cameraFocus = nullptr; imageProcessing = nullptr; control = nullptr; - service = nullptr; + captureInterface = nullptr; } /*! @@ -207,8 +208,7 @@ QCamera::QCamera(QObject *parent) */ QCamera::QCamera(const QCameraInfo &cameraInfo, QObject *parent) - : QMediaSource(*new QCameraPrivate, parent, - QMediaPlatformIntegration::instance()->createCaptureInterface(QMediaRecorder::AudioAndVideo)) + : QObject(*new QCameraPrivate, parent) { Q_D(QCamera); d->init(); @@ -228,9 +228,7 @@ QCamera::QCamera(const QCameraInfo &cameraInfo, QObject *parent) */ QCamera::QCamera(QCameraInfo::Position position, QObject *parent) - : QMediaSource(*new QCameraPrivate, - parent, - QMediaPlatformIntegration::instance()->createCaptureInterface(QMediaRecorder::AudioAndVideo)) + : QObject(*new QCameraPrivate, parent) { Q_D(QCamera); @@ -259,19 +257,10 @@ QCamera::~QCamera() /*! Returns the availability state of the camera service. */ -QMultimedia::AvailabilityStatus QCamera::availability() const +bool QCamera::isAvailable() const { Q_D(const QCamera); - if (d->control == nullptr) - return QMultimedia::ServiceMissing; - - if (d->cameraInfo.isNull()) - return QMultimedia::ResourceError; - - if (d->error != QCamera::NoError) - return QMultimedia::ResourceError; - - return QMediaSource::availability(); + return (d->control != nullptr); } @@ -345,6 +334,14 @@ QString QCamera::errorString() const } /*! + \internal + */ +QMediaPlatformCaptureInterface *QCamera::captureInterface() const +{ + return d_func()->captureInterface; +} + +/*! Starts the camera. State is changed to QCamera::ActiveState if camera is started diff --git a/src/multimedia/camera/qcamera.h b/src/multimedia/camera/qcamera.h index 4d909e9bb..8946aabf3 100644 --- a/src/multimedia/camera/qcamera.h +++ b/src/multimedia/camera/qcamera.h @@ -60,9 +60,10 @@ QT_BEGIN_NAMESPACE class QAbstractVideoSurface; class QCameraInfo; +class QMediaPlatformCaptureInterface; class QCameraPrivate; -class Q_MULTIMEDIA_EXPORT QCamera : public QMediaSource +class Q_MULTIMEDIA_EXPORT QCamera : public QObject { Q_OBJECT Q_PROPERTY(QCamera::State state READ state NOTIFY stateChanged) @@ -102,7 +103,7 @@ public: explicit QCamera(QCameraInfo::Position position, QObject *parent = nullptr); ~QCamera(); - QMultimedia::AvailabilityStatus availability() const override; + bool isAvailable() const; State state() const; Status status() const; @@ -120,6 +121,7 @@ public: Error error() const; QString errorString() const; + QMediaPlatformCaptureInterface *captureInterface() const; public Q_SLOTS: void load(); void unload(); diff --git a/src/multimedia/camera/qcamera_p.h b/src/multimedia/camera/qcamera_p.h index 946fc3ccc..fc80540b4 100644 --- a/src/multimedia/camera/qcamera_p.h +++ b/src/multimedia/camera/qcamera_p.h @@ -58,19 +58,14 @@ QT_BEGIN_NAMESPACE class QCameraControl; +class QMediaPlatformCaptureInterface; -class QCameraPrivate : public QMediaSourcePrivate +class QCameraPrivate : public QObjectPrivate { Q_DECLARE_NON_CONST_PUBLIC(QCamera) public: QCameraPrivate() - : QMediaSourcePrivate(), - control(nullptr), - cameraExposure(nullptr), - cameraFocus(nullptr), - imageProcessing(nullptr), - viewfinder(nullptr), - capture(nullptr), + : QObjectPrivate(), state(QCamera::UnloadedState), error(QCamera::NoError), supressLockChangedSignal(false), @@ -83,14 +78,15 @@ public: void clear(); - QCameraControl *control; + QMediaPlatformCaptureInterface *captureInterface = nullptr; + QCameraControl *control = nullptr; - QCameraExposure *cameraExposure; - QCameraFocus *cameraFocus; - QCameraImageProcessing *imageProcessing; + QCameraExposure *cameraExposure = nullptr; + QCameraFocus *cameraFocus = nullptr; + QCameraImageProcessing *imageProcessing = nullptr; - QMediaSink *viewfinder; - QObject *capture; + QMediaSink *viewfinder = nullptr; + QObject *capture = nullptr; QCamera::State state; diff --git a/src/multimedia/camera/qcameraexposure.cpp b/src/multimedia/camera/qcameraexposure.cpp index 9acaf7d3a..0c8668c60 100644 --- a/src/multimedia/camera/qcameraexposure.cpp +++ b/src/multimedia/camera/qcameraexposure.cpp @@ -190,9 +190,6 @@ QCameraExposure::QCameraExposure(QCamera *parent, QCameraControl *cameraControl) QCameraExposure::~QCameraExposure() { Q_D(QCameraExposure); - if (d->exposureControl) - d->camera->service()->releaseControl(d->exposureControl); - delete d; } diff --git a/src/multimedia/camera/qcameraimagecapture.cpp b/src/multimedia/camera/qcameraimagecapture.cpp index d67630bcd..6f1d610f5 100644 --- a/src/multimedia/camera/qcameraimagecapture.cpp +++ b/src/multimedia/camera/qcameraimagecapture.cpp @@ -40,6 +40,7 @@ #include <qcameraimagecapturecontrol.h> #include <qmediaencodersettings.h> #include <qmediametadata.h> +#include <private/qmediaplatformcaptureinterface_p.h> #include "qmediasource_p.h" #include <qmediaservice.h> @@ -137,7 +138,7 @@ QCameraImageCapture::QCameraImageCapture(QCamera *camera) d->q_ptr = this; d->camera = camera; - QMediaService *service = camera->service(); + QMediaPlatformCaptureInterface *service = camera->captureInterface(); if (service) { d->control = qobject_cast<QCameraImageCaptureControl*>(service->requestControl(QCameraImageCaptureControl_iid)); diff --git a/src/multimedia/recording/qmediarecorder.cpp b/src/multimedia/recording/qmediarecorder.cpp index 777e2ba9b..6097752df 100644 --- a/src/multimedia/recording/qmediarecorder.cpp +++ b/src/multimedia/recording/qmediarecorder.cpp @@ -278,7 +278,7 @@ bool QMediaRecorder::setCamera(QCamera *object) d->camera = object; - QMediaService *service = d->camera->service(); + auto *service = d->camera->captureInterface(); Q_ASSERT(service); d->notifyTimer->setInterval(notifyInterval()); diff --git a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp index dd5cb9f5c..4f7cfc705 100644 --- a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp +++ b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp @@ -807,21 +807,21 @@ void tst_QCamera::testConstructor() { QCamera camera; - QCOMPARE(camera.availability(), QMultimedia::Available); + QCOMPARE(camera.isAvailable(), true); QCOMPARE(camera.error(), QCamera::NoError); QCOMPARE(camera.cameraInfo(), defaultCamera); } { QCamera camera(QCameraInfo::FrontFace); - QCOMPARE(camera.availability(), QMultimedia::Available); + QCOMPARE(camera.isAvailable(), true); QCOMPARE(camera.error(), QCamera::NoError); QCOMPARE(camera.cameraInfo(), frontCamera); } { QCamera camera(QMediaDeviceManager::defaultVideoInput()); - QCOMPARE(camera.availability(), QMultimedia::Available); + QCOMPARE(camera.isAvailable(), true); QCOMPARE(camera.error(), QCamera::NoError); QCOMPARE(camera.cameraInfo(), defaultCamera); } @@ -829,14 +829,14 @@ void tst_QCamera::testConstructor() { QCameraInfo cameraInfo = QMediaDeviceManager::videoInputs().at(0); QCamera camera(cameraInfo); - QCOMPARE(camera.availability(), QMultimedia::Available); + QCOMPARE(camera.isAvailable(), true); QCOMPARE(camera.error(), QCamera::NoError); QCOMPARE(camera.cameraInfo(), cameraInfo); } { QCamera camera(QCameraInfo::BackFace); - QCOMPARE(camera.availability(), QMultimedia::Available); + QCOMPARE(camera.isAvailable(), true); QCOMPARE(camera.error(), QCamera::NoError); QCOMPARE(camera.cameraInfo(), backCamera); } @@ -844,7 +844,7 @@ void tst_QCamera::testConstructor() { // Should load the default camera when UnspecifiedPosition is requested QCamera camera(QCameraInfo::UnspecifiedPosition); - QCOMPARE(camera.availability(), QMultimedia::Available); + QCOMPARE(camera.isAvailable(), true); QCOMPARE(camera.error(), QCamera::NoError); QCOMPARE(camera.cameraInfo(), defaultCamera); } @@ -855,7 +855,6 @@ void tst_QCamera::testQCameraIsAvailable() { QCamera camera; QVERIFY(camera.isAvailable()); - QVERIFY(camera.availability() == QMultimedia::Available); } void tst_QCamera::testQCameraIsNotAvailable() @@ -865,7 +864,6 @@ void tst_QCamera::testQCameraIsNotAvailable() QCOMPARE(camera.error(), QCamera::CameraError); QVERIFY(!camera.isAvailable()); - QCOMPARE(camera.availability(), QMultimedia::ServiceMissing); integration->setFlags({}); } diff --git a/tests/auto/unit/multimedia/qcameraimagecapture/tst_qcameraimagecapture.cpp b/tests/auto/unit/multimedia/qcameraimagecapture/tst_qcameraimagecapture.cpp index 416885d23..dfae2c5d4 100644 --- a/tests/auto/unit/multimedia/qcameraimagecapture/tst_qcameraimagecapture.cpp +++ b/tests/auto/unit/multimedia/qcameraimagecapture/tst_qcameraimagecapture.cpp @@ -144,7 +144,7 @@ void tst_QCameraImageCapture::mediaSource() QCamera camera1; QCameraImageCapture imageCapture1(&camera1); - QMediaSource *medobj1 = imageCapture1.camera(); + auto *medobj1 = imageCapture1.camera(); QCOMPARE(medobj1, &camera1); } diff --git a/tests/auto/unit/multimedia/qmediarecorder/tst_qmediarecorder.cpp b/tests/auto/unit/multimedia/qmediarecorder/tst_qmediarecorder.cpp index f38d1968e..48b14bd4a 100644 --- a/tests/auto/unit/multimedia/qmediarecorder/tst_qmediarecorder.cpp +++ b/tests/auto/unit/multimedia/qmediarecorder/tst_qmediarecorder.cpp @@ -730,7 +730,7 @@ void tst_QMediaRecorder::metaData() QCamera object; QMediaRecorder recorder(&object); - QVERIFY(object.metaData().isEmpty()); + QVERIFY(recorder.metaData().isEmpty()); QMediaMetaData data; data.insert(QMediaMetaData::Author, QString::fromUtf8("John Doe")); @@ -922,7 +922,7 @@ void tst_QMediaRecorder::testMediaSource() QCamera *medobj = recorder.camera(); QVERIFY(medobj == nullptr); - QMediaSource *medobj1 = capture->camera(); + auto *medobj1 = capture->camera(); QVERIFY(medobj1 != nullptr); } |