summaryrefslogtreecommitdiffstats
path: root/src/multimedia/camera/qcamera.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/camera/qcamera.cpp')
-rw-r--r--src/multimedia/camera/qcamera.cpp41
1 files changed, 19 insertions, 22 deletions
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