summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-02-10 15:09:49 +0100
committerLars Knoll <lars.knoll@qt.io>2021-02-12 15:38:24 +0000
commit3c59ba2b3ce96f578b2d677ecc1fbf7da0b2e27f (patch)
tree8bf1df70cb5e264a5674d0eb513841d8dec12251
parent1920146be1193a1136bd279f8036778e8c9c4083 (diff)
Remove camera locking API
QCamera::lock()/unlock() is something that's not needed these days anymore. cameras will automatically focus anyway, there's no real reason to lock the focus (or other properties) to some specific value in 99% of the cases. Plus it wasn't supported on Linux or macOS/iOS anyway. Change-Id: I437d29cbb768da3ece42eea8d753eeafa0c534ae Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r--examples/multimedia/declarative-camera/CMakeLists.txt1
-rw-r--r--examples/multimedia/declarative-camera/FocusButton.qml72
-rw-r--r--examples/multimedia/declarative-camera/PhotoCaptureControls.qml5
-rw-r--r--examples/multimedia/declarative-camera/VideoCaptureControls.qml5
-rw-r--r--examples/multimedia/declarative-camera/declarative-camera.qrc1
-rw-r--r--examples/multimediawidgets/camera/camera.cpp55
-rw-r--r--examples/multimediawidgets/camera/camera.h2
-rw-r--r--examples/multimediawidgets/camera/camera.ui239
-rw-r--r--src/imports/multimedia/plugins.qmltypes66
-rw-r--r--src/imports/multimedia/qdeclarativecamera.cpp71
-rw-r--r--src/imports/multimedia/qdeclarativecamera_p.h16
-rw-r--r--src/multimedia/camera/qcamera.cpp293
-rw-r--r--src/multimedia/camera/qcamera.h62
-rw-r--r--src/multimedia/camera/qcamera_p.h9
-rw-r--r--src/multimedia/controls/qcameracontrol.cpp30
-rw-r--r--src/multimedia/controls/qcameracontrol.h8
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp190
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h21
-rw-r--r--src/multimedia/platform/darwin/camera/avfcameracontrol.mm20
-rw-r--r--src/multimedia/platform/darwin/camera/avfcameracontrol_p.h7
-rw-r--r--src/multimedia/platform/gstreamer/camerabin/camerabincontrol.cpp178
-rw-r--r--src/multimedia/platform/gstreamer/camerabin/camerabincontrol_p.h21
-rw-r--r--src/multimedia/platform/gstreamer/camerabin/camerabinfocus.cpp82
-rw-r--r--src/multimedia/platform/gstreamer/camerabin/camerabinfocus_p.h12
-rw-r--r--src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol_p.h10
-rw-r--r--src/multimedia/platform/qnx/camera/bbcameracontrol.cpp194
-rw-r--r--src/multimedia/platform/qnx/camera/bbcameracontrol_p.h13
-rw-r--r--tests/auto/unit/mockbackend/mockcameracontrol.h82
-rw-r--r--tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp318
29 files changed, 109 insertions, 1974 deletions
diff --git a/examples/multimedia/declarative-camera/CMakeLists.txt b/examples/multimedia/declarative-camera/CMakeLists.txt
index 8fc0eeded..e978f7f77 100644
--- a/examples/multimedia/declarative-camera/CMakeLists.txt
+++ b/examples/multimedia/declarative-camera/CMakeLists.txt
@@ -49,7 +49,6 @@ set(declarative-camera_resource_files
"CameraListPopup.qml"
"CameraPropertyButton.qml"
"CameraPropertyPopup.qml"
- "FocusButton.qml"
"PhotoCaptureControls.qml"
"PhotoPreview.qml"
"Popup.qml"
diff --git a/examples/multimedia/declarative-camera/FocusButton.qml b/examples/multimedia/declarative-camera/FocusButton.qml
deleted file mode 100644
index fab8aa11e..000000000
--- a/examples/multimedia/declarative-camera/FocusButton.qml
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** 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.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtMultimedia 5.0
-
-CameraButton {
- property Camera camera
-
- onClicked: {
- if (camera.lockStatus == Camera.Unlocked)
- camera.searchAndLock();
- else
- camera.unlock();
- }
-
- text: {
- if (camera.lockStatus == Camera.Unlocked)
- "Focus";
- else if (camera.lockStatus == Camera.Searching)
- "Focusing"
- else
- "Unlock"
- }
-}
diff --git a/examples/multimedia/declarative-camera/PhotoCaptureControls.qml b/examples/multimedia/declarative-camera/PhotoCaptureControls.qml
index 2845d151a..379ca1f66 100644
--- a/examples/multimedia/declarative-camera/PhotoCaptureControls.qml
+++ b/examples/multimedia/declarative-camera/PhotoCaptureControls.qml
@@ -79,11 +79,6 @@ FocusScope {
id: buttonsColumn
spacing: 8
- FocusButton {
- camera: captureControls.camera
- visible: camera.cameraStatus == Camera.ActiveStatus && camera.focus.isFocusModeSupported(Camera.FocusAuto)
- }
-
CameraButton {
text: "Capture"
visible: camera.imageCapture.ready
diff --git a/examples/multimedia/declarative-camera/VideoCaptureControls.qml b/examples/multimedia/declarative-camera/VideoCaptureControls.qml
index 9aadcdf95..74dc8bc6b 100644
--- a/examples/multimedia/declarative-camera/VideoCaptureControls.qml
+++ b/examples/multimedia/declarative-camera/VideoCaptureControls.qml
@@ -79,11 +79,6 @@ FocusScope {
id: buttonsColumn
spacing: 8
- FocusButton {
- camera: captureControls.camera
- visible: camera.cameraStatus == Camera.ActiveStatus && camera.focus.isFocusModeSupported(Camera.FocusAuto)
- }
-
CameraButton {
text: "Record"
visible: camera.videoRecorder.recorderStatus == CameraRecorder.LoadedStatus
diff --git a/examples/multimedia/declarative-camera/declarative-camera.qrc b/examples/multimedia/declarative-camera/declarative-camera.qrc
index 6d654d59f..e4f6ee981 100644
--- a/examples/multimedia/declarative-camera/declarative-camera.qrc
+++ b/examples/multimedia/declarative-camera/declarative-camera.qrc
@@ -4,7 +4,6 @@
<file>ZoomControl.qml</file>
<file>VideoCaptureControls.qml</file>
<file>VideoPreview.qml</file>
- <file>FocusButton.qml</file>
<file>PhotoCaptureControls.qml</file>
<file>declarative-camera.qml</file>
<file>Popup.qml</file>
diff --git a/examples/multimediawidgets/camera/camera.cpp b/examples/multimediawidgets/camera/camera.cpp
index f5d507d46..33e596768 100644
--- a/examples/multimediawidgets/camera/camera.cpp
+++ b/examples/multimediawidgets/camera/camera.cpp
@@ -123,7 +123,6 @@ void Camera::setCamera(const QCameraInfo &cameraInfo)
m_camera->setViewfinder(ui->viewfinder);
updateCameraState(m_camera->state());
- updateLockStatus(m_camera->lockStatus(), QCamera::UserRequest);
updateRecorderState(m_mediaRecorder->state());
connect(m_imageCapture, &QCameraImageCapture::readyForCaptureChanged, this, &Camera::readyForCapture);
@@ -132,9 +131,6 @@ void Camera::setCamera(const QCameraInfo &cameraInfo)
connect(m_imageCapture, QOverload<int, QCameraImageCapture::Error, const QString &>::of(&QCameraImageCapture::error),
this, &Camera::displayCaptureError);
- connect(m_camera.data(), QOverload<QCamera::LockStatus, QCamera::LockChangeReason>::of(&QCamera::lockStatusChanged),
- this, &Camera::updateLockStatus);
-
ui->captureWidget->setTabEnabled(0, (m_camera->isCaptureModeSupported(QCamera::CaptureStillImage)));
ui->captureWidget->setTabEnabled(1, (m_camera->isCaptureModeSupported(QCamera::CaptureVideo)));
@@ -150,7 +146,6 @@ void Camera::keyPressEvent(QKeyEvent * event)
switch (event->key()) {
case Qt::Key_CameraFocus:
displayViewfinder();
- m_camera->searchAndLock();
event->accept();
break;
case Qt::Key_Camera:
@@ -171,16 +166,7 @@ void Camera::keyPressEvent(QKeyEvent * event)
void Camera::keyReleaseEvent(QKeyEvent *event)
{
- if (event->isAutoRepeat())
- return;
-
- switch (event->key()) {
- case Qt::Key_CameraFocus:
- m_camera->unlock();
- break;
- default:
- QMainWindow::keyReleaseEvent(event);
- }
+ QMainWindow::keyReleaseEvent(event);
}
void Camera::updateRecordTime()
@@ -268,45 +254,6 @@ void Camera::setMuted(bool muted)
m_mediaRecorder->setMuted(muted);
}
-void Camera::toggleLock()
-{
- switch (m_camera->lockStatus()) {
- case QCamera::Searching:
- case QCamera::Locked:
- m_camera->unlock();
- break;
- case QCamera::Unlocked:
- m_camera->searchAndLock();
- }
-}
-
-void Camera::updateLockStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason)
-{
- QColor indicationColor = Qt::black;
-
- switch (status) {
- case QCamera::Searching:
- indicationColor = Qt::yellow;
- ui->statusbar->showMessage(tr("Focusing..."));
- ui->lockButton->setText(tr("Focusing..."));
- break;
- case QCamera::Locked:
- indicationColor = Qt::darkGreen;
- ui->lockButton->setText(tr("Unlock"));
- ui->statusbar->showMessage(tr("Focused"), 2000);
- break;
- case QCamera::Unlocked:
- indicationColor = reason == QCamera::LockFailed ? Qt::red : Qt::black;
- ui->lockButton->setText(tr("Focus"));
- if (reason == QCamera::LockFailed)
- ui->statusbar->showMessage(tr("Focus Failed"), 2000);
- }
-
- QPalette palette = ui->lockButton->palette();
- palette.setColor(QPalette::ButtonText, indicationColor);
- ui->lockButton->setPalette(palette);
-}
-
void Camera::takeImage()
{
m_isCapturingImage = true;
diff --git a/examples/multimediawidgets/camera/camera.h b/examples/multimediawidgets/camera/camera.h
index a59aad28b..5ccac9165 100644
--- a/examples/multimediawidgets/camera/camera.h
+++ b/examples/multimediawidgets/camera/camera.h
@@ -81,7 +81,6 @@ private slots:
void stop();
void setMuted(bool);
- void toggleLock();
void takeImage();
void displayCaptureError(int, QCameraImageCapture::Error, const QString &errorString);
@@ -102,7 +101,6 @@ private slots:
void updateRecordTime();
void processCapturedImage(int requestId, const QImage &img);
- void updateLockStatus(QCamera::LockStatus, QCamera::LockChangeReason);
void displayViewfinder();
void displayCapturedImage();
diff --git a/examples/multimediawidgets/camera/camera.ui b/examples/multimediawidgets/camera/camera.ui
index 3e660527b..ba82ba623 100644
--- a/examples/multimediawidgets/camera/camera.ui
+++ b/examples/multimediawidgets/camera/camera.ui
@@ -15,118 +15,7 @@
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout_3">
- <item row="0" column="0" rowspan="3">
- <widget class="QStackedWidget" name="stackedWidget">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>1</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="palette">
- <palette>
- <active>
- <colorrole role="Base">
- <brush brushstyle="SolidPattern">
- <color alpha="255">
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- </brush>
- </colorrole>
- <colorrole role="Window">
- <brush brushstyle="SolidPattern">
- <color alpha="255">
- <red>145</red>
- <green>145</green>
- <blue>145</blue>
- </color>
- </brush>
- </colorrole>
- </active>
- <inactive>
- <colorrole role="Base">
- <brush brushstyle="SolidPattern">
- <color alpha="255">
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- </brush>
- </colorrole>
- <colorrole role="Window">
- <brush brushstyle="SolidPattern">
- <color alpha="255">
- <red>145</red>
- <green>145</green>
- <blue>145</blue>
- </color>
- </brush>
- </colorrole>
- </inactive>
- <disabled>
- <colorrole role="Base">
- <brush brushstyle="SolidPattern">
- <color alpha="255">
- <red>145</red>
- <green>145</green>
- <blue>145</blue>
- </color>
- </brush>
- </colorrole>
- <colorrole role="Window">
- <brush brushstyle="SolidPattern">
- <color alpha="255">
- <red>145</red>
- <green>145</green>
- <blue>145</blue>
- </color>
- </brush>
- </colorrole>
- </disabled>
- </palette>
- </property>
- <property name="currentIndex">
- <number>0</number>
- </property>
- <widget class="QWidget" name="viewfinderPage">
- <layout class="QGridLayout" name="gridLayout_5">
- <item row="0" column="0">
- <widget class="QVideoWidget" name="viewfinder" native="true"/>
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="previewPage">
- <layout class="QGridLayout" name="gridLayout_4">
- <item row="0" column="0">
- <widget class="QLabel" name="lastImagePreviewLabel">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="frameShape">
- <enum>QFrame::Box</enum>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </widget>
- </item>
<item row="1" column="1" colspan="2">
- <widget class="QPushButton" name="lockButton">
- <property name="text">
- <string>Focus</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1" colspan="2">
<widget class="QTabWidget" name="captureWidget">
<property name="currentIndex">
<number>0</number>
@@ -145,7 +34,7 @@
<string>Capture Photo</string>
</property>
<property name="icon">
- <iconset resource="camera.qrc">
+ <iconset>
<normaloff>:/images/shutter.svg</normaloff>:/images/shutter.svg</iconset>
</property>
</widget>
@@ -244,6 +133,110 @@
</widget>
</widget>
</item>
+ <item row="0" column="0" rowspan="2">
+ <widget class="QStackedWidget" name="stackedWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="palette">
+ <palette>
+ <active>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </active>
+ <inactive>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </inactive>
+ <disabled>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </disabled>
+ </palette>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="viewfinderPage">
+ <layout class="QGridLayout" name="gridLayout_5">
+ <item row="0" column="0">
+ <widget class="QVideoWidget" name="viewfinder" native="true"/>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="previewPage">
+ <layout class="QGridLayout" name="gridLayout_4">
+ <item row="0" column="0">
+ <widget class="QLabel" name="lastImagePreviewLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
@@ -252,7 +245,7 @@
<x>0</x>
<y>0</y>
<width>668</width>
- <height>21</height>
+ <height>28</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@@ -304,9 +297,7 @@
<container>1</container>
</customwidget>
</customwidgets>
- <resources>
- <include location="camera.qrc"/>
- </resources>
+ <resources/>
<connections>
<connection>
<sender>recordButton</sender>
@@ -389,22 +380,6 @@
</hints>
</connection>
<connection>
- <sender>lockButton</sender>
- <signal>clicked()</signal>
- <receiver>Camera</receiver>
- <slot>toggleLock()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>658</x>
- <y>75</y>
- </hint>
- <hint type="destinationlabel">
- <x>453</x>
- <y>119</y>
- </hint>
- </hints>
- </connection>
- <connection>
<sender>muteButton</sender>
<signal>toggled(bool)</signal>
<receiver>Camera</receiver>
diff --git a/src/imports/multimedia/plugins.qmltypes b/src/imports/multimedia/plugins.qmltypes
index 2450865d5..4dc0f7c90 100644
--- a/src/imports/multimedia/plugins.qmltypes
+++ b/src/imports/multimedia/plugins.qmltypes
@@ -346,33 +346,6 @@ Module {
}
}
Enum {
- name: "LockStatus"
- values: {
- "Unlocked": 0,
- "Searching": 1,
- "Locked": 2
- }
- }
- Enum {
- name: "LockChangeReason"
- values: {
- "UserRequest": 0,
- "LockAcquired": 1,
- "LockFailed": 2,
- "LockLost": 3,
- "LockTemporaryLost": 4
- }
- }
- Enum {
- name: "LockType"
- values: {
- "NoLock": 0,
- "LockExposure": 1,
- "LockWhiteBalance": 2,
- "LockFocus": 4
- }
- }
- Enum {
name: "Position"
values: {
"UnspecifiedPosition": 0,
@@ -383,7 +356,6 @@ Module {
Property { name: "state"; type: "QCamera::State"; isReadonly: true }
Property { name: "status"; type: "QCamera::Status"; isReadonly: true }
Property { name: "captureMode"; type: "QCamera::CaptureModes" }
- Property { name: "lockStatus"; type: "QCamera::LockStatus"; isReadonly: true }
Signal {
name: "stateChanged"
Parameter { name: "state"; type: "QCamera::State" }
@@ -396,19 +368,6 @@ Module {
name: "statusChanged"
Parameter { name: "status"; type: "QCamera::Status" }
}
- Signal { name: "locked" }
- Signal { name: "lockFailed" }
- Signal {
- name: "lockStatusChanged"
- Parameter { name: "status"; type: "QCamera::LockStatus" }
- Parameter { name: "reason"; type: "QCamera::LockChangeReason" }
- }
- Signal {
- name: "lockStatusChanged"
- Parameter { name: "lock"; type: "QCamera::LockType" }
- Parameter { name: "status"; type: "QCamera::LockStatus" }
- Parameter { name: "reason"; type: "QCamera::LockChangeReason" }
- }
Signal {
name: "error"
Parameter { type: "QCamera::Error" }
@@ -421,16 +380,6 @@ Module {
Method { name: "unload" }
Method { name: "start" }
Method { name: "stop" }
- Method { name: "searchAndLock" }
- Method { name: "unlock" }
- Method {
- name: "searchAndLock"
- Parameter { name: "locks"; type: "QCamera::LockTypes" }
- }
- Method {
- name: "unlock"
- Parameter { name: "locks"; type: "QCamera::LockTypes" }
- }
}
Component {
name: "QDeclarativeAudio"
@@ -612,14 +561,6 @@ Module {
}
}
Enum {
- name: "LockStatus"
- values: {
- "Unlocked": 0,
- "Searching": 1,
- "Locked": 2
- }
- }
- Enum {
name: "Error"
values: {
"NoError": 0,
@@ -712,7 +653,6 @@ Module {
Property { name: "captureMode"; type: "CaptureMode" }
Property { name: "cameraState"; type: "State" }
Property { name: "cameraStatus"; type: "Status"; isReadonly: true }
- Property { name: "lockStatus"; type: "LockStatus"; isReadonly: true }
Property { name: "errorCode"; type: "Error"; isReadonly: true }
Property { name: "errorString"; type: "string"; isReadonly: true }
Property { name: "availability"; type: "Availability"; isReadonly: true }
@@ -801,12 +741,6 @@ Module {
name: "setCameraState"
Parameter { name: "state"; type: "State" }
}
- Method { name: "searchAndLock" }
- Method { name: "unlock" }
- Method {
- name: "setOpticalZoom"
- Parameter { type: "double" }
- }
Method {
name: "setDigitalZoom"
Parameter { type: "double" }
diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp
index d2af7ab7d..d47ec4471 100644
--- a/src/imports/multimedia/qdeclarativecamera.cpp
+++ b/src/imports/multimedia/qdeclarativecamera.cpp
@@ -186,8 +186,6 @@ QDeclarativeCamera::QDeclarativeCamera(QObject *parent) :
connect(m_camera, SIGNAL(captureModeChanged(QCamera::CaptureModes)),
this, SIGNAL(captureModeChanged()));
- connect(m_camera, SIGNAL(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)),
- this, SIGNAL(lockStatusChanged()));
connect(m_camera, &QCamera::stateChanged, this, &QDeclarativeCamera::_q_updateState);
connect(m_camera, SIGNAL(statusChanged(QCamera::Status)), this, SIGNAL(cameraStatusChanged()));
connect(m_camera, SIGNAL(errorOccurred(QCamera::Error)), this, SLOT(_q_errorOccurred(QCamera::Error)));
@@ -561,66 +559,6 @@ void QDeclarativeCamera::stop()
setCameraState(QDeclarativeCamera::LoadedState);
}
-
-/*!
- \qmlproperty enumeration QtMultimedia::Camera::lockStatus
-
- This property holds the status of all the requested camera locks.
-
- \value Camera.Unlocked
- The application is not interested in camera settings value.
- The camera may keep this parameter without changes, which is common
- with camera focus, or adjust exposure and white balance constantly
- to keep the viewfinder image nice.
- \value Camera.Searching
- The application has requested the camera focus, exposure, or white
- balance lock with searchAndLock(). This state indicates the camera
- is focusing or calculating exposure and white balance.
- \value Camera.Locked
- The camera focus, exposure, or white balance is locked.
- The camera is ready to capture, and the application may check the
- exposure parameters.
- The locked state usually means the requested parameter stays the
- same, except in cases where the parameter is requested to be updated
- constantly. For example, in continuous focusing mode, the focus is
- considered locked as long as the object is in focus, even while the
- actual focusing distance may be constantly changing.
-*/
-/*!
- \property QDeclarativeCamera::lockStatus
-
- This property holds the status of all the requested camera locks.
-*/
-QDeclarativeCamera::LockStatus QDeclarativeCamera::lockStatus() const
-{
- return QDeclarativeCamera::LockStatus(m_camera->lockStatus());
-}
-
-/*!
- \qmlmethod QtMultimedia::Camera::searchAndLock()
-
- Start focusing, exposure and white balance calculation.
-
- This is appropriate to call when the camera focus button is pressed
- (or on a camera capture button half-press). If the camera supports
- autofocusing, information on the focus zones is available through
- the \l {CameraFocus}{focus} property.
-*/
-void QDeclarativeCamera::searchAndLock()
-{
- m_camera->searchAndLock();
-}
-
-/*!
- \qmlmethod QtMultimedia::Camera::unlock()
-
- Unlock focus, exposure and white balance locks.
- */
-void QDeclarativeCamera::unlock()
-{
- m_camera->unlock();
-}
-
/*!
\qmlproperty real QtMultimedia::Camera::minimumZoomFactor
@@ -703,15 +641,6 @@ void QDeclarativeCamera::setZoomFactor(qreal value)
*/
/*!
- \qmlsignal Camera::lockStatusChanged()
-
- This signal is emitted when the lock status (focus, exposure etc) changes.
- This can happen when locking (e.g. autofocusing) is complete or has failed.
-
- The corresponding handler is \c onLockStatusChanged.
-*/
-
-/*!
\qmlsignal Camera::cameraStateChanged(state)
This signal is emitted when the camera state has changed to \a state. Since the
diff --git a/src/imports/multimedia/qdeclarativecamera_p.h b/src/imports/multimedia/qdeclarativecamera_p.h
index 0c60d9319..92430c0c4 100644
--- a/src/imports/multimedia/qdeclarativecamera_p.h
+++ b/src/imports/multimedia/qdeclarativecamera_p.h
@@ -84,7 +84,6 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus
Q_PROPERTY(CaptureMode captureMode READ captureMode WRITE setCaptureMode NOTIFY captureModeChanged)
Q_PROPERTY(State cameraState READ cameraState WRITE setCameraState NOTIFY cameraStateChanged)
Q_PROPERTY(Status cameraStatus READ cameraStatus NOTIFY cameraStatusChanged)
- Q_PROPERTY(LockStatus lockStatus READ lockStatus NOTIFY lockStatusChanged)
Q_PROPERTY(Error errorCode READ errorCode NOTIFY errorChanged)
Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged)
@@ -105,7 +104,6 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus
Q_ENUMS(CaptureMode)
Q_ENUMS(State)
Q_ENUMS(Status)
- Q_ENUMS(LockStatus)
Q_ENUMS(Error)
Q_ENUMS(FlashMode)
@@ -148,13 +146,6 @@ public:
ActiveStatus = QCamera::ActiveStatus
};
- enum LockStatus
- {
- Unlocked = QCamera::Unlocked,
- Searching = QCamera::Searching,
- Locked = QCamera::Locked
- };
-
enum Error
{
NoError = QCamera::NoError,
@@ -257,8 +248,6 @@ public:
Error errorCode() const;
QString errorString() const;
- LockStatus lockStatus() const;
-
qreal minimumZoomFactor() const;
qreal maximumZoomFactor() const;
@@ -274,9 +263,6 @@ public Q_SLOTS:
void setCameraState(State state);
- void searchAndLock();
- void unlock();
-
void setZoomFactor(qreal);
Q_REVISION(2) QJSValue supportedResolutions(qreal minimumFrameRate = 0.0,
@@ -296,8 +282,6 @@ Q_SIGNALS:
void cameraStateChanged(QDeclarativeCamera::State);
void cameraStatusChanged();
- void lockStatusChanged();
-
void zoomFactorChanged(qreal);
void mediaSourceChanged();
diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp
index 7276f9fdd..3f43c03a2 100644
--- a/src/multimedia/camera/qcamera.cpp
+++ b/src/multimedia/camera/qcamera.cpp
@@ -54,20 +54,6 @@
QT_BEGIN_NAMESPACE
-static void qRegisterCameraMetaTypes()
-{
- qRegisterMetaType<QCamera::Error>("QCamera::Error");
- qRegisterMetaType<QCamera::State>("QCamera::State");
- qRegisterMetaType<QCamera::Status>("QCamera::Status");
- qRegisterMetaType<QCamera::CaptureModes>("QCamera::CaptureModes");
- qRegisterMetaType<QCamera::LockType>("QCamera::LockType");
- qRegisterMetaType<QCamera::LockStatus>("QCamera::LockStatus");
- qRegisterMetaType<QCamera::LockChangeReason>("QCamera::LockChangeReason");
- qRegisterMetaType<QCameraInfo::Position>("QCameraInfo::Position");
-}
-
-Q_CONSTRUCTOR_FUNCTION(qRegisterCameraMetaTypes)
-
/*!
\class QCamera
@@ -175,8 +161,6 @@ void QCameraPrivate::initControls()
q->connect(control, SIGNAL(captureModeChanged(QCamera::CaptureModes)),
q, SIGNAL(captureModeChanged(QCamera::CaptureModes)));
q->connect(control, SIGNAL(error(int,QString)), q, SLOT(_q_error(int,QString)));
- q->connect(control, SIGNAL(lockStatusChanged(QCamera::LockType,QCamera::LockStatus,QCamera::LockChangeReason)),
- q, SLOT(_q_updateLockStatus(QCamera::LockType,QCamera::LockStatus,QCamera::LockChangeReason)));
}
error = QCamera::NoError;
@@ -206,68 +190,6 @@ void QCameraPrivate::clear()
service = nullptr;
}
-void QCameraPrivate::updateLockStatus()
-{
- Q_Q(QCamera);
-
- QCamera::LockStatus oldStatus = lockStatus;
-
- QMap<QCamera::LockStatus, int> lockStatusPriority;
- lockStatusPriority.insert(QCamera::Locked, 1);
- lockStatusPriority.insert(QCamera::Unlocked, 2);
- lockStatusPriority.insert(QCamera::Searching, 3);
-
- lockStatus = requestedLocks ? QCamera::Locked : QCamera::Unlocked;
- int priority = 0;
-
- QList<QCamera::LockStatus> lockStatuses;
-
- if (requestedLocks & QCamera::LockFocus)
- lockStatuses << q->lockStatus(QCamera::LockFocus);
-
- if (requestedLocks & QCamera::LockExposure)
- lockStatuses << q->lockStatus(QCamera::LockExposure);
-
- if (requestedLocks & QCamera::LockWhiteBalance)
- lockStatuses << q->lockStatus(QCamera::LockWhiteBalance);
-
-
- for (QCamera::LockStatus currentStatus : qAsConst(lockStatuses)) {
- int currentPriority = lockStatusPriority.value(currentStatus, -1);
- if (currentPriority > priority) {
- priority = currentPriority;
- lockStatus = currentStatus;
- }
- }
-
- if (!supressLockChangedSignal && oldStatus != lockStatus) {
- emit q->lockStatusChanged(lockStatus, lockChangeReason);
-
- if (lockStatus == QCamera::Locked)
- emit q->locked();
- else if (lockStatus == QCamera::Unlocked && lockChangeReason == QCamera::LockFailed)
- emit q->lockFailed();
- }
-/*
- qDebug() << "Requested locks:" << (requestedLocks & QCamera::LockExposure ? 'e' : ' ')
- << (requestedLocks & QCamera::LockFocus ? 'f' : ' ')
- << (requestedLocks & QCamera::LockWhiteBalance ? 'w' : ' ');
- qDebug() << "Lock status: f:" << q->lockStatus(QCamera::LockFocus)
- << " e:" << q->lockStatus(QCamera::LockExposure)
- << " w:" << q->lockStatus(QCamera::LockWhiteBalance)
- << " composite:" << lockStatus;
-*/
-}
-
-void QCameraPrivate::_q_updateLockStatus(QCamera::LockType type, QCamera::LockStatus status, QCamera::LockChangeReason reason)
-{
- Q_Q(QCamera);
- lockChangeReason = reason;
- updateLockStatus();
- emit q->lockStatusChanged(type, status, reason);
-}
-
-
/*!
Construct a QCamera with a \a parent.
@@ -562,134 +484,6 @@ void QCamera::setCameraInfo(const QCameraInfo &cameraInfo)
d->control->setCamera(d->cameraInfo);
}
-
-/*!
- Returns the lock types that the camera supports.
-*/
-QCamera::LockTypes QCamera::supportedLocks() const
-{
- Q_D(const QCamera);
-
- return d->control
- ? d->control->supportedLocks()
- : QCamera::LockTypes();
-}
-
-/*!
- Returns the requested lock types.
-*/
-QCamera::LockTypes QCamera::requestedLocks() const
-{
- return d_func()->requestedLocks;
-}
-
-/*!
- Returns the status of requested camera settings locks.
-*/
-QCamera::LockStatus QCamera::lockStatus() const
-{
- return d_func()->lockStatus;
-}
-
-/*!
- Returns the lock status for a given \a lockType.
-*/
-QCamera::LockStatus QCamera::lockStatus(QCamera::LockType lockType) const
-{
- const QCameraPrivate *d = d_func();
-
- if (!(lockType & d->requestedLocks))
- return QCamera::Unlocked;
-
- if (d->control)
- return d->control->lockStatus(lockType);
-
- return QCamera::Locked;
-}
-
-/*!
- \fn void QCamera::searchAndLock(QCamera::LockTypes locks)
-
- Locks the camera settings with the requested \a locks, including focusing in the single autofocus mode,
- exposure and white balance if the exposure and white balance modes are not manual.
-
- The camera settings are usually locked before taking one or multiple still images,
- in responce to the shutter button being half pressed.
-
- The QCamera::locked() signal is emitted when camera settings are successfully locked,
- otherwise QCamera::lockFailed() is emitted.
-
- QCamera also emits lockStatusChanged(QCamera::LockType, QCamera::LockStatus)
- on individual lock status changes and lockStatusChanged(QCamera::LockStatus) signal on composite status changes.
-
- Locking serves two roles: it initializes calculation of automatic parameter
- (focusing, calculating the correct exposure and white balance) and allows
- to keep some or all of those parameters during number of shots.
-
- If the camera doesn't support keeping one of parameters between shots, the related
- lock state changes to QCamera::Unlocked.
-
- It's also acceptable to relock already locked settings,
- depending on the lock parameter this initiates new focusing, exposure or white balance calculation.
- */
-void QCamera::searchAndLock(QCamera::LockTypes locks)
-{
- Q_D(QCamera);
-
- QCamera::LockStatus oldStatus = d->lockStatus;
- d->supressLockChangedSignal = true;
-
- if (d->control) {
- locks &= d->control->supportedLocks();
- d->requestedLocks |= locks;
- d->control->searchAndLock(locks);
- }
-
- d->supressLockChangedSignal = false;
-
- d->lockStatus = oldStatus;
- d->updateLockStatus();
-}
-
-/*!
- Lock all the supported camera settings.
- */
-void QCamera::searchAndLock()
-{
- searchAndLock(LockExposure | LockWhiteBalance | LockFocus);
-}
-
-/*!
- Unlocks the camera settings specified with \a locks or cancel the current locking if one is active.
- */
-void QCamera::unlock(QCamera::LockTypes locks)
-{
- Q_D(QCamera);
-
- QCamera::LockStatus oldStatus = d->lockStatus;
- d->supressLockChangedSignal = true;
-
- d->requestedLocks &= ~locks;
-
- if (d->control) {
- locks &= d->control->supportedLocks();
- d->control->unlock(locks);
- }
-
- d->supressLockChangedSignal = false;
-
- d->lockStatus = oldStatus;
- d->updateLockStatus();
-}
-
-/*!
- Unlock all the requested camera locks.
- */
-void QCamera::unlock()
-{
- unlock(d_func()->requestedLocks);
-}
-
/*!
\enum QCamera::State
@@ -777,93 +571,6 @@ void QCamera::unlock()
\value CaptureVideo Camera is configured for video capture.
*/
-/*!
- \enum QCamera::LockType
-
- This enum holds the camera lock type.
-
- \value NoLock
- \value LockExposure
- Lock camera exposure.
- \value LockWhiteBalance
- Lock the white balance.
- \value LockFocus
- Lock camera focus.
-*/
-
-
-/*!
- \property QCamera::lockStatus
- \brief The overall status for all the requested camera locks.
-*/
-
-/*!
- \fn void QCamera::locked()
-
- Signals all the requested camera settings are locked.
-*/
-
-/*!
- \fn void QCamera::lockFailed()
-
- Signals locking of at least one requested camera settings failed.
-*/
-
-/*!
- \fn QCamera::lockStatusChanged(QCamera::LockStatus status, QCamera::LockChangeReason reason)
-
- Signals the overall \a status for all the requested camera locks was changed with specified \a reason.
-*/
-
-/*!
- \fn QCamera::lockStatusChanged(QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason)
- Signals the \a lock \a status was changed with specified \a reason.
-*/
-
-/*!
- \enum QCamera::LockStatus
-
- This enum holds the overall status for all the requested camera locks.
-
- \value Unlocked
- The application is not interested in camera settings value.
- The camera may keep this parameter without changes, this is common with camera focus,
- or adjust exposure and white balance constantly to keep the viewfinder image nice.
- \value Searching
- The application has requested the camera focus, exposure or white balance lock with
- QCamera::searchAndLock(). This state indicates the camera is focusing or
- calculating exposure and white balance.
- \value Locked
- The camera focus, exposure or white balance is locked.
- The camera is ready to capture, application may check the exposure
- stays the same, parameters. The \c Locked status usually means the
- requested parameter except in the cases when the parameter is requested
- to be constantly updated. For example, in continuous focusing mode,
- the focus is considered locked as long as the object is in focus, even
- while the actual focusing distance may be constantly changing.
-*/
-
-/*!
- \enum QCamera::LockChangeReason
-
- This enum holds the reason why the camera lock status changed.
-
- \value UserRequest
- The lock status changed in result of user request, usually to unlock camera settings.
- \value LockAcquired
- The lock status successfuly changed to QCamera::Locked.
- \value LockFailed
- The camera failed to acquire the requested lock in result of
- autofocus failure, exposure out of supported range, etc.
- \value LockLost
- The camera is not able to maintain the requested lock any more.
- Lock status is changed to QCamera::Unlocked.
- \value LockTemporaryLost
- The lock is lost, but the camera is working hard to reacquire it.
- This value may be used in continuous focusing mode,
- when the camera loses the focus, the focus lock state is changed to Qcamera::Searching
- with LockTemporaryLost reason.
-*/
/*!
\enum QCamera::Error
diff --git a/src/multimedia/camera/qcamera.h b/src/multimedia/camera/qcamera.h
index 6bbb6609f..f31083812 100644
--- a/src/multimedia/camera/qcamera.h
+++ b/src/multimedia/camera/qcamera.h
@@ -68,15 +68,11 @@ class Q_MULTIMEDIA_EXPORT QCamera : public QMediaSource
Q_PROPERTY(QCamera::State state READ state NOTIFY stateChanged)
Q_PROPERTY(QCamera::Status status READ status NOTIFY statusChanged)
Q_PROPERTY(QCamera::CaptureModes captureMode READ captureMode WRITE setCaptureMode NOTIFY captureModeChanged)
- Q_PROPERTY(QCamera::LockStatus lockStatus READ lockStatus NOTIFY lockStatusChanged)
Q_ENUMS(Status)
Q_ENUMS(State)
Q_ENUMS(CaptureMode)
Q_ENUMS(Error)
- Q_ENUMS(LockStatus)
- Q_ENUMS(LockChangeReason)
- Q_ENUMS(LockType)
Q_ENUMS(Position)
public:
enum Status {
@@ -110,30 +106,6 @@ public:
CameraError
};
- enum LockStatus
- {
- Unlocked,
- Searching,
- Locked
- };
-
- enum LockChangeReason {
- UserRequest,
- LockAcquired,
- LockFailed,
- LockLost,
- LockTemporaryLost
- };
-
- enum LockType
- {
- NoLock = 0,
- LockExposure = 0x01,
- LockWhiteBalance = 0x02,
- LockFocus = 0x04
- };
- Q_DECLARE_FLAGS(LockTypes, LockType)
-
explicit QCamera(QObject *parent = nullptr);
explicit QCamera(const QCameraInfo& cameraInfo, QObject *parent = nullptr);
explicit QCamera(QCameraInfo::Position position, QObject *parent = nullptr);
@@ -160,12 +132,6 @@ public:
Error error() const;
QString errorString() const;
- QCamera::LockTypes supportedLocks() const;
- QCamera::LockTypes requestedLocks() const;
-
- QCamera::LockStatus lockStatus() const;
- QCamera::LockStatus lockStatus(QCamera::LockType lock) const;
-
public Q_SLOTS:
void setCaptureMode(QCamera::CaptureModes mode);
@@ -175,23 +141,10 @@ public Q_SLOTS:
void start();
void stop();
- void searchAndLock();
- void unlock();
-
- void searchAndLock(QCamera::LockTypes locks);
- void unlock(QCamera::LockTypes locks);
-
Q_SIGNALS:
void stateChanged(QCamera::State state);
void captureModeChanged(QCamera::CaptureModes);
void statusChanged(QCamera::Status status);
-
- void locked();
- void lockFailed();
-
- void lockStatusChanged(QCamera::LockStatus status, QCamera::LockChangeReason reason);
- void lockStatusChanged(QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason);
-
void errorOccurred(QCamera::Error);
private:
@@ -200,30 +153,15 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_preparePropertyChange(int))
Q_PRIVATE_SLOT(d_func(), void _q_restartCamera())
Q_PRIVATE_SLOT(d_func(), void _q_error(int, const QString &))
- Q_PRIVATE_SLOT(d_func(), void _q_updateLockStatus(QCamera::LockType, QCamera::LockStatus, QCamera::LockChangeReason))
Q_PRIVATE_SLOT(d_func(), void _q_updateState(QCamera::State))
friend class QCameraInfo;
};
-Q_DECLARE_OPERATORS_FOR_FLAGS(QCamera::LockTypes)
-
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QCamera::State)
-Q_DECLARE_METATYPE(QCamera::Status)
-Q_DECLARE_METATYPE(QCamera::Error)
-Q_DECLARE_METATYPE(QCamera::CaptureMode)
-Q_DECLARE_METATYPE(QCamera::CaptureModes)
-Q_DECLARE_METATYPE(QCamera::LockType)
-Q_DECLARE_METATYPE(QCamera::LockStatus)
-Q_DECLARE_METATYPE(QCamera::LockChangeReason)
-
Q_MEDIA_ENUM_DEBUG(QCamera, State)
Q_MEDIA_ENUM_DEBUG(QCamera, Status)
Q_MEDIA_ENUM_DEBUG(QCamera, Error)
Q_MEDIA_ENUM_DEBUG(QCamera, CaptureMode)
-Q_MEDIA_ENUM_DEBUG(QCamera, LockType)
-Q_MEDIA_ENUM_DEBUG(QCamera, LockStatus)
-Q_MEDIA_ENUM_DEBUG(QCamera, LockChangeReason)
#endif // QCAMERA_H
diff --git a/src/multimedia/camera/qcamera_p.h b/src/multimedia/camera/qcamera_p.h
index de10b7d9a..5f1795f3e 100644
--- a/src/multimedia/camera/qcamera_p.h
+++ b/src/multimedia/camera/qcamera_p.h
@@ -74,9 +74,6 @@ public:
capture(nullptr),
state(QCamera::UnloadedState),
error(QCamera::NoError),
- requestedLocks(QCamera::NoLock),
- lockStatus(QCamera::Unlocked),
- lockChangeReason(QCamera::UserRequest),
supressLockChangedSignal(false),
restartPending(false)
{
@@ -103,10 +100,6 @@ public:
QCameraInfo cameraInfo;
- QCamera::LockTypes requestedLocks;
-
- QCamera::LockStatus lockStatus;
- QCamera::LockChangeReason lockChangeReason;
bool supressLockChangedSignal;
bool restartPending;
@@ -118,11 +111,9 @@ public:
void setState(QCamera::State);
- void _q_updateLockStatus(QCamera::LockType, QCamera::LockStatus, QCamera::LockChangeReason);
void _q_updateState(QCamera::State newState);
void _q_preparePropertyChange(int changeType);
void _q_restartCamera();
- void updateLockStatus();
};
QT_END_NAMESPACE
diff --git a/src/multimedia/controls/qcameracontrol.cpp b/src/multimedia/controls/qcameracontrol.cpp
index 205f058df..9dcefd6ed 100644
--- a/src/multimedia/controls/qcameracontrol.cpp
+++ b/src/multimedia/controls/qcameracontrol.cpp
@@ -192,36 +192,6 @@ QCameraControl::QCameraControl(QObject *parent)
*/
/*!
- \fn QCameraControl::supportedLocks() const
-
- Returns the lock types, the camera supports.
-*/
-
-/*!
- \fn QCameraControl::lockStatus(QCamera::LockType lock) const
-
- Returns the camera \a lock status.
-*/
-
-/*!
- \fn QCameraControl::searchAndLock(QCamera::LockTypes locks)
-
- Request camera \a locks.
-*/
-
-/*!
- \fn QCameraControl::unlock(QCamera::LockTypes locks)
-
- Unlock camera \a locks.
-*/
-
-/*!
- \fn QCameraControl::lockStatusChanged(QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason)
-
- Signals the lock \a type \a status was changed with the specified \a reason.
-*/
-
-/*!
\fn QCameraControl::supportedViewfinderSettings() const
Returns a list of supported camera viewfinder settings.
diff --git a/src/multimedia/controls/qcameracontrol.h b/src/multimedia/controls/qcameracontrol.h
index 8074381f0..bfe33b363 100644
--- a/src/multimedia/controls/qcameracontrol.h
+++ b/src/multimedia/controls/qcameracontrol.h
@@ -78,13 +78,6 @@ public:
virtual bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const = 0;
- virtual QCamera::LockTypes supportedLocks() const = 0;
-
- virtual QCamera::LockStatus lockStatus(QCamera::LockType lock) const = 0;
-
- virtual void searchAndLock(QCamera::LockTypes locks) = 0;
- virtual void unlock(QCamera::LockTypes locks) = 0;
-
virtual QCameraFocusControl *focusControl() { return nullptr; }
virtual QCameraExposureControl *exposureControl() { return nullptr; }
virtual QCameraImageProcessingControl *imageProcessingControl() { return nullptr; }
@@ -94,7 +87,6 @@ Q_SIGNALS:
void statusChanged(QCamera::Status);
void error(int error, const QString &errorString);
void captureModeChanged(QCamera::CaptureModes mode);
- void lockStatusChanged(QCamera::LockType type, QCamera::LockStatus status, QCamera::LockChangeReason reason);
protected:
explicit QCameraControl(QObject *parent = nullptr);
diff --git a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp
index 700ce2928..d1160d274 100644
--- a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp
+++ b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp
@@ -64,8 +64,6 @@ QAndroidCameraControl::QAndroidCameraControl(QAndroidCameraSession *session)
connect(m_cameraSession, SIGNAL(captureModeChanged(QCamera::CaptureModes)),
this, SIGNAL(captureModeChanged(QCamera::CaptureModes)));
- connect(m_cameraSession, SIGNAL(opened()), this, SLOT(onCameraOpened()));
-
m_recalculateTimer = new QTimer(this);
m_recalculateTimer->setInterval(1000);
m_recalculateTimer->setSingleShot(true);
@@ -135,109 +133,6 @@ bool QAndroidCameraControl::canChangeProperty(PropertyChangeType changeType, QCa
}
}
-
-QCamera::LockTypes QAndroidCameraControl::supportedLocks() const
-{
- return m_supportedLocks;
-}
-
-QCamera::LockStatus QAndroidCameraControl::lockStatus(QCamera::LockType lock) const
-{
- if (!m_supportedLocks.testFlag(lock) || !m_cameraSession->camera())
- return QCamera::Unlocked;
-
- if (lock == QCamera::LockFocus)
- return m_focusLockStatus;
-
- if (lock == QCamera::LockExposure)
- return m_exposureLockStatus;
-
- if (lock == QCamera::LockWhiteBalance)
- return m_whiteBalanceLockStatus;
-
- return QCamera::Unlocked;
-}
-
-void QAndroidCameraControl::searchAndLock(QCamera::LockTypes locks)
-{
- if (!m_cameraSession->camera())
- return;
-
- // filter out unsupported locks
- locks &= m_supportedLocks;
-
- if (locks.testFlag(QCamera::LockFocus)) {
- QString focusMode = m_cameraSession->camera()->getFocusMode();
- if (focusMode == QLatin1String("auto")
- || focusMode == QLatin1String("macro")
- || focusMode == QLatin1String("continuous-picture")
- || focusMode == QLatin1String("continuous-video")) {
-
- if (m_focusLockStatus == QCamera::Searching)
- m_cameraSession->camera()->cancelAutoFocus();
- else
- setFocusLockStatus(QCamera::Searching, QCamera::UserRequest);
-
- m_cameraSession->camera()->autoFocus();
-
- } else {
- setFocusLockStatus(QCamera::Locked, QCamera::LockAcquired);
- }
- }
-
- if (locks.testFlag(QCamera::LockExposure) && m_exposureLockStatus != QCamera::Searching) {
- if (m_cameraSession->camera()->getAutoExposureLock()) {
- // if already locked, unlock and give some time to recalculate exposure
- m_cameraSession->camera()->setAutoExposureLock(false);
- setExposureLockStatus(QCamera::Searching, QCamera::UserRequest);
- } else {
- m_cameraSession->camera()->setAutoExposureLock(true);
- setExposureLockStatus(QCamera::Locked, QCamera::LockAcquired);
- }
- }
-
- if (locks.testFlag(QCamera::LockWhiteBalance) && m_whiteBalanceLockStatus != QCamera::Searching) {
- if (m_cameraSession->camera()->getAutoWhiteBalanceLock()) {
- // if already locked, unlock and give some time to recalculate white balance
- m_cameraSession->camera()->setAutoWhiteBalanceLock(false);
- setWhiteBalanceLockStatus(QCamera::Searching, QCamera::UserRequest);
- } else {
- m_cameraSession->camera()->setAutoWhiteBalanceLock(true);
- setWhiteBalanceLockStatus(QCamera::Locked, QCamera::LockAcquired);
- }
- }
-
- if (m_exposureLockStatus == QCamera::Searching || m_whiteBalanceLockStatus == QCamera::Searching)
- m_recalculateTimer->start();
-}
-
-void QAndroidCameraControl::unlock(QCamera::LockTypes locks)
-{
- if (!m_cameraSession->camera())
- return;
-
- if (m_recalculateTimer->isActive())
- m_recalculateTimer->stop();
-
- // filter out unsupported locks
- locks &= m_supportedLocks;
-
- if (locks.testFlag(QCamera::LockFocus)) {
- m_cameraSession->camera()->cancelAutoFocus();
- setFocusLockStatus(QCamera::Unlocked, QCamera::UserRequest);
- }
-
- if (locks.testFlag(QCamera::LockExposure)) {
- m_cameraSession->camera()->setAutoExposureLock(false);
- setExposureLockStatus(QCamera::Unlocked, QCamera::UserRequest);
- }
-
- if (locks.testFlag(QCamera::LockWhiteBalance)) {
- m_cameraSession->camera()->setAutoWhiteBalanceLock(false);
- setWhiteBalanceLockStatus(QCamera::Unlocked, QCamera::UserRequest);
- }
-}
-
QCameraFocusControl *QAndroidCameraControl::focusControl()
{
return m_cameraSession->focusControl();
@@ -253,89 +148,4 @@ QCameraImageProcessingControl *QAndroidCameraControl::imageProcessingControl()
return m_cameraSession->imageProcessingControl();
}
-void QAndroidCameraControl::onCameraOpened()
-{
- m_supportedLocks = QCamera::NoLock;
- m_focusLockStatus = QCamera::Unlocked;
- m_exposureLockStatus = QCamera::Unlocked;
- m_whiteBalanceLockStatus = QCamera::Unlocked;
-
- // check if focus lock is supported
- QStringList focusModes = m_cameraSession->camera()->getSupportedFocusModes();
- for (int i = 0; i < focusModes.size(); ++i) {
- const QString &focusMode = focusModes.at(i);
- if (focusMode == QLatin1String("auto")
- || focusMode == QLatin1String("continuous-picture")
- || focusMode == QLatin1String("continuous-video")
- || focusMode == QLatin1String("macro")) {
-
- m_supportedLocks |= QCamera::LockFocus;
- setFocusLockStatus(QCamera::Unlocked, QCamera::UserRequest);
-
- connect(m_cameraSession->camera(), SIGNAL(autoFocusComplete(bool)),
- this, SLOT(onCameraAutoFocusComplete(bool)));
-
- break;
- }
- }
-
- if (m_cameraSession->camera()->isAutoExposureLockSupported()) {
- m_supportedLocks |= QCamera::LockExposure;
- setExposureLockStatus(QCamera::Unlocked, QCamera::UserRequest);
- }
-
- if (m_cameraSession->camera()->isAutoWhiteBalanceLockSupported()) {
- m_supportedLocks |= QCamera::LockWhiteBalance;
- setWhiteBalanceLockStatus(QCamera::Unlocked, QCamera::UserRequest);
-
- connect(m_cameraSession->camera(), SIGNAL(whiteBalanceChanged()),
- this, SLOT(onWhiteBalanceChanged()));
- }
-}
-
-void QAndroidCameraControl::onCameraAutoFocusComplete(bool success)
-{
- m_focusLockStatus = success ? QCamera::Locked : QCamera::Unlocked;
- QCamera::LockChangeReason reason = success ? QCamera::LockAcquired : QCamera::LockFailed;
- emit lockStatusChanged(QCamera::LockFocus, m_focusLockStatus, reason);
-}
-
-void QAndroidCameraControl::onRecalculateTimeOut()
-{
- if (m_exposureLockStatus == QCamera::Searching) {
- m_cameraSession->camera()->setAutoExposureLock(true);
- setExposureLockStatus(QCamera::Locked, QCamera::LockAcquired);
- }
-
- if (m_whiteBalanceLockStatus == QCamera::Searching) {
- m_cameraSession->camera()->setAutoWhiteBalanceLock(true);
- setWhiteBalanceLockStatus(QCamera::Locked, QCamera::LockAcquired);
- }
-}
-
-void QAndroidCameraControl::onWhiteBalanceChanged()
-{
- // changing the white balance mode releases the white balance lock
- if (m_whiteBalanceLockStatus != QCamera::Unlocked)
- setWhiteBalanceLockStatus(QCamera::Unlocked, QCamera::LockLost);
-}
-
-void QAndroidCameraControl::setFocusLockStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason)
-{
- m_focusLockStatus = status;
- emit lockStatusChanged(QCamera::LockFocus, m_focusLockStatus, reason);
-}
-
-void QAndroidCameraControl::setWhiteBalanceLockStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason)
-{
- m_whiteBalanceLockStatus = status;
- emit lockStatusChanged(QCamera::LockWhiteBalance, m_whiteBalanceLockStatus, reason);
-}
-
-void QAndroidCameraControl::setExposureLockStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason)
-{
- m_exposureLockStatus = status;
- emit lockStatusChanged(QCamera::LockExposure, m_exposureLockStatus, reason);
-}
-
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h
index d313db9fd..02b197616 100644
--- a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h
+++ b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h
@@ -78,35 +78,14 @@ public:
bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const override;
- QCamera::LockTypes supportedLocks() const override;
- QCamera::LockStatus lockStatus(QCamera::LockType lock) const override;
- void searchAndLock(QCamera::LockTypes locks) override;
- void unlock(QCamera::LockTypes locks) override;
-
QCameraFocusControl *focusControl() override;
QCameraExposureControl *exposureControl() override;
QCameraImageProcessingControl *imageProcessingControl() override;
-private Q_SLOTS:
- void onCameraOpened();
- void onCameraAutoFocusComplete(bool success);
- void onRecalculateTimeOut();
- void onWhiteBalanceChanged();
-
private:
- void setFocusLockStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason);
- void setWhiteBalanceLockStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason);
- void setExposureLockStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason);
-
QAndroidCameraSession *m_cameraSession;
QTimer *m_recalculateTimer;
-
- QCamera::LockTypes m_supportedLocks;
-
- QCamera::LockStatus m_focusLockStatus;
- QCamera::LockStatus m_exposureLockStatus;
- QCamera::LockStatus m_whiteBalanceLockStatus;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/darwin/camera/avfcameracontrol.mm b/src/multimedia/platform/darwin/camera/avfcameracontrol.mm
index ae492257e..77f394221 100644
--- a/src/multimedia/platform/darwin/camera/avfcameracontrol.mm
+++ b/src/multimedia/platform/darwin/camera/avfcameracontrol.mm
@@ -136,26 +136,6 @@ bool AVFCameraControl::canChangeProperty(QCameraControl::PropertyChangeType chan
return true;
}
-QCamera::LockTypes AVFCameraControl::supportedLocks() const
-{
- return {};
-}
-
-QCamera::LockStatus AVFCameraControl::lockStatus(QCamera::LockType) const
-{
- return QCamera::Unlocked;
-}
-
-void AVFCameraControl::searchAndLock(QCamera::LockTypes locks)
-{
- Q_UNUSED(locks);
-}
-
-void AVFCameraControl::unlock(QCamera::LockTypes locks)
-{
- Q_UNUSED(locks);
-}
-
QVideoFrame::PixelFormat AVFCameraControl::QtPixelFormatFromCVFormat(unsigned avPixelFormat)
{
// BGRA <-> ARGB "swap" is intentional:
diff --git a/src/multimedia/platform/darwin/camera/avfcameracontrol_p.h b/src/multimedia/platform/darwin/camera/avfcameracontrol_p.h
index d0a7bba01..8c78a367c 100644
--- a/src/multimedia/platform/darwin/camera/avfcameracontrol_p.h
+++ b/src/multimedia/platform/darwin/camera/avfcameracontrol_p.h
@@ -82,13 +82,6 @@ public:
bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const override;
- QCamera::LockTypes supportedLocks() const override;
-
- QCamera::LockStatus lockStatus(QCamera::LockType lock) const override;
-
- void searchAndLock(QCamera::LockTypes locks) override;
- void unlock(QCamera::LockTypes locks) override;
-
QCameraFocusControl *focusControl() override;
QCameraExposureControl *exposureControl() override;
QCameraImageProcessingControl *imageProcessingControl() override;
diff --git a/src/multimedia/platform/gstreamer/camerabin/camerabincontrol.cpp b/src/multimedia/platform/gstreamer/camerabin/camerabincontrol.cpp
index d303142ac..0b7b014f5 100644
--- a/src/multimedia/platform/gstreamer/camerabin/camerabincontrol.cpp
+++ b/src/multimedia/platform/gstreamer/camerabin/camerabincontrol.cpp
@@ -239,182 +239,4 @@ void CameraBinControl::setViewfinderColorSpaceConversion(bool enabled)
g_object_set(G_OBJECT(m_session->cameraBin()), "flags", flags, NULL);
}
-QCamera::LockTypes CameraBinControl::supportedLocks() const
-{
- QCamera::LockTypes locks = QCamera::LockFocus;
-
- if (GstPhotography *photography = m_session->photography()) {
- if (gst_photography_get_capabilities(photography) & GST_PHOTOGRAPHY_CAPS_WB_MODE)
- locks |= QCamera::LockWhiteBalance;
-
- if (GstElement *source = m_session->cameraSource()) {
- if (g_object_class_find_property(
- G_OBJECT_GET_CLASS(source), "exposure-mode")) {
- locks |= QCamera::LockExposure;
- }
- }
- }
-
- return locks;
-}
-
-QCamera::LockStatus CameraBinControl::lockStatus(QCamera::LockType lock) const
-{
- switch (lock) {
- case QCamera::LockFocus:
- return m_focus->focusStatus();
- case QCamera::LockExposure:
- if (m_pendingLocks & QCamera::LockExposure)
- return QCamera::Searching;
- return isExposureLocked() ? QCamera::Locked : QCamera::Unlocked;
- case QCamera::LockWhiteBalance:
- if (m_pendingLocks & QCamera::LockWhiteBalance)
- return QCamera::Searching;
- return isWhiteBalanceLocked() ? QCamera::Locked : QCamera::Unlocked;
- default:
- return QCamera::Unlocked;
- }
-}
-
-void CameraBinControl::searchAndLock(QCamera::LockTypes locks)
-{
- m_pendingLocks &= ~locks;
-
- if (locks & QCamera::LockFocus) {
- m_pendingLocks |= QCamera::LockFocus;
- m_focus->_q_startFocusing();
- }
- if (!m_pendingLocks)
- m_lockTimer.stop();
-
- if (locks & QCamera::LockExposure) {
- if (isExposureLocked()) {
- unlockExposure(QCamera::Searching, QCamera::UserRequest);
- m_pendingLocks |= QCamera::LockExposure;
- m_lockTimer.start(1000, this);
- } else {
- lockExposure(QCamera::UserRequest);
- }
- }
- if (locks & QCamera::LockWhiteBalance) {
- if (isWhiteBalanceLocked()) {
- unlockWhiteBalance(QCamera::Searching, QCamera::UserRequest);
- m_pendingLocks |= QCamera::LockWhiteBalance;
- m_lockTimer.start(1000, this);
- } else {
- lockWhiteBalance(QCamera::UserRequest);
- }
- }
-}
-
-void CameraBinControl::unlock(QCamera::LockTypes locks)
-{
- m_pendingLocks &= ~locks;
-
- if (locks & QCamera::LockFocus)
- m_focus->_q_stopFocusing();
-
- if (!m_pendingLocks)
- m_lockTimer.stop();
-
- if (locks & QCamera::LockExposure)
- unlockExposure(QCamera::Unlocked, QCamera::UserRequest);
- if (locks & QCamera::LockWhiteBalance)
- unlockWhiteBalance(QCamera::Unlocked, QCamera::UserRequest);
-}
-
-void CameraBinControl::updateFocusStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason)
-{
- if (status != QCamera::Searching)
- m_pendingLocks &= ~QCamera::LockFocus;
-
- if (status == QCamera::Locked && !m_lockTimer.isActive()) {
- if (m_pendingLocks & QCamera::LockExposure)
- lockExposure(QCamera::LockAcquired);
- if (m_pendingLocks & QCamera::LockWhiteBalance)
- lockWhiteBalance(QCamera::LockAcquired);
- }
- emit lockStatusChanged(QCamera::LockFocus, status, reason);
-}
-
-void CameraBinControl::timerEvent(QTimerEvent *event)
-{
- if (event->timerId() != m_lockTimer.timerId())
- return QCameraControl::timerEvent(event);
-
- m_lockTimer.stop();
-
- if (!(m_pendingLocks & QCamera::LockFocus)) {
- if (m_pendingLocks & QCamera::LockExposure)
- lockExposure(QCamera::LockAcquired);
- if (m_pendingLocks & QCamera::LockWhiteBalance)
- lockWhiteBalance(QCamera::LockAcquired);
- }
-}
-
-bool CameraBinControl::isExposureLocked() const
-{
- if (GstElement *source = m_session->cameraSource()) {
- GstPhotographyExposureMode exposureMode = GST_PHOTOGRAPHY_EXPOSURE_MODE_AUTO;
- g_object_get (G_OBJECT(source), "exposure-mode", &exposureMode, NULL);
- return exposureMode == GST_PHOTOGRAPHY_EXPOSURE_MODE_MANUAL;
- }
-
- return false;
-}
-
-void CameraBinControl::lockExposure(QCamera::LockChangeReason reason)
-{
- GstElement *source = m_session->cameraSource();
- if (!source)
- return;
-
- m_pendingLocks &= ~QCamera::LockExposure;
- g_object_set(
- G_OBJECT(source),
- "exposure-mode",
- GST_PHOTOGRAPHY_EXPOSURE_MODE_MANUAL,
- NULL);
- emit lockStatusChanged(QCamera::LockExposure, QCamera::Locked, reason);
-}
-
-void CameraBinControl::unlockExposure(QCamera::LockStatus status, QCamera::LockChangeReason reason)
-{
- GstElement *source = m_session->cameraSource();
- if (!source)
- return;
-
- g_object_set(
- G_OBJECT(source),
- "exposure-mode",
- GST_PHOTOGRAPHY_EXPOSURE_MODE_AUTO,
- NULL);
- emit lockStatusChanged(QCamera::LockExposure, status, reason);
-}
-
-bool CameraBinControl::isWhiteBalanceLocked() const
-{
- if (GstPhotography *photography = m_session->photography()) {
- GstPhotographyWhiteBalanceMode whiteBalanceMode;
- return gst_photography_get_white_balance_mode(photography, &whiteBalanceMode)
- && whiteBalanceMode == GST_PHOTOGRAPHY_WB_MODE_MANUAL;
- }
-
- return false;
-}
-
-void CameraBinControl::lockWhiteBalance(QCamera::LockChangeReason reason)
-{
- m_pendingLocks &= ~QCamera::LockWhiteBalance;
- m_session->imageProcessingControl()->lockWhiteBalance();
- emit lockStatusChanged(QCamera::LockWhiteBalance, QCamera::Locked, reason);
-}
-
-void CameraBinControl::unlockWhiteBalance(
- QCamera::LockStatus status, QCamera::LockChangeReason reason)
-{
- m_session->imageProcessingControl()->lockWhiteBalance();
- emit lockStatusChanged(QCamera::LockWhiteBalance, status, reason);
-}
-
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/gstreamer/camerabin/camerabincontrol_p.h b/src/multimedia/platform/gstreamer/camerabin/camerabincontrol_p.h
index 46f0a2934..0ea4ee73e 100644
--- a/src/multimedia/platform/gstreamer/camerabin/camerabincontrol_p.h
+++ b/src/multimedia/platform/gstreamer/camerabin/camerabincontrol_p.h
@@ -83,13 +83,6 @@ public:
bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const override;
bool viewfinderColorSpaceConversion() const;
- QCamera::LockTypes supportedLocks() const override;
-
- QCamera::LockStatus lockStatus(QCamera::LockType lock) const override;
-
- void searchAndLock(QCamera::LockTypes locks) override;
- void unlock(QCamera::LockTypes locks) override;
-
public slots:
void reloadLater();
void setViewfinderColorSpaceConversion(bool enabled);
@@ -106,26 +99,12 @@ private:
protected:
void timerEvent(QTimerEvent *event) override;
-private slots:
- void updateFocusStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason);
-
-private:
- bool isExposureLocked() const;
- void lockExposure(QCamera::LockChangeReason reason);
- void unlockExposure(QCamera::LockStatus status, QCamera::LockChangeReason reason);
-
- bool isWhiteBalanceLocked() const;
- void lockWhiteBalance(QCamera::LockChangeReason reason);
- void unlockWhiteBalance(QCamera::LockStatus status, QCamera::LockChangeReason reason);
-
CameraBinSession *m_session;
QCamera::State m_state;
bool m_reloadPending;
CameraBinFocus *m_focus;
- QBasicTimer m_lockTimer;
- QCamera::LockTypes m_pendingLocks;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/gstreamer/camerabin/camerabinfocus.cpp b/src/multimedia/platform/gstreamer/camerabin/camerabinfocus.cpp
index f795b0f2f..235bde6b5 100644
--- a/src/multimedia/platform/gstreamer/camerabin/camerabinfocus.cpp
+++ b/src/multimedia/platform/gstreamer/camerabin/camerabinfocus.cpp
@@ -248,72 +248,6 @@ QCameraFocusZoneList CameraBinFocus::focusZones() const
return zones;
}
-void CameraBinFocus::handleFocusMessage(GstMessage *gm)
-{
- //it's a sync message, so it's called from non main thread
- const GstStructure *structure = gst_message_get_structure(gm);
- if (gst_structure_has_name(structure, GST_PHOTOGRAPHY_AUTOFOCUS_DONE)) {
- gint status = GST_PHOTOGRAPHY_FOCUS_STATUS_NONE;
- gst_structure_get_int (structure, "status", &status);
- QCamera::LockStatus focusStatus = m_focusStatus;
- QCamera::LockChangeReason reason = QCamera::UserRequest;
-
- switch (status) {
- case GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL:
- focusStatus = QCamera::Unlocked;
- reason = QCamera::LockFailed;
- break;
- case GST_PHOTOGRAPHY_FOCUS_STATUS_SUCCESS:
- focusStatus = QCamera::Locked;
- break;
- case GST_PHOTOGRAPHY_FOCUS_STATUS_NONE:
- break;
- case GST_PHOTOGRAPHY_FOCUS_STATUS_RUNNING:
- focusStatus = QCamera::Searching;
- break;
- default:
- break;
- }
-
- static int signalIndex = metaObject()->indexOfSlot(
- "_q_setFocusStatus(QCamera::LockStatus,QCamera::LockChangeReason)");
- metaObject()->method(signalIndex).invoke(this,
- Qt::QueuedConnection,
- Q_ARG(QCamera::LockStatus,focusStatus),
- Q_ARG(QCamera::LockChangeReason,reason));
- }
-}
-
-void CameraBinFocus::_q_setFocusStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason)
-{
-#ifdef CAMERABIN_DEBUG
- qDebug() << Q_FUNC_INFO << "Current:"
- << m_focusStatus
- << "New:"
- << status << reason;
-#endif
-
- if (m_focusStatus != status) {
- m_focusStatus = status;
-
- QCameraFocusZone::FocusZoneStatus zonesStatus =
- m_focusStatus == QCamera::Locked ?
- QCameraFocusZone::Focused : QCameraFocusZone::Selected;
-
- if (m_focusZoneStatus != zonesStatus) {
- m_focusZoneStatus = zonesStatus;
- emit focusZonesChanged();
- }
-
- if (m_focusPointMode == QCameraFocus::FocusPointFaceDetection
- && m_focusStatus == QCamera::Unlocked) {
- _q_updateFaces();
- }
-
- emit _q_focusStatusChanged(m_focusStatus, reason);
- }
-}
-
void CameraBinFocus::_q_handleCameraStatusChange(QCamera::Status status)
{
m_cameraStatus = status;
@@ -341,18 +275,6 @@ void CameraBinFocus::_q_handleCameraStatusChange(QCamera::Status status)
}
}
-void CameraBinFocus::_q_startFocusing()
-{
- _q_setFocusStatus(QCamera::Searching, QCamera::UserRequest);
- gst_photography_set_autofocus(m_session->photography(), TRUE);
-}
-
-void CameraBinFocus::_q_stopFocusing()
-{
- gst_photography_set_autofocus(m_session->photography(), FALSE);
- _q_setFocusStatus(QCamera::Unlocked, QCamera::UserRequest);
-}
-
void CameraBinFocus::setViewfinderResolution(const QSize &resolution)
{
if (resolution != m_viewfinderResolution) {
@@ -455,10 +377,8 @@ void CameraBinFocus::updateRegionOfInterest(const QList<QRect> &rectangles)
void CameraBinFocus::_q_updateFaces()
{
- if (m_focusPointMode != QCameraFocus::FocusPointFaceDetection
- || m_focusStatus != QCamera::Unlocked) {
+ if (m_focusPointMode != QCameraFocus::FocusPointFaceDetection)
return;
- }
QList<QRect> faces;
diff --git a/src/multimedia/platform/gstreamer/camerabin/camerabinfocus_p.h b/src/multimedia/platform/gstreamer/camerabin/camerabinfocus_p.h
index 4ffef7a3a..4f18adbca 100644
--- a/src/multimedia/platform/gstreamer/camerabin/camerabinfocus_p.h
+++ b/src/multimedia/platform/gstreamer/camerabin/camerabinfocus_p.h
@@ -100,23 +100,12 @@ public:
void zoomTo(qreal optical, qreal digital) override;
- void handleFocusMessage(GstMessage*);
- QCamera::LockStatus focusStatus() const { return m_focusStatus; }
-
-Q_SIGNALS:
- void _q_focusStatusChanged(QCamera::LockStatus status, QCamera::LockChangeReason reason);
-
-public Q_SLOTS:
- void _q_startFocusing();
- void _q_stopFocusing();
-
void setViewfinderResolution(const QSize &resolution);
protected:
void timerEvent(QTimerEvent *event) override;
private Q_SLOTS:
- void _q_setFocusStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason);
void _q_handleCameraStatusChange(QCamera::Status status);
void _q_updateFaces();
@@ -130,7 +119,6 @@ private:
QCamera::Status m_cameraStatus;
QCameraFocus::FocusModes m_focusMode;
QCameraFocus::FocusPointMode m_focusPointMode;
- QCamera::LockStatus m_focusStatus;
QCameraFocusZone::FocusZoneStatus m_focusZoneStatus;
QPointF m_focusPoint;
QRectF m_focusRect;
diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol_p.h b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol_p.h
index 618439b4c..6a41aabc4 100644
--- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol_p.h
+++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol_p.h
@@ -81,16 +81,6 @@ public:
bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const override;
- QCamera::LockTypes supportedLocks() const override
- {
- return QCamera::NoLock;
- }
-
- QCamera::LockStatus lockStatus(QCamera::LockType /*lock*/) const override { return QCamera::Unlocked; }
-
- void searchAndLock(QCamera::LockTypes /*locks*/) override {}
- void unlock(QCamera::LockTypes /*locks*/) override {}
-
public slots:
void reloadLater();
diff --git a/src/multimedia/platform/qnx/camera/bbcameracontrol.cpp b/src/multimedia/platform/qnx/camera/bbcameracontrol.cpp
index 423a5b8ac..bafa14c0c 100644
--- a/src/multimedia/platform/qnx/camera/bbcameracontrol.cpp
+++ b/src/multimedia/platform/qnx/camera/bbcameracontrol.cpp
@@ -53,7 +53,6 @@ BbCameraControl::BbCameraControl(BbCameraSession *session, QObject *parent)
connect(m_session, SIGNAL(captureModeChanged(QCamera::CaptureModes)), this, SIGNAL(captureModeChanged(QCamera::CaptureModes)));
connect(m_session, SIGNAL(cameraOpened()), SLOT(cameraOpened()));
- connect(m_session, SIGNAL(focusStatusChanged(int)), SLOT(focusStatusChanged(int)));
}
QCamera::State BbCameraControl::state() const
@@ -96,201 +95,8 @@ bool BbCameraControl::canChangeProperty(PropertyChangeType /* changeType */, QCa
return false;
}
-QCamera::LockTypes BbCameraControl::supportedLocks() const
-{
- return (QCamera::LockFocus | QCamera::LockExposure | QCamera::LockWhiteBalance);
-}
-
-QCamera::LockStatus BbCameraControl::lockStatus(QCamera::LockType lock) const
-{
- if (!m_supportedLockTypes.testFlag(lock) || (m_session->handle() == CAMERA_HANDLE_INVALID))
- return QCamera::Locked;
-
- switch (lock) {
- case QCamera::LockExposure:
- return m_exposureLockStatus;
- case QCamera::LockWhiteBalance:
- return m_whiteBalanceLockStatus;
- case QCamera::LockFocus:
- return m_focusLockStatus;
- default:
- return QCamera::Locked;
- }
-}
-
-void BbCameraControl::searchAndLock(QCamera::LockTypes locks)
-{
- if (m_session->handle() == CAMERA_HANDLE_INVALID)
- return;
-
- // filter out unsupported locks
- locks &= m_supportedLockTypes;
-
- m_currentLockTypes |= locks;
-
- uint32_t lockModes = CAMERA_3A_NONE;
-
- switch (m_locksApplyMode) {
- case IndependentMode:
- if (m_currentLockTypes & QCamera::LockExposure)
- lockModes |= CAMERA_3A_AUTOEXPOSURE;
- if (m_currentLockTypes & QCamera::LockWhiteBalance)
- lockModes |= CAMERA_3A_AUTOWHITEBALANCE;
- if (m_currentLockTypes & QCamera::LockFocus)
- lockModes |= CAMERA_3A_AUTOFOCUS;
- break;
- case FocusExposureBoundMode:
- if ((m_currentLockTypes & QCamera::LockExposure) || (m_currentLockTypes & QCamera::LockFocus))
- lockModes = (CAMERA_3A_AUTOEXPOSURE | CAMERA_3A_AUTOFOCUS);
- break;
- case AllBoundMode:
- lockModes = (CAMERA_3A_AUTOEXPOSURE | CAMERA_3A_AUTOFOCUS | CAMERA_3A_AUTOWHITEBALANCE);
- break;
- case FocusOnlyMode:
- lockModes = CAMERA_3A_AUTOFOCUS;
- break;
- }
-
- const camera_error_t result = camera_set_3a_lock(m_session->handle(), lockModes);
-
- if (result != CAMERA_EOK) {
- qWarning() << "Unable to set lock modes:" << result;
- } else {
- if (lockModes & CAMERA_3A_AUTOFOCUS) {
- // handled by focusStatusChanged()
- }
-
- if (lockModes & CAMERA_3A_AUTOEXPOSURE) {
- m_exposureLockStatus = QCamera::Locked;
- emit lockStatusChanged(QCamera::LockExposure, QCamera::Locked, QCamera::LockAcquired);
- }
-
- if (lockModes & CAMERA_3A_AUTOWHITEBALANCE) {
- m_whiteBalanceLockStatus = QCamera::Locked;
- emit lockStatusChanged(QCamera::LockWhiteBalance, QCamera::Locked, QCamera::LockAcquired);
- }
- }
-}
-
-void BbCameraControl::unlock(QCamera::LockTypes locks)
-{
- // filter out unsupported locks
- locks &= m_supportedLockTypes;
-
- m_currentLockTypes &= ~locks;
-
- uint32_t lockModes = CAMERA_3A_NONE;
-
- switch (m_locksApplyMode) {
- case IndependentMode:
- if (m_currentLockTypes & QCamera::LockExposure)
- lockModes |= CAMERA_3A_AUTOEXPOSURE;
- if (m_currentLockTypes & QCamera::LockWhiteBalance)
- lockModes |= CAMERA_3A_AUTOWHITEBALANCE;
- if (m_currentLockTypes & QCamera::LockFocus)
- lockModes |= CAMERA_3A_AUTOFOCUS;
- break;
- case FocusExposureBoundMode:
- if ((m_currentLockTypes & QCamera::LockExposure) || (m_currentLockTypes & QCamera::LockFocus))
- lockModes = (CAMERA_3A_AUTOEXPOSURE | CAMERA_3A_AUTOFOCUS);
- break;
- case AllBoundMode:
- lockModes = (CAMERA_3A_AUTOEXPOSURE | CAMERA_3A_AUTOFOCUS | CAMERA_3A_AUTOWHITEBALANCE);
- break;
- case FocusOnlyMode:
- lockModes = CAMERA_3A_AUTOFOCUS;
- break;
- }
-
- const camera_error_t result = camera_set_3a_lock(m_session->handle(), lockModes);
-
- if (result != CAMERA_EOK) {
- qWarning() << "Unable to set lock modes:" << result;
- } else {
- if (locks.testFlag(QCamera::LockFocus)) {
- // handled by focusStatusChanged()
- }
-
- if (locks.testFlag(QCamera::LockExposure)) {
- m_exposureLockStatus = QCamera::Unlocked;
- emit lockStatusChanged(QCamera::LockExposure, QCamera::Unlocked, QCamera::UserRequest);
- }
-
- if (locks.testFlag(QCamera::LockWhiteBalance)) {
- m_whiteBalanceLockStatus = QCamera::Unlocked;
- emit lockStatusChanged(QCamera::LockWhiteBalance, QCamera::Unlocked, QCamera::UserRequest);
- }
- }
-}
-
void BbCameraControl::cameraOpened()
{
- // retrieve information about lock apply modes
- int supported = 0;
- uint32_t modes[20];
-
- const camera_error_t result = camera_get_3a_lock_modes(m_session->handle(), 20, &supported, modes);
-
- if (result == CAMERA_EOK) {
- // see API documentation of camera_get_3a_lock_modes for explanation of case discrimination below
- if (supported == 4) {
- m_locksApplyMode = IndependentMode;
- } else if (supported == 3) {
- m_locksApplyMode = FocusExposureBoundMode;
- } else if (supported == 2) {
- if (modes[0] == (CAMERA_3A_AUTOFOCUS | CAMERA_3A_AUTOEXPOSURE | CAMERA_3A_AUTOWHITEBALANCE))
- m_locksApplyMode = AllBoundMode;
- else
- m_locksApplyMode = FocusOnlyMode;
- }
- }
-
- // retrieve information about supported lock types
- m_supportedLockTypes = QCamera::NoLock;
-
- if (camera_has_feature(m_session->handle(), CAMERA_FEATURE_AUTOFOCUS))
- m_supportedLockTypes |= QCamera::LockFocus;
-
- if (camera_has_feature(m_session->handle(), CAMERA_FEATURE_AUTOEXPOSURE))
- m_supportedLockTypes |= QCamera::LockExposure;
-
- if (camera_has_feature(m_session->handle(), CAMERA_FEATURE_AUTOWHITEBALANCE))
- m_supportedLockTypes |= QCamera::LockWhiteBalance;
-
- m_focusLockStatus = QCamera::Unlocked;
- m_exposureLockStatus = QCamera::Unlocked;
- m_whiteBalanceLockStatus = QCamera::Unlocked;
-}
-
-void BbCameraControl::focusStatusChanged(int value)
-{
- const camera_focusstate_t focusState = static_cast<camera_focusstate_t>(value);
-
- switch (focusState) {
- case CAMERA_FOCUSSTATE_NONE:
- m_focusLockStatus = QCamera::Unlocked;
- emit lockStatusChanged(QCamera::LockFocus, QCamera::Unlocked, QCamera::UserRequest);
- break;
- case CAMERA_FOCUSSTATE_WAITING:
- case CAMERA_FOCUSSTATE_SEARCHING:
- m_focusLockStatus = QCamera::Searching;
- emit lockStatusChanged(QCamera::LockFocus, QCamera::Searching, QCamera::UserRequest);
- break;
- case CAMERA_FOCUSSTATE_FAILED:
- m_focusLockStatus = QCamera::Unlocked;
- emit lockStatusChanged(QCamera::LockFocus, QCamera::Unlocked, QCamera::LockFailed);
- break;
- case CAMERA_FOCUSSTATE_LOCKED:
- m_focusLockStatus = QCamera::Locked;
- emit lockStatusChanged(QCamera::LockFocus, QCamera::Locked, QCamera::LockAcquired);
- break;
- case CAMERA_FOCUSSTATE_SCENECHANGE:
- m_focusLockStatus = QCamera::Unlocked;
- emit lockStatusChanged(QCamera::LockFocus, QCamera::Unlocked, QCamera::LockTemporaryLost);
- break;
- default:
- break;
- }
}
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qnx/camera/bbcameracontrol_p.h b/src/multimedia/platform/qnx/camera/bbcameracontrol_p.h
index 277560c58..65996190e 100644
--- a/src/multimedia/platform/qnx/camera/bbcameracontrol_p.h
+++ b/src/multimedia/platform/qnx/camera/bbcameracontrol_p.h
@@ -83,25 +83,12 @@ public:
FocusOnlyMode
};
- QCamera::LockTypes supportedLocks() const override;
- QCamera::LockStatus lockStatus(QCamera::LockType lock) const override;
- void searchAndLock(QCamera::LockTypes locks) override;
- void unlock(QCamera::LockTypes locks) override;
-
private Q_SLOTS:
void cameraOpened();
- void focusStatusChanged(int value);
private:
BbCameraSession *m_session;
- LocksApplyMode m_locksApplyMode = IndependentMode;
- QCamera::LockStatus m_focusLockStatus = QCamera::Unlocked;
- QCamera::LockStatus m_exposureLockStatus = QCamera::Unlocked;
- QCamera::LockStatus m_whiteBalanceLockStatus = QCamera::Unlocked;
- QCamera::LockTypes m_currentLockTypes = QCamera::NoLock;
- QCamera::LockTypes m_supportedLockTypes = QCamera::NoLock;
-
private:
BbCameraSession *m_session;
};
diff --git a/tests/auto/unit/mockbackend/mockcameracontrol.h b/tests/auto/unit/mockbackend/mockcameracontrol.h
index 5ca149391..c79aa9f9f 100644
--- a/tests/auto/unit/mockbackend/mockcameracontrol.h
+++ b/tests/auto/unit/mockbackend/mockcameracontrol.h
@@ -102,66 +102,6 @@ public:
return m_propertyChangesSupported;
}
- QCamera::LockTypes supportedLocks() const
- {
- return QCamera::LockExposure | QCamera::LockFocus;
- }
-
- QCamera::LockStatus lockStatus(QCamera::LockType lock) const
- {
- switch (lock) {
- case QCamera::LockExposure:
- return m_exposureLock;
- case QCamera::LockFocus:
- return m_focusLock;
- default:
- return QCamera::Unlocked;
- }
- }
-
- void searchAndLock(QCamera::LockTypes locks)
- {
- if (locks & QCamera::LockExposure) {
- QCamera::LockStatus newStatus = locks & QCamera::LockFocus ? QCamera::Searching : QCamera::Locked;
-
- if (newStatus != m_exposureLock)
- emit lockStatusChanged(QCamera::LockExposure,
- m_exposureLock = newStatus,
- QCamera::UserRequest);
- }
-
- if (locks & QCamera::LockFocus) {
- emit lockStatusChanged(QCamera::LockFocus,
- m_focusLock = QCamera::Searching,
- QCamera::UserRequest);
-
- QTimer::singleShot(5, this, SLOT(focused()));
- }
- }
-
- void unlock(QCamera::LockTypes locks) {
- if (locks & QCamera::LockFocus && m_focusLock != QCamera::Unlocked) {
- emit lockStatusChanged(QCamera::LockFocus,
- m_focusLock = QCamera::Unlocked,
- QCamera::UserRequest);
- }
-
- if (locks & QCamera::LockExposure && m_exposureLock != QCamera::Unlocked) {
- emit lockStatusChanged(QCamera::LockExposure,
- m_exposureLock = QCamera::Unlocked,
- QCamera::UserRequest);
- }
- }
-
- /* helper method to emit the signal with LockChangeReason */
- void setLockChangeReason (QCamera::LockChangeReason lockChangeReason)
- {
- emit lockStatusChanged(QCamera::NoLock,
- QCamera::Unlocked,
- lockChangeReason);
-
- }
-
/* helper method to emit the signal error */
void setError(QCamera::Error err, QString errorString)
{
@@ -186,28 +126,6 @@ public:
QCamera::Status m_status;
QCameraInfo m_camera;
bool m_propertyChangesSupported;
-
-
-private slots:
- void focused()
- {
- if (m_focusLock == QCamera::Searching) {
- emit lockStatusChanged(QCamera::LockFocus,
- m_focusLock = QCamera::Locked,
- QCamera::UserRequest);
- }
-
- if (m_exposureLock == QCamera::Searching) {
- emit lockStatusChanged(QCamera::LockExposure,
- m_exposureLock = QCamera::Locked,
- QCamera::UserRequest);
- }
- }
-
-
-private:
- QCamera::LockStatus m_focusLock = QCamera::Unlocked;
- QCamera::LockStatus m_exposureLock = QCamera::Unlocked;
};
diff --git a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
index 6a4ff377f..5d22e4432 100644
--- a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
+++ b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
@@ -68,7 +68,6 @@ private slots:
void testSimpleCameraExposure();
void testSimpleCameraFocus();
void testSimpleCameraCapture();
- void testSimpleCameraLock();
void testSimpleCaptureDestination();
void testCameraWhiteBalance();
@@ -77,29 +76,20 @@ private slots:
void testCameraCapture();
void testCameraCaptureMetadata();
void testImageSettings();
- void testCameraLock();
- void testCameraLockCancel();
void testCameraEncodingProperyChange();
void testCaptureDestination();
void testConstructor();
void testCaptureMode();
void testIsCaptureModeSupported();
- void testRequestedLocks();
- void testSupportedLocks();
void testQCameraIsAvailable();
void testQCameraIsNotAvailable();
- void testSearchAndLockWithLockTypes();
void testSetCaptureMode();
- void testUnlockWithType();
void testCaptureModeChangedSignal();
- void testLockStatusChangedWithTypesSignal();
void testErrorSignal();
void testError();
void testErrorString();
void testStatus();
- void testLockType();
- void testLockChangeReason();
// Test cases to for QCameraFocus
@@ -297,44 +287,6 @@ void tst_QCamera::testSimpleCameraCapture()
QVERIFY(!imageCapture.errorString().isEmpty());
}
-void tst_QCamera::testSimpleCameraLock()
-{
- MockMediaRecorderService::simpleCamera = true;
-
- QCamera camera;
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockExposure), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockFocus), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockWhiteBalance), QCamera::Unlocked);
-
- QSignalSpy lockedSignal(&camera, SIGNAL(locked()));
- QSignalSpy lockFailedSignal(&camera, SIGNAL(lockFailed()));
- QSignalSpy lockStatusChangedSignal(&camera, SIGNAL(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)));
-
- camera.searchAndLock();
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockExposure), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockFocus), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockWhiteBalance), QCamera::Unlocked);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 0);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
-
- camera.unlock();
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockExposure), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockFocus), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockWhiteBalance), QCamera::Unlocked);
-
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 0);
-}
-
void tst_QCamera::testSimpleCaptureDestination()
{
MockMediaRecorderService::simpleCamera = true;
@@ -765,82 +717,6 @@ void tst_QCamera::testImageSettings()
QVERIFY(settings1 != settings2);
}
-void tst_QCamera::testCameraLock()
-{
- QCamera camera;
-
- camera.focus()->setFocusMode(QCameraFocus::AutoFocus);
-
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
-
- QSignalSpy lockedSignal(&camera, SIGNAL(locked()));
- QSignalSpy lockFailedSignal(&camera, SIGNAL(lockFailed()));
- QSignalSpy lockStatusChangedSignal(&camera, SIGNAL(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)));
-
- camera.searchAndLock();
- QCOMPARE(camera.lockStatus(), QCamera::Searching);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
-
- QTRY_COMPARE(camera.lockStatus(), QCamera::Locked);
- QCOMPARE(lockedSignal.count(), 1);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
-
- camera.searchAndLock();
- QCOMPARE(camera.lockStatus(), QCamera::Searching);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
-
- camera.unlock();
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-}
-
-void tst_QCamera::testCameraLockCancel()
-{
- QCamera camera;
-
- camera.focus()->setFocusMode(QCameraFocus::AutoFocus);
-
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
-
- QSignalSpy lockedSignal(&camera, SIGNAL(locked()));
- QSignalSpy lockFailedSignal(&camera, SIGNAL(lockFailed()));
- QSignalSpy lockStatusChangedSignal(&camera, SIGNAL(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)));
- camera.searchAndLock();
- QCOMPARE(camera.lockStatus(), QCamera::Searching);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
-
- camera.unlock();
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-}
-
void tst_QCamera::testCameraEncodingProperyChange()
{
QCamera camera;
@@ -1009,14 +885,6 @@ void tst_QCamera::testEnumDebug()
qDebug() << QCamera::CaptureVideo;
QTest::ignoreMessage(QtDebugMsg, "QCamera::CameraError");
qDebug() << QCamera::CameraError;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::Unlocked");
- qDebug() << QCamera::Unlocked;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::LockAcquired");
- qDebug() << QCamera::LockAcquired;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::NoLock");
- qDebug() << QCamera::NoLock;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::LockExposure");
- qDebug() << QCamera::LockExposure;
QTest::ignoreMessage(QtDebugMsg, "QCameraInfo::FrontFace ");
qDebug() << QCameraInfo::FrontFace;
}
@@ -1119,45 +987,6 @@ void tst_QCamera::testIsCaptureModeSupported()
QVERIFY(camera.isCaptureModeSupported(QCamera::CaptureVideo) == true);
}
-/* Test case for requestedLocks. LockType is stored in OR combination so all
- types of combinations are verified here.*/
-void tst_QCamera::testRequestedLocks()
-{
- QCamera camera;
-
- QCOMPARE(camera.requestedLocks(),QCamera::NoLock);
-
- camera.searchAndLock(QCamera::LockExposure);
- QCOMPARE(camera.requestedLocks(),QCamera::LockExposure);
-
- camera.unlock();
- camera.searchAndLock(QCamera::LockFocus);
- QCOMPARE(camera.requestedLocks(),QCamera::LockFocus );
-
- camera.unlock();
- camera.searchAndLock(QCamera::LockWhiteBalance);
- QCOMPARE(camera.requestedLocks(),QCamera::NoLock);
-
- camera.unlock();
- camera.searchAndLock(QCamera::LockExposure |QCamera::LockFocus );
- QCOMPARE(camera.requestedLocks(),QCamera::LockExposure |QCamera::LockFocus );
- camera.searchAndLock(QCamera::LockWhiteBalance);
- QCOMPARE(camera.requestedLocks(),QCamera::LockExposure |QCamera::LockFocus);
- camera.unlock(QCamera::LockExposure);
- QCOMPARE(camera.requestedLocks(),QCamera::LockFocus);
- camera.unlock(QCamera::LockFocus);
- camera.searchAndLock(QCamera::LockExposure |QCamera::LockWhiteBalance );
- QCOMPARE(camera.requestedLocks(),QCamera::LockExposure);
-}
-
-/* Test case for supportedLocks() */
-void tst_QCamera::testSupportedLocks()
-{
- QCamera camera;
-
- QCOMPARE(camera.supportedLocks(),QCamera::LockExposure | QCamera::LockFocus);
-}
-
/* Test case for isAvailable */
void tst_QCamera::testQCameraIsAvailable()
{
@@ -1177,28 +1006,6 @@ void tst_QCamera::testQCameraIsNotAvailable()
integration->setFlags({});
}
-/* Test case for searchAndLock ( QCamera::LockTypes locks ) */
-void tst_QCamera::testSearchAndLockWithLockTypes()
-{
- QCamera camera;
-
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
-
- /* Spy the signals */
- QSignalSpy lockedSignal(&camera, SIGNAL(locked()));
- QSignalSpy lockFailedSignal(&camera, SIGNAL(lockFailed()));
- QSignalSpy lockStatusChangedSignal(&camera, SIGNAL(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)));
- QSignalSpy lockStatusChangedSignalWithType(&camera, SIGNAL(lockStatusChanged(QCamera::LockType,QCamera::LockStatus,QCamera::LockChangeReason)));
-
- /* search and lock the camera with QCamera::LockExposure and verify if the signal is emitted correctly */
- camera.searchAndLock(QCamera::LockExposure);
- QCOMPARE(camera.lockStatus(), QCamera::Locked);
- QCOMPARE(lockedSignal.count(), 1);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
-}
-
/* Test case for setCaptureMode() */
void tst_QCamera::testSetCaptureMode()
{
@@ -1212,70 +1019,6 @@ void tst_QCamera::testSetCaptureMode()
QVERIFY(camera.captureMode() == QCamera::CaptureStillImage);
}
-/* Test case for unlock (QCamera::LockTypes) */
-void tst_QCamera::testUnlockWithType()
-{
- QCamera camera;
-
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
-
- /* Spy the signal */
- QSignalSpy lockedSignal(&camera, SIGNAL(locked()));
- QSignalSpy lockFailedSignal(&camera, SIGNAL(lockFailed()));
- QSignalSpy lockStatusChangedSignal(&camera, SIGNAL(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)));
- QSignalSpy lockStatusChangedSignalWithType(&camera, SIGNAL(lockStatusChanged(QCamera::LockType,QCamera::LockStatus,QCamera::LockChangeReason)));
-
- /* lock the camera with QCamera::LockExposure and Verify if the signal is emitted correctly */
- camera.searchAndLock(QCamera::LockExposure);
- QCOMPARE(camera.lockStatus(), QCamera::Locked);
- QCOMPARE(lockedSignal.count(), 1);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
-
- /* Clear the signal */
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
- lockStatusChangedSignalWithType.clear();
-
- /* Unlock the camera and verify if the signal is emitted correctly */
- camera.unlock(QCamera::LockExposure);
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
- QCamera::LockType lockType = qvariant_cast<QCamera::LockType >(lockStatusChangedSignalWithType.at(0).at(0));
- QCamera::LockStatus lockStatus = qvariant_cast<QCamera::LockStatus >(lockStatusChangedSignalWithType.at(0).at(1));
- QVERIFY(lockType == QCamera::LockExposure);
- QVERIFY(lockStatus == QCamera::Unlocked);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
- lockStatusChangedSignalWithType.clear();
-
- /* Lock the camera with QCamera::LockFocus */
- camera.searchAndLock(QCamera::LockFocus);
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
- lockStatusChangedSignalWithType.clear();
-
- /* Unlock the camera and Verify if the signal is emitted correctly */
- camera.unlock(QCamera::LockFocus);
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
- lockType = qvariant_cast<QCamera::LockType >(lockStatusChangedSignalWithType.at(0).at(0));
- lockStatus = qvariant_cast<QCamera::LockStatus >(lockStatusChangedSignalWithType.at(0).at(1));
- QVERIFY(lockType == QCamera::LockFocus);
- QVERIFY(lockStatus == QCamera::Unlocked);
-}
-
/* Test case for signal captureModeChanged(QCamera::CaptureModes) */
void tst_QCamera::testCaptureModeChangedSignal()
{
@@ -1295,41 +1038,6 @@ void tst_QCamera::testCaptureModeChangedSignal()
QVERIFY(lockCaptureMode == QCamera::CaptureVideo);
}
-/* Test case for signal lockStatusChanged(QCamera::LockType,QCamera::LockStatus, QCamera::LockChangeReason) */
-void tst_QCamera::testLockStatusChangedWithTypesSignal()
-{
- QCamera camera;
-
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
-
- /* Spy the signal lockStatusChanged(QCamera::LockType,QCamera::LockStatus, QCamera::LockChangeReason) */
- QSignalSpy lockStatusChangedSignalWithType(&camera, SIGNAL(lockStatusChanged(QCamera::LockType,QCamera::LockStatus,QCamera::LockChangeReason)));
-
- /* Lock the camera with type QCamera::LockExposure */
- camera.searchAndLock(QCamera::LockExposure);
-
- /* Verify if the signal is emitted and lock status is set correclty */
- QCOMPARE(camera.lockStatus(), QCamera::Locked);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
- QCamera::LockType lockType = qvariant_cast<QCamera::LockType >(lockStatusChangedSignalWithType.at(0).at(0));
- QCamera::LockStatus lockStatus = qvariant_cast<QCamera::LockStatus >(lockStatusChangedSignalWithType.at(0).at(1));
- QVERIFY(lockType == QCamera::LockExposure);
- QVERIFY(lockStatus == QCamera::Locked);
-
- lockStatusChangedSignalWithType.clear();
-
- /* Unlock the camera */
- camera.unlock();
-
- /* Verify if the signal is emitted and lock status is set correclty */
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
- lockType = qvariant_cast<QCamera::LockType >(lockStatusChangedSignalWithType.at(0).at(0));
- lockStatus = qvariant_cast<QCamera::LockStatus >(lockStatusChangedSignalWithType.at(0).at(1));
- QVERIFY(lockType == QCamera::LockExposure);
- QVERIFY(lockStatus == QCamera::Unlocked);
-}
-
/* Test case for verifying if error signal generated correctly */
void tst_QCamera::testErrorSignal()
{
@@ -1425,32 +1133,6 @@ void tst_QCamera::testStatus()
QVERIFY(camera.status() == QCamera::UnavailableStatus);
}
-/* Test case for verifying default locktype QCamera::NoLock */
-void tst_QCamera::testLockType()
-{
- QCamera camera;
-
- QCOMPARE(camera.requestedLocks(),QCamera::NoLock);
-}
-
-/* Test case for QCamera::LockChangeReason with QCamera::LockAcquired */
-void tst_QCamera::testLockChangeReason()
-{
- QCamera camera;
- auto *service = integration->lastCaptureService();
-
- QSignalSpy lockStatusChangedSignalWithType(&camera, SIGNAL(lockStatusChanged(QCamera::LockType,QCamera::LockStatus,QCamera::LockChangeReason)));
-
- /* Set the lockChangeReason */
- service->mockCameraControl->setLockChangeReason(QCamera::LockAcquired);
-
- /* Verify if lockChangeReson is eqaul toQCamera::LockAcquired */
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
- QCamera::LockChangeReason LockChangeReason = qvariant_cast<QCamera::LockChangeReason >(lockStatusChangedSignalWithType.at(0).at(2));
- QVERIFY(LockChangeReason == QCamera::LockAcquired);
-
-}
-
/* All the enums test case for QCameraControl class*/
void tst_QCamera::testEnumsOfQCameraControl()
{