summaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-02-12 09:39:50 +0100
committerLars Knoll <lars.knoll@qt.io>2021-02-17 08:27:50 +0000
commit33186a09048faef5b9a6585b69e0a9cab4182a3e (patch)
tree28dfc734e1cf5928ae73c834391334713060fbd7 /src/imports
parentb94b47d472c70124c38d4feb546df26d8015b3be (diff)
Get rid of QMediaService for the capture interface
Change-Id: I69a3d379bd2f1adbc4d583fd8eadcd3eb624a3af Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/multimedia/multimedia.cpp3
-rw-r--r--src/imports/multimedia/qdeclarativecamera.cpp2
-rw-r--r--src/imports/multimedia/qdeclarativecamera_p.h4
-rw-r--r--src/imports/multimedia/qdeclarativetorch.cpp12
-rw-r--r--src/imports/multimedia/qdeclarativetorch_p.h8
-rw-r--r--src/imports/multimedia/qmldir1
6 files changed, 20 insertions, 10 deletions
diff --git a/src/imports/multimedia/multimedia.cpp b/src/imports/multimedia/multimedia.cpp
index 94efe2c5f..b2bad8e8f 100644
--- a/src/imports/multimedia/multimedia.cpp
+++ b/src/imports/multimedia/multimedia.cpp
@@ -86,7 +86,6 @@ public:
qmlRegisterType<QDeclarativeAudio>(uri, 5, 0, "MediaPlayer");
qmlRegisterType<QDeclarativeVideoOutput>(uri, 5, 0, "VideoOutput");
qmlRegisterType<QDeclarativeCamera>(uri, 5, 0, "Camera");
- qmlRegisterType<QDeclarativeTorch>(uri, 5, 0, "Torch");
qmlRegisterUncreatableType<QDeclarativeCameraCapture>(uri, 5, 0, "CameraCapture",
tr("CameraCapture is provided by Camera"));
qmlRegisterUncreatableType<QDeclarativeCameraRecorder>(uri, 5, 0, "CameraRecorder",
@@ -97,6 +96,8 @@ public:
tr("CameraFocus is provided by Camera"));
qmlRegisterUncreatableType<QDeclarativeCameraFlash>(uri, 5, 0, "CameraFlash",
tr("CameraFlash is provided by Camera"));
+ qmlRegisterUncreatableType<QDeclarativeTorch>(uri, 5, 0, "CameraTorch",
+ tr("CameraTorch is provided by Camera"));
qmlRegisterUncreatableType<QDeclarativeCameraImageProcessing>(uri, 5, 0, "CameraImageProcessing",
tr("CameraImageProcessing is provided by Camera"));
diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp
index d334f5122..6536bc5dc 100644
--- a/src/imports/multimedia/qdeclarativecamera.cpp
+++ b/src/imports/multimedia/qdeclarativecamera.cpp
@@ -42,6 +42,7 @@
#include "qdeclarativecameraexposure_p.h"
#include "qdeclarativecameraflash_p.h"
+#include "qdeclarativetorch_p.h"
#include "qdeclarativecamerafocus_p.h"
#include "qdeclarativecameraimageprocessing_p.h"
@@ -180,6 +181,7 @@ QDeclarativeCamera::QDeclarativeCamera(QObject *parent) :
m_videoRecorder = new QDeclarativeCameraRecorder(m_camera);
m_exposure = new QDeclarativeCameraExposure(m_camera);
m_flash = new QDeclarativeCameraFlash(m_camera);
+ m_torch = new QDeclarativeTorch(m_camera);
m_focus = new QDeclarativeCameraFocus(m_camera);
m_imageProcessing = new QDeclarativeCameraImageProcessing(m_camera);
diff --git a/src/imports/multimedia/qdeclarativecamera_p.h b/src/imports/multimedia/qdeclarativecamera_p.h
index 0a57e708b..8e21ac290 100644
--- a/src/imports/multimedia/qdeclarativecamera_p.h
+++ b/src/imports/multimedia/qdeclarativecamera_p.h
@@ -70,6 +70,7 @@ QT_BEGIN_NAMESPACE
class QDeclarativeCameraExposure;
class QDeclarativeCameraFocus;
class QDeclarativeCameraFlash;
+class QDeclarativeTorch;
class QDeclarativeCameraImageProcessing;
class QDeclarativeMediaMetaData;
class QDeclarativeCamera : public QObject, public QQmlParserStatus
@@ -95,6 +96,7 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus
Q_PROPERTY(QDeclarativeCameraRecorder* videoRecorder READ videoRecorder CONSTANT)
Q_PROPERTY(QDeclarativeCameraExposure* exposure READ exposure CONSTANT)
Q_PROPERTY(QDeclarativeCameraFlash* flash READ flash CONSTANT)
+ 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)
@@ -213,6 +215,7 @@ public:
QDeclarativeCameraRecorder *videoRecorder() { return m_videoRecorder; }
QDeclarativeCameraExposure *exposure() { return m_exposure; }
QDeclarativeCameraFlash *flash() { return m_flash; }
+ QDeclarativeTorch *torch() { return m_torch; }
QDeclarativeCameraFocus *focus() { return m_focus; }
QDeclarativeCameraImageProcessing *imageProcessing() { return m_imageProcessing; }
@@ -284,6 +287,7 @@ private:
QDeclarativeCameraRecorder *m_videoRecorder;
QDeclarativeCameraExposure *m_exposure;
QDeclarativeCameraFlash *m_flash;
+ QDeclarativeTorch *m_torch;
QDeclarativeCameraFocus *m_focus;
QDeclarativeCameraImageProcessing *m_imageProcessing;
QDeclarativeMediaMetaData *m_metaData;
diff --git a/src/imports/multimedia/qdeclarativetorch.cpp b/src/imports/multimedia/qdeclarativetorch.cpp
index fa634cfcf..c544c0a4e 100644
--- a/src/imports/multimedia/qdeclarativetorch.cpp
+++ b/src/imports/multimedia/qdeclarativetorch.cpp
@@ -40,6 +40,7 @@
#include <QDebug>
#include <QMediaService>
#include <private/qmediaplatformcaptureinterface_p.h>
+#include <qcameracontrol.h>
#include "qdeclarativetorch_p.h"
@@ -67,13 +68,14 @@ QT_BEGIN_NAMESPACE
\endqml
*/
-QDeclarativeTorch::QDeclarativeTorch(QObject *parent)
- : QObject(parent)
+QDeclarativeTorch::QDeclarativeTorch(QCamera *camera)
+ : QObject(camera),
+ m_camera(camera)
{
- m_camera = new QCamera(this);
+ if (!camera)
+ return;
auto *service = m_camera->captureInterface();
-
- m_exposure = service ? service->requestControl<QCameraExposureControl*>() : 0;
+ m_exposure = service->cameraControl()->exposureControl();
if (m_exposure)
connect(m_exposure, SIGNAL(actualValueChanged(int)), SLOT(parameterChanged(int)));
diff --git a/src/imports/multimedia/qdeclarativetorch_p.h b/src/imports/multimedia/qdeclarativetorch_p.h
index 70ee954f9..2180a5311 100644
--- a/src/imports/multimedia/qdeclarativetorch_p.h
+++ b/src/imports/multimedia/qdeclarativetorch_p.h
@@ -59,6 +59,8 @@
QT_BEGIN_NAMESPACE
+class QDeclarativeCamera;
+
class QDeclarativeTorch : public QObject
{
Q_OBJECT
@@ -68,7 +70,7 @@ class QDeclarativeTorch : public QObject
// Errors?
public:
- explicit QDeclarativeTorch(QObject *parent = 0);
+ explicit QDeclarativeTorch(QCamera *parent = 0);
~QDeclarativeTorch();
bool enabled() const;
@@ -85,8 +87,8 @@ private slots:
void parameterChanged(int parameter);
private:
- QCamera *m_camera;
- QCameraExposureControl *m_exposure;
+ QCamera *m_camera = nullptr;
+ QCameraExposureControl *m_exposure = nullptr;
};
QT_END_NAMESPACE
diff --git a/src/imports/multimedia/qmldir b/src/imports/multimedia/qmldir
index e7dcc3dd6..d68049f63 100644
--- a/src/imports/multimedia/qmldir
+++ b/src/imports/multimedia/qmldir
@@ -4,4 +4,3 @@ classname QMultimediaDeclarativeModule
typeinfo plugins.qmltypes
typeinfo plugins.qmltypes
Video 5.0 Video.qml
-