summaryrefslogtreecommitdiff
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
parentb94b47d472c70124c38d4feb546df26d8015b3be (diff)
downloadqtmultimedia-33186a09048faef5b9a6585b69e0a9cab4182a3e.tar.gz
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>
-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
-rw-r--r--src/multimedia/camera/qcamera.cpp8
-rw-r--r--src/multimedia/camera/qcameraimagecapture.cpp2
-rw-r--r--src/multimedia/controls/qaudiodecodercontrol.cpp18
-rw-r--r--src/multimedia/controls/qaudiodecodercontrol.h3
-rw-r--r--src/multimedia/controls/qcameracontrol.cpp20
-rw-r--r--src/multimedia/controls/qcameracontrol.h3
-rw-r--r--src/multimedia/controls/qcameraexposurecontrol.cpp13
-rw-r--r--src/multimedia/controls/qcameraexposurecontrol.h3
-rw-r--r--src/multimedia/controls/qcamerafocuscontrol.cpp18
-rw-r--r--src/multimedia/controls/qcamerafocuscontrol.h3
-rw-r--r--src/multimedia/controls/qcameraimagecapturecontrol.cpp17
-rw-r--r--src/multimedia/controls/qcameraimagecapturecontrol.h9
-rw-r--r--src/multimedia/controls/qcameraimageprocessingcontrol.cpp15
-rw-r--r--src/multimedia/controls/qcameraimageprocessingcontrol.h3
-rw-r--r--src/multimedia/controls/qmediaplayercontrol.cpp2
-rw-r--r--src/multimedia/controls/qmediarecordercontrol.cpp15
-rw-r--r--src/multimedia/controls/qmediarecordercontrol.h3
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcaptureservice.cpp19
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcaptureservice_p.h5
-rw-r--r--src/multimedia/platform/darwin/camera/avfcameraservice.mm19
-rw-r--r--src/multimedia/platform/darwin/camera/avfcameraservice_p.h9
-rw-r--r--src/multimedia/platform/darwin/camera/avfcamerasession.mm2
-rw-r--r--src/multimedia/platform/darwin/camera/avfimagecapturecontrol.mm4
-rw-r--r--src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm3
-rw-r--r--src/multimedia/platform/darwin/camera/avfmediarecordercontrol_p.h1
-rw-r--r--src/multimedia/platform/gstreamer/mediacapture/qgstreamercaptureservice.cpp32
-rw-r--r--src/multimedia/platform/gstreamer/mediacapture/qgstreamercaptureservice_p.h12
-rw-r--r--src/multimedia/platform/qmediaplatformcaptureinterface.cpp6
-rw-r--r--src/multimedia/platform/qmediaplatformcaptureinterface_p.h11
-rw-r--r--src/multimedia/platform/qnx/camera/bbcameraservice.cpp32
-rw-r--r--src/multimedia/platform/qnx/camera/bbcameraservice_p.h4
-rw-r--r--src/multimedia/recording/qmediarecorder.cpp4
-rw-r--r--tests/auto/unit/mockbackend/CMakeLists.txt1
-rw-r--r--tests/auto/unit/mockbackend/audio.pri1
-rw-r--r--tests/auto/unit/mockbackend/mockaudiodecoderservice.h81
-rw-r--r--tests/auto/unit/mockbackend/mockmediarecorderservice.h32
-rw-r--r--tests/auto/unit/multimedia/qaudiodecoder/tst_qaudiodecoder.cpp2
43 files changed, 93 insertions, 372 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
-
diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp
index 40f0b24fd..665668474 100644
--- a/src/multimedia/camera/qcamera.cpp
+++ b/src/multimedia/camera/qcamera.cpp
@@ -155,7 +155,7 @@ void QCameraPrivate::initControls()
captureInterface = QMediaPlatformIntegration::instance()->createCaptureInterface(QMediaRecorder::AudioAndVideo);
if (captureInterface) {
- control = qobject_cast<QCameraControl *>(captureInterface->requestControl(QCameraControl_iid));
+ control = captureInterface->cameraControl();
if (control) {
q->connect(control, SIGNAL(stateChanged(QCamera::State)), q, SLOT(_q_updateState(QCamera::State)));
@@ -177,11 +177,7 @@ void QCameraPrivate::clear()
delete cameraExposure;
delete cameraFocus;
delete imageProcessing;
-
- if (captureInterface) {
- if (control)
- captureInterface->releaseControl(control);
- }
+ delete control;
cameraExposure = nullptr;
cameraFocus = nullptr;
diff --git a/src/multimedia/camera/qcameraimagecapture.cpp b/src/multimedia/camera/qcameraimagecapture.cpp
index 6b0d4cb9e..72f7fb622 100644
--- a/src/multimedia/camera/qcameraimagecapture.cpp
+++ b/src/multimedia/camera/qcameraimagecapture.cpp
@@ -140,7 +140,7 @@ QCameraImageCapture::QCameraImageCapture(QCamera *camera)
QMediaPlatformCaptureInterface *service = camera->captureInterface();
if (service) {
- d->control = qobject_cast<QCameraImageCaptureControl*>(service->requestControl(QCameraImageCaptureControl_iid));
+ d->control = service->imageCaptureControl();
if (d->control) {
connect(d->control, SIGNAL(imageExposed(int)),
diff --git a/src/multimedia/controls/qaudiodecodercontrol.cpp b/src/multimedia/controls/qaudiodecodercontrol.cpp
index 6255e2015..bd933dff6 100644
--- a/src/multimedia/controls/qaudiodecodercontrol.cpp
+++ b/src/multimedia/controls/qaudiodecodercontrol.cpp
@@ -54,24 +54,6 @@ QT_BEGIN_NAMESPACE
functionality of a QMediaService.
\preliminary
-
- The functionality provided by this control is exposed to application
- code through the QAudioDecoder class.
-
- The interface name of QAudioDecoderControl is \c org.qt-project.qt.audiodecodercontrol/5.0 as
- defined in QAudioDecoderControl_iid.
-
- \sa QMediaService::requestControl(), QAudioDecoder
-*/
-
-/*!
- \macro QAudioDecoderControl_iid
-
- \c org.qt-project.qt.audiodecodercontrol/5.0
-
- Defines the interface name of the QAudioDecoderControl class.
-
- \relates QAudioDecoderControl
*/
/*!
diff --git a/src/multimedia/controls/qaudiodecodercontrol.h b/src/multimedia/controls/qaudiodecodercontrol.h
index 1422ca333..945a67000 100644
--- a/src/multimedia/controls/qaudiodecodercontrol.h
+++ b/src/multimedia/controls/qaudiodecodercontrol.h
@@ -93,9 +93,6 @@ protected:
explicit QAudioDecoderControl(QObject *parent = nullptr);
};
-#define QAudioDecoderControl_iid "org.qt-project.qt.audiodecodercontrol/5.0"
-Q_MEDIA_DECLARE_CONTROL(QAudioDecoderControl, QAudioDecoderControl_iid)
-
QT_END_NAMESPACE
#endif // QAUDIODECODERCONTROL_H
diff --git a/src/multimedia/controls/qcameracontrol.cpp b/src/multimedia/controls/qcameracontrol.cpp
index efd0a920a..a55c198ad 100644
--- a/src/multimedia/controls/qcameracontrol.cpp
+++ b/src/multimedia/controls/qcameracontrol.cpp
@@ -53,26 +53,6 @@ QT_BEGIN_NAMESPACE
\inmodule QtMultimedia
\ingroup multimedia_control
-
- This service is provided by a QMediaService object via
- QMediaService::control(). It is used by QCamera.
-
- The interface name of QCameraControl is \c org.qt-project.qt.cameracontrol/5.0 as
- defined in QCameraControl_iid.
-
-
-
- \sa QMediaService::requestControl(), QCamera
-*/
-
-/*!
- \macro QCameraControl_iid
-
- \c org.qt-project.qt.cameracontrol/5.0
-
- Defines the interface name of the QCameraControl class.
-
- \relates QCameraControl
*/
/*!
diff --git a/src/multimedia/controls/qcameracontrol.h b/src/multimedia/controls/qcameracontrol.h
index f542eefbe..c61e452dc 100644
--- a/src/multimedia/controls/qcameracontrol.h
+++ b/src/multimedia/controls/qcameracontrol.h
@@ -90,9 +90,6 @@ protected:
explicit QCameraControl(QObject *parent = nullptr);
};
-#define QCameraControl_iid "org.qt-project.qt.cameracontrol/5.0"
-Q_MEDIA_DECLARE_CONTROL(QCameraControl, QCameraControl_iid)
-
QT_END_NAMESPACE
diff --git a/src/multimedia/controls/qcameraexposurecontrol.cpp b/src/multimedia/controls/qcameraexposurecontrol.cpp
index 8894604cf..fcfd4da22 100644
--- a/src/multimedia/controls/qcameraexposurecontrol.cpp
+++ b/src/multimedia/controls/qcameraexposurecontrol.cpp
@@ -59,23 +59,10 @@ QT_BEGIN_NAMESPACE
You can adjust a number of parameters that will affect images and video taken with
the corresponding QCamera object - see the \l {QCameraExposureControl::ExposureParameter}{ExposureParameter} enumeration.
- The interface name of QCameraExposureControl is \c org.qt-project.qt.cameraexposurecontrol/5.0 as
- defined in QCameraExposureControl_iid.
-
\sa QCameraExposure, QCamera
*/
/*!
- \macro QCameraExposureControl_iid
-
- \c org.qt-project.qt.cameraexposurecontrol/5.0
-
- Defines the interface name of the QCameraExposureControl class.
-
- \relates QCameraExposureControl
-*/
-
-/*!
Constructs a camera exposure control object with \a parent.
*/
QCameraExposureControl::QCameraExposureControl(QObject *parent)
diff --git a/src/multimedia/controls/qcameraexposurecontrol.h b/src/multimedia/controls/qcameraexposurecontrol.h
index 862355bdb..59b448bd8 100644
--- a/src/multimedia/controls/qcameraexposurecontrol.h
+++ b/src/multimedia/controls/qcameraexposurecontrol.h
@@ -91,9 +91,6 @@ protected:
explicit QCameraExposureControl(QObject *parent = nullptr);
};
-#define QCameraExposureControl_iid "org.qt-project.qt.cameraexposurecontrol/5.0"
-Q_MEDIA_DECLARE_CONTROL(QCameraExposureControl, QCameraExposureControl_iid)
-
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QCameraExposureControl::ExposureParameter)
diff --git a/src/multimedia/controls/qcamerafocuscontrol.cpp b/src/multimedia/controls/qcamerafocuscontrol.cpp
index 91fbb7bd6..f110b3c89 100644
--- a/src/multimedia/controls/qcamerafocuscontrol.cpp
+++ b/src/multimedia/controls/qcamerafocuscontrol.cpp
@@ -50,25 +50,9 @@ QT_BEGIN_NAMESPACE
focusing related camera parameters.
\inmodule QtMultimedia
-
-
\ingroup multimedia_control
- The interface name of QCameraFocusControl is \c org.qt-project.qt.camerafocuscontrol/5.0 as
- defined in QCameraFocusControl_iid.
-
-
- \sa QMediaService::requestControl(), QCamera
-*/
-
-/*!
- \macro QCameraFocusControl_iid
-
- \c org.qt-project.qt.camerafocuscontrol/5.0
-
- Defines the interface name of the QCameraFocusControl class.
-
- \relates QCameraFocusControl
+ \sa QCamera
*/
/*!
diff --git a/src/multimedia/controls/qcamerafocuscontrol.h b/src/multimedia/controls/qcamerafocuscontrol.h
index 1d066a1cb..536eb44a7 100644
--- a/src/multimedia/controls/qcamerafocuscontrol.h
+++ b/src/multimedia/controls/qcamerafocuscontrol.h
@@ -89,9 +89,6 @@ protected:
explicit QCameraFocusControl(QObject *parent = nullptr);
};
-#define QCameraFocusControl_iid "org.qt-project.qt.camerafocuscontrol/5.0"
-Q_MEDIA_DECLARE_CONTROL(QCameraFocusControl, QCameraFocusControl_iid)
-
QT_END_NAMESPACE
diff --git a/src/multimedia/controls/qcameraimagecapturecontrol.cpp b/src/multimedia/controls/qcameraimagecapturecontrol.cpp
index 9ecd30fc3..a0d7770c4 100644
--- a/src/multimedia/controls/qcameraimagecapturecontrol.cpp
+++ b/src/multimedia/controls/qcameraimagecapturecontrol.cpp
@@ -50,25 +50,8 @@ QT_BEGIN_NAMESPACE
for image capture services.
\inmodule QtMultimedia
-
-
\ingroup multimedia_control
- The interface name of QCameraImageCaptureControl is \c org.qt-project.qt.cameraimagecapturecontrol/5.0 as
- defined in QCameraImageCaptureControl_iid.
-
-
- \sa QMediaService::requestControl()
-*/
-
-/*!
- \macro QCameraImageCaptureControl_iid
-
- \c org.qt-project.qt.cameraimagecapturecontrol/5.0
-
- Defines the interface name of the QCameraImageCaptureControl class.
-
- \relates QCameraImageCaptureControl
*/
/*!
diff --git a/src/multimedia/controls/qcameraimagecapturecontrol.h b/src/multimedia/controls/qcameraimagecapturecontrol.h
index cef317c38..e04be102f 100644
--- a/src/multimedia/controls/qcameraimagecapturecontrol.h
+++ b/src/multimedia/controls/qcameraimagecapturecontrol.h
@@ -46,12 +46,6 @@
QT_BEGIN_NAMESPACE
class QImage;
-QT_END_NAMESPACE
-
-QT_BEGIN_NAMESPACE
-
-// Required for QDoc workaround
-class QString;
class Q_MULTIMEDIA_EXPORT QCameraImageCaptureControl : public QObject
{
@@ -85,9 +79,6 @@ protected:
explicit QCameraImageCaptureControl(QObject *parent = nullptr);
};
-#define QCameraImageCaptureControl_iid "org.qt-project.qt.cameraimagecapturecontrol/5.0"
-Q_MEDIA_DECLARE_CONTROL(QCameraImageCaptureControl, QCameraImageCaptureControl_iid)
-
QT_END_NAMESPACE
diff --git a/src/multimedia/controls/qcameraimageprocessingcontrol.cpp b/src/multimedia/controls/qcameraimageprocessingcontrol.cpp
index ab840900e..0808d7b5c 100644
--- a/src/multimedia/controls/qcameraimageprocessingcontrol.cpp
+++ b/src/multimedia/controls/qcameraimageprocessingcontrol.cpp
@@ -61,9 +61,6 @@ Q_CONSTRUCTOR_FUNCTION(qRegisterCameraImageProcessingControlMetaTypes)
for controlling image processing parameters, like white balance,
contrast, saturation, sharpening and denoising.
- The interface name of QCameraImageProcessingControl is \c org.qt-project.qt.cameraimageprocessingcontrol/5.0 as
- defined in QCameraImageProcessingControl_iid.
-
Camera service may choose the parameters of image processing pipeline depending
on sensor properties camera settings and capture parameters.
@@ -78,17 +75,7 @@ Q_CONSTRUCTOR_FUNCTION(qRegisterCameraImageProcessingControlMetaTypes)
slightly reduces the amount of sharpening applied,
while settings the Sharpening parameter to 0 disables sharpening at all.
- \sa QMediaService::requestControl(), QCamera
-*/
-
-/*!
- \macro QCameraImageProcessingControl_iid
-
- \c org.qt-project.qt.cameraimageprocessingcontrol/5.0
-
- Defines the interface name of the QCameraImageProcessingControl class.
-
- \relates QCameraImageProcessingControl
+ \sa QCamera
*/
/*!
diff --git a/src/multimedia/controls/qcameraimageprocessingcontrol.h b/src/multimedia/controls/qcameraimageprocessingcontrol.h
index ce8ed50ad..ad7acbd69 100644
--- a/src/multimedia/controls/qcameraimageprocessingcontrol.h
+++ b/src/multimedia/controls/qcameraimageprocessingcontrol.h
@@ -84,9 +84,6 @@ protected:
explicit QCameraImageProcessingControl(QObject *parent = nullptr);
};
-#define QCameraImageProcessingControl_iid "org.qt-project.qt.cameraimageprocessingcontrol/5.0"
-Q_MEDIA_DECLARE_CONTROL(QCameraImageProcessingControl, QCameraImageProcessingControl_iid)
-
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QCameraImageProcessingControl::ProcessingParameter)
diff --git a/src/multimedia/controls/qmediaplayercontrol.cpp b/src/multimedia/controls/qmediaplayercontrol.cpp
index 237bf64e1..eb188df6b 100644
--- a/src/multimedia/controls/qmediaplayercontrol.cpp
+++ b/src/multimedia/controls/qmediaplayercontrol.cpp
@@ -69,7 +69,7 @@ QT_BEGIN_NAMESPACE
The interface name of QMediaPlayerControl is \c org.qt-project.qt.mediaplayercontrol/5.0 as
defined in QMediaPlayerControl_iid.
- \sa QMediaService::requestControl(), QMediaPlayer
+ \sa QMediaPlayer
*/
/*!
diff --git a/src/multimedia/controls/qmediarecordercontrol.cpp b/src/multimedia/controls/qmediarecordercontrol.cpp
index fdee47e1c..5778053d5 100644
--- a/src/multimedia/controls/qmediarecordercontrol.cpp
+++ b/src/multimedia/controls/qmediarecordercontrol.cpp
@@ -62,21 +62,8 @@ QT_BEGIN_NAMESPACE
and record, pause and stop recording via the \l setState() method. It also
provides feedback on the \l {duration()}{duration} of the recording.
- The interface name of QMediaRecorderControl is \c org.qt-project.qt.mediarecordercontrol/5.0 as
- defined in QMediaRecorderControl_iid.
+ \sa QMediaRecorder
- \sa QMediaService::requestControl(), QMediaRecorder
-
-*/
-
-/*!
- \macro QMediaRecorderControl_iid
-
- \c org.qt-project.qt.mediarecordercontrol/5.0
-
- Defines the interface name of the QMediaRecorderControl class.
-
- \relates QMediaRecorderControl
*/
/*!
diff --git a/src/multimedia/controls/qmediarecordercontrol.h b/src/multimedia/controls/qmediarecordercontrol.h
index fd972ea84..dfa40f85d 100644
--- a/src/multimedia/controls/qmediarecordercontrol.h
+++ b/src/multimedia/controls/qmediarecordercontrol.h
@@ -99,9 +99,6 @@ protected:
explicit QMediaRecorderControl(QObject *parent = nullptr);
};
-#define QMediaRecorderControl_iid "org.qt-project.qt.mediarecordercontrol/5.0"
-Q_MEDIA_DECLARE_CONTROL(QMediaRecorderControl, QMediaRecorderControl_iid)
-
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/android/mediacapture/qandroidcaptureservice.cpp b/src/multimedia/platform/android/mediacapture/qandroidcaptureservice.cpp
index 7e2ff8ac8..fad33fe09 100644
--- a/src/multimedia/platform/android/mediacapture/qandroidcaptureservice.cpp
+++ b/src/multimedia/platform/android/mediacapture/qandroidcaptureservice.cpp
@@ -75,22 +75,19 @@ QAndroidCaptureService::~QAndroidCaptureService()
delete m_cameraSession;
}
-QObject *QAndroidCaptureService::requestControl(const char *name)
+QCameraControl *QAndroidCaptureService::cameraControl()
{
- if (qstrcmp(name, QMediaRecorderControl_iid) == 0)
- return m_recorderControl;
-
- if (qstrcmp(name, QCameraControl_iid) == 0)
- return m_cameraControl;
-
- if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0)
- return m_imageCaptureControl;
+ return m_cameraControl;
+}
- return 0;
+QCameraImageCaptureControl *QAndroidCaptureService::imageCaptureControl()
+{
+ return m_imageCaptureControl;
}
-void QAndroidCaptureService::releaseControl(QObject *)
+QMediaRecorderControl *QAndroidCaptureService::mediaRecorderControl()
{
+ return m_recorderControl;
}
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/android/mediacapture/qandroidcaptureservice_p.h b/src/multimedia/platform/android/mediacapture/qandroidcaptureservice_p.h
index e10646a82..c5d6fb238 100644
--- a/src/multimedia/platform/android/mediacapture/qandroidcaptureservice_p.h
+++ b/src/multimedia/platform/android/mediacapture/qandroidcaptureservice_p.h
@@ -72,8 +72,9 @@ public:
explicit QAndroidCaptureService(QMediaRecorder::CaptureMode mode);
virtual ~QAndroidCaptureService();
- QObject *requestControl(const char *name);
- void releaseControl(QObject *);
+ QCameraControl *cameraControl() override;
+ QCameraImageCaptureControl *imageCaptureControl() override;
+ QMediaRecorderControl *mediaRecorderControl() override;
bool m_videoEnabled = false;
diff --git a/src/multimedia/platform/darwin/camera/avfcameraservice.mm b/src/multimedia/platform/darwin/camera/avfcameraservice.mm
index 3e9f6b873..dc13b08be 100644
--- a/src/multimedia/platform/darwin/camera/avfcameraservice.mm
+++ b/src/multimedia/platform/darwin/camera/avfcameraservice.mm
@@ -99,22 +99,19 @@ AVFCameraService::~AVFCameraService()
delete m_session;
}
-QObject *AVFCameraService::requestControl(const char *name)
+QCameraControl *AVFCameraService::cameraControl()
{
- if (qstrcmp(name, QCameraControl_iid) == 0)
- return m_cameraControl;
-
- if (qstrcmp(name, QMediaRecorderControl_iid) == 0)
- return m_recorderControl;
-
- if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0)
- return m_imageCaptureControl;
+ return m_cameraControl;
+}
- return nullptr;
+QCameraImageCaptureControl *AVFCameraService::imageCaptureControl()
+{
+ return m_imageCaptureControl;
}
-void AVFCameraService::releaseControl(QObject *)
+QMediaRecorderControl *AVFCameraService::mediaRecorderControl()
{
+ return m_recorderControl;
}
diff --git a/src/multimedia/platform/darwin/camera/avfcameraservice_p.h b/src/multimedia/platform/darwin/camera/avfcameraservice_p.h
index a84a5bed2..0cc31bc88 100644
--- a/src/multimedia/platform/darwin/camera/avfcameraservice_p.h
+++ b/src/multimedia/platform/darwin/camera/avfcameraservice_p.h
@@ -74,13 +74,14 @@ public:
AVFCameraService();
~AVFCameraService();
- QObject *requestControl(const char *name);
- void releaseControl(QObject *control);
+ QCameraControl *cameraControl() override;
+ QCameraImageCaptureControl *imageCaptureControl() override;
+ QMediaRecorderControl *mediaRecorderControl() override;
AVFCameraSession *session() const { return m_session; }
- AVFCameraControl *cameraControl() const { return m_cameraControl; }
+ AVFCameraControl *avfCameraControl() const { return m_cameraControl; }
QMediaRecorderControl *recorderControl() const { return m_recorderControl; }
- AVFImageCaptureControl *imageCaptureControl() const { return m_imageCaptureControl; }
+ AVFImageCaptureControl *avfImageCaptureControl() const { return m_imageCaptureControl; }
AVFCameraFocusControl *cameraFocusControl() const { return m_cameraFocusControl; }
AVFCameraExposureControl *cameraExposureControl() const { return m_cameraExposureControl; }
diff --git a/src/multimedia/platform/darwin/camera/avfcamerasession.mm b/src/multimedia/platform/darwin/camera/avfcamerasession.mm
index f6772c5d1..fa062a414 100644
--- a/src/multimedia/platform/darwin/camera/avfcamerasession.mm
+++ b/src/multimedia/platform/darwin/camera/avfcamerasession.mm
@@ -352,7 +352,7 @@ void AVFCameraSession::attachVideoInputDevice()
bool AVFCameraSession::applyImageEncoderSettings()
{
- if (AVFImageCaptureControl *control = m_service->imageCaptureControl())
+ if (AVFImageCaptureControl *control = m_service->avfImageCaptureControl())
return control->applySettings();
return false;
diff --git a/src/multimedia/platform/darwin/camera/avfimagecapturecontrol.mm b/src/multimedia/platform/darwin/camera/avfimagecapturecontrol.mm
index 27394a2f1..8b0bad60b 100644
--- a/src/multimedia/platform/darwin/camera/avfimagecapturecontrol.mm
+++ b/src/multimedia/platform/darwin/camera/avfimagecapturecontrol.mm
@@ -56,7 +56,7 @@ AVFImageCaptureControl::AVFImageCaptureControl(AVFCameraService *service, QObjec
: QCameraImageCaptureControl(parent)
, m_service(service)
, m_session(service->session())
- , m_cameraControl(service->cameraControl())
+ , m_cameraControl(service->avfCameraControl())
, m_ready(false)
, m_lastCaptureId(0)
, m_videoConnection(nil)
@@ -326,7 +326,7 @@ bool AVFImageCaptureControl::applySettings()
return false;
if (!m_service->imageCaptureControl()
- || !m_service->imageCaptureControl()->stillImageOutput()) {
+ || !m_service->avfImageCaptureControl()->stillImageOutput()) {
qDebugCamera() << Q_FUNC_INFO << "no still image output";
return false;
}
diff --git a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm
index 55938780d..b96e92edd 100644
--- a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm
+++ b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm
@@ -127,8 +127,7 @@ QT_USE_NAMESPACE
AVFMediaRecorderControl::AVFMediaRecorderControl(AVFCameraService *service, QObject *parent)
: QMediaRecorderControl(parent)
- , m_service(service)
- , m_cameraControl(service->cameraControl())
+ , m_cameraControl(service->avfCameraControl())
, m_session(service->session())
, m_connected(false)
, m_state(QMediaRecorder::StoppedState)
diff --git a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_p.h b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_p.h
index 02a8581d2..90cdf402e 100644
--- a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_p.h
+++ b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_p.h
@@ -109,7 +109,6 @@ private Q_SLOTS:
void updateStatus();
private:
- AVFCameraService *m_service;
AVFCameraControl *m_cameraControl;
AVFCameraSession *m_session;
AVCaptureDevice *m_audioCaptureDevice = nullptr;
diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercaptureservice.cpp b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercaptureservice.cpp
index cf381a141..deddd59c1 100644
--- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercaptureservice.cpp
+++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercaptureservice.cpp
@@ -57,16 +57,6 @@ QGstreamerCaptureService::QGstreamerCaptureService(QMediaRecorder::CaptureMode m
} else {
m_captureSession = new QGstreamerCaptureSession(QGstreamerCaptureSession::AudioAndVideo, this);
m_cameraControl = new QGstreamerCameraControl(m_captureSession);
-
-// m_videoRenderer = new QGstreamerVideoRenderer(this);
-
-// m_videoWindow = new QGstreamerVideoWindow(this);
-// // If the GStreamer video sink is not available, don't provide the video window control since
-// // it won't work anyway.
-// if (!m_videoWindow->videoSink()) {
-// delete m_videoWindow;
-// m_videoWindow = 0;
-// }
}
}
@@ -74,25 +64,19 @@ QGstreamerCaptureService::~QGstreamerCaptureService()
{
}
-QObject *QGstreamerCaptureService::requestControl(const char *name)
+QCameraControl *QGstreamerCaptureService::cameraControl()
{
- if (!m_captureSession)
- return 0;
-
- if (qstrcmp(name,QMediaRecorderControl_iid) == 0)
- return m_captureSession->recorderControl();
-
- if (qstrcmp(name,QCameraControl_iid) == 0)
- return m_cameraControl;
-
- if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0)
- return m_captureSession->imageCaptureControl();
+ return m_cameraControl;
+}
- return 0;
+QCameraImageCaptureControl *QGstreamerCaptureService::imageCaptureControl()
+{
+ return m_captureSession->imageCaptureControl();
}
-void QGstreamerCaptureService::releaseControl(QObject *)
+QMediaRecorderControl *QGstreamerCaptureService::mediaRecorderControl()
{
+ return m_captureSession->recorderControl();
}
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercaptureservice_p.h b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercaptureservice_p.h
index 238716681..955fab52c 100644
--- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercaptureservice_p.h
+++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercaptureservice_p.h
@@ -74,19 +74,13 @@ public:
QGstreamerCaptureService(QMediaRecorder::CaptureMode mode);
virtual ~QGstreamerCaptureService();
- QObject *requestControl(const char *name) override;
- void releaseControl(QObject *) override;
+ QCameraControl *cameraControl() override;
+ QCameraImageCaptureControl *imageCaptureControl() override;
+ QMediaRecorderControl *mediaRecorderControl() override;
private:
- void setAudioPreview(GstElement *);
-
QGstreamerCaptureSession *m_captureSession = nullptr;
QGstreamerCameraControl *m_cameraControl = nullptr;
-
- QObject *m_videoOutput = nullptr;
-
- QGstreamerVideoRenderer *m_videoRenderer = nullptr;
- QGstreamerVideoWindow *m_videoWindow = nullptr;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qmediaplatformcaptureinterface.cpp b/src/multimedia/platform/qmediaplatformcaptureinterface.cpp
index e05d33cde..3feb8482e 100644
--- a/src/multimedia/platform/qmediaplatformcaptureinterface.cpp
+++ b/src/multimedia/platform/qmediaplatformcaptureinterface.cpp
@@ -42,12 +42,6 @@
QT_BEGIN_NAMESPACE
-QMediaPlatformCaptureInterface::QMediaPlatformCaptureInterface()
- : QMediaService(nullptr)
-{
-
-}
-
QMediaPlatformCaptureInterface::~QMediaPlatformCaptureInterface()
{
diff --git a/src/multimedia/platform/qmediaplatformcaptureinterface_p.h b/src/multimedia/platform/qmediaplatformcaptureinterface_p.h
index 4cd73e255..570f83da1 100644
--- a/src/multimedia/platform/qmediaplatformcaptureinterface_p.h
+++ b/src/multimedia/platform/qmediaplatformcaptureinterface_p.h
@@ -54,12 +54,19 @@
#include <qmediaservice.h>
QT_BEGIN_NAMESPACE
+class QCameraControl;
+class QCameraImageCaptureControl;
+class QMediaRecorderControl;
-class Q_MULTIMEDIA_EXPORT QMediaPlatformCaptureInterface : public QMediaService
+class Q_MULTIMEDIA_EXPORT QMediaPlatformCaptureInterface : public QObject
{
public:
- QMediaPlatformCaptureInterface();
+ QMediaPlatformCaptureInterface() = default;
virtual ~QMediaPlatformCaptureInterface();
+
+ virtual QCameraControl *cameraControl() = 0;
+ virtual QCameraImageCaptureControl *imageCaptureControl() = 0;
+ virtual QMediaRecorderControl *mediaRecorderControl() = 0;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qnx/camera/bbcameraservice.cpp b/src/multimedia/platform/qnx/camera/bbcameraservice.cpp
index 4343bb5ad..d8e752f66 100644
--- a/src/multimedia/platform/qnx/camera/bbcameraservice.cpp
+++ b/src/multimedia/platform/qnx/camera/bbcameraservice.cpp
@@ -73,35 +73,19 @@ BbCameraService::~BbCameraService()
{
}
-QMediaControl* BbCameraService::requestControl(const char *name)
+QCameraControl *BbCameraService::cameraControl()
{
- if (qstrcmp(name, QAudioEncoderSettingsControl_iid) == 0)
- return m_cameraAudioEncoderSettingsControl;
- else if (qstrcmp(name, QCameraControl_iid) == 0)
- return m_cameraControl;
- else if (qstrcmp(name, QCameraExposureControl_iid) == 0)
- return m_cameraExposureControl;
- else if (qstrcmp(name, QCameraFocusControl_iid) == 0)
- return m_cameraFocusControl;
- else if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0)
- return m_cameraImageCaptureControl;
- else if (qstrcmp(name, QCameraImageProcessingControl_iid) == 0)
- return m_cameraImageProcessingControl;
- else if (qstrcmp(name, QMediaRecorderControl_iid) == 0)
- return m_cameraMediaRecorderControl;
- else if (qstrcmp(name, QVideoEncoderSettingsControl_iid) == 0)
- return m_cameraVideoEncoderSettingsControl;
- else if (qstrcmp(name, QVideoRendererControl_iid) == 0)
- return m_videoRendererControl;
-
- return 0;
+ return m_cameraControl;
}
-void BbCameraService::releaseControl(QMediaControl *control)
+QCameraImageCaptureControl *BbCameraService::imageCaptureControl()
{
- Q_UNUSED(control);
+ return m_cameraImageCaptureControl;
+}
- // Implemented as a singleton, so we do nothing.
+QMediaRecorderControl *BbCameraService::mediaRecorderControl()
+{
+ return m_cameraMediaRecorderControl;
}
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qnx/camera/bbcameraservice_p.h b/src/multimedia/platform/qnx/camera/bbcameraservice_p.h
index 0ecfb98c8..70d6c37a4 100644
--- a/src/multimedia/platform/qnx/camera/bbcameraservice_p.h
+++ b/src/multimedia/platform/qnx/camera/bbcameraservice_p.h
@@ -52,7 +52,7 @@
#include <QObject>
-#include <qmediaservice.h>
+#include <private/qmediaplatformcaptureinterface_p.h>
QT_BEGIN_NAMESPACE
@@ -67,7 +67,7 @@ class BbCameraSession;
class BbCameraVideoEncoderSettingsControl;
class BbVideoRendererControl;
-class BbCameraService : public QMediaService
+class BbCameraService : public QMediaPlatformCaptureInterface
{
Q_OBJECT
diff --git a/src/multimedia/recording/qmediarecorder.cpp b/src/multimedia/recording/qmediarecorder.cpp
index 5190afa8d..031d9a765 100644
--- a/src/multimedia/recording/qmediarecorder.cpp
+++ b/src/multimedia/recording/qmediarecorder.cpp
@@ -167,7 +167,7 @@ QMediaRecorder::QMediaRecorder(QMediaRecorder::CaptureMode mode, QObject *parent
setCamera(new QCamera(this));
} else {
auto *captureIface = QMediaPlatformIntegration::instance()->createCaptureInterface(mode);
- d->control = qobject_cast<QMediaRecorderControl*>(captureIface->requestControl(QMediaRecorderControl_iid));
+ d->control = captureIface->mediaRecorderControl();
}
}
@@ -269,7 +269,7 @@ bool QMediaRecorder::setCamera(QCamera *object)
d->notifyTimer->setInterval(notifyInterval());
connect(this, SIGNAL(notifyIntervalChanged(int)), SLOT(_q_updateNotifyInterval(int)));
- d->control = qobject_cast<QMediaRecorderControl*>(service->requestControl(QMediaRecorderControl_iid));
+ d->control = service->mediaRecorderControl();
Q_ASSERT(d->control);
connect(d->control, SIGNAL(stateChanged(QMediaRecorder::State)),
diff --git a/tests/auto/unit/mockbackend/CMakeLists.txt b/tests/auto/unit/mockbackend/CMakeLists.txt
index 5b43b75a9..a8fd501d5 100644
--- a/tests/auto/unit/mockbackend/CMakeLists.txt
+++ b/tests/auto/unit/mockbackend/CMakeLists.txt
@@ -14,7 +14,6 @@ target_link_libraries(QtMultimediaMockBackend INTERFACE
)
target_sources(QtMultimediaMockBackend INTERFACE
mockaudiodecodercontrol.h
- mockaudiodecoderservice.h
mockcameracontrol.h
mockcameraexposurecontrol.h
mockcamerafocuscontrol.h
diff --git a/tests/auto/unit/mockbackend/audio.pri b/tests/auto/unit/mockbackend/audio.pri
index b5349d5eb..49105a062 100644
--- a/tests/auto/unit/mockbackend/audio.pri
+++ b/tests/auto/unit/mockbackend/audio.pri
@@ -1,4 +1,3 @@
INCLUDEPATH += $$PWD
HEADERS *= \
- $$PWD/mockaudiodecoderservice.h \
$$PWD/mockaudiodecodercontrol.h
diff --git a/tests/auto/unit/mockbackend/mockaudiodecoderservice.h b/tests/auto/unit/mockbackend/mockaudiodecoderservice.h
deleted file mode 100644
index 85da10d3a..000000000
--- a/tests/auto/unit/mockbackend/mockaudiodecoderservice.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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 General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** 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-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MOCKAUDIODECODERSERVICE_H
-#define MOCKAUDIODECODERSERVICE_H
-
-#include "qmediaservice.h"
-
-#include "mockaudiodecodercontrol.h"
-
-class MockAudioDecoderService : public QMediaService
-{
- Q_OBJECT
-
-public:
- MockAudioDecoderService(QObject *parent = 0)
- : QMediaService(parent)
- {
- mockControl = new MockAudioDecoderControl(this);
- validControl = mockControl;
- }
-
- ~MockAudioDecoderService()
- {
- delete mockControl;
- }
-
- QObject *requestControl(const char *iid)
- {
- if (qstrcmp(iid, QAudioDecoderControl_iid) == 0)
- return mockControl;
- return 0;
- }
-
- void releaseControl(QObject *control)
- {
- Q_UNUSED(control);
- }
-
- void setControlNull()
- {
- mockControl = 0;
- }
-
- void setControlValid()
- {
- mockControl = validControl;
- }
-
- MockAudioDecoderControl *mockControl;
- MockAudioDecoderControl *validControl;
-};
-
-
-
-#endif // MOCKAUDIODECODERSERVICE_H
diff --git a/tests/auto/unit/mockbackend/mockmediarecorderservice.h b/tests/auto/unit/mockbackend/mockmediarecorderservice.h
index 3ffa4a9c1..540cc1b14 100644
--- a/tests/auto/unit/mockbackend/mockmediarecorderservice.h
+++ b/tests/auto/unit/mockbackend/mockmediarecorderservice.h
@@ -53,36 +53,14 @@ public:
mockCaptureControl = new MockCaptureControl(mockCameraControl, this);
mockImageProcessingControl = new MockImageProcessingControl(this);
}
-
- QObject *requestControl(const char *name)
+ ~MockMediaRecorderService()
{
- if (!hasControls)
- return nullptr;
-
- if (qstrcmp(name,QMediaRecorderControl_iid) == 0)
- return mockControl;
-
- if (qstrcmp(name, QCameraControl_iid) == 0)
- return mockCameraControl;
-
- if (simpleCamera)
- return nullptr;
-
- if (qstrcmp(name, QCameraExposureControl_iid) == 0)
- return mockExposureControl;
- if (qstrcmp(name, QCameraFocusControl_iid) == 0)
- return mockFocusControl;
- if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0)
- return mockCaptureControl;
- if (qstrcmp(name, QCameraImageProcessingControl_iid) == 0)
- return mockImageProcessingControl;
-
- return nullptr;
}
- void releaseControl(QObject *)
- {
- }
+ QCameraControl *cameraControl() override { return hasControls ? mockCameraControl : nullptr; }
+ QCameraImageCaptureControl *imageCaptureControl() override { return hasControls ? mockCaptureControl : nullptr; }
+ QMediaRecorderControl *mediaRecorderControl() override { return hasControls ? mockControl : nullptr; }
+
static bool simpleCamera;
diff --git a/tests/auto/unit/multimedia/qaudiodecoder/tst_qaudiodecoder.cpp b/tests/auto/unit/multimedia/qaudiodecoder/tst_qaudiodecoder.cpp
index 9601d129a..daac608e5 100644
--- a/tests/auto/unit/multimedia/qaudiodecoder/tst_qaudiodecoder.cpp
+++ b/tests/auto/unit/multimedia/qaudiodecoder/tst_qaudiodecoder.cpp
@@ -31,7 +31,7 @@
#include <QtTest/QtTest>
#include "qaudiodecoder.h"
-#include "mockaudiodecoderservice.h"
+#include "mockaudiodecodercontrol.h"
#include "qmockintegration_p.h"
class tst_QAudioDecoder : public QObject