summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/imports/multimedia/plugins.qmltypes33
-rw-r--r--src/imports/multimedia/qdeclarativecamera_p.h8
-rw-r--r--src/imports/multimedia/qdeclarativecamerafocus.cpp80
-rw-r--r--src/imports/multimedia/qdeclarativecamerafocus_p.h17
-rw-r--r--src/multimedia/camera/qcamerafocus.cpp60
-rw-r--r--src/multimedia/camera/qcamerafocus.h19
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol.cpp65
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol_p.h22
-rw-r--r--src/multimedia/platform/darwin/camera/avfcamerafocuscontrol.mm85
-rw-r--r--src/multimedia/platform/darwin/camera/avfcamerafocuscontrol_p.h7
-rw-r--r--src/multimedia/platform/gstreamer/camerabin/camerabinfocus.cpp84
-rw-r--r--src/multimedia/platform/gstreamer/camerabin/camerabinfocus_p.h6
-rw-r--r--src/multimedia/platform/qnx/camera/bbcamerafocuscontrol.cpp77
-rw-r--r--src/multimedia/platform/qnx/camera/bbcamerafocuscontrol_p.h6
-rw-r--r--src/multimedia/platform/qplatformcamerafocus_p.h9
-rw-r--r--tests/auto/unit/mockbackend/mockcamerafocuscontrol.h27
-rw-r--r--tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp18
17 files changed, 71 insertions, 552 deletions
diff --git a/src/imports/multimedia/plugins.qmltypes b/src/imports/multimedia/plugins.qmltypes
index c19995431..09c1d39a7 100644
--- a/src/imports/multimedia/plugins.qmltypes
+++ b/src/imports/multimedia/plugins.qmltypes
@@ -613,15 +613,6 @@ Module {
}
}
Enum {
- name: "FocusPointMode"
- values: {
- "FocusPointAuto": 0,
- "FocusPointCenter": 1,
- "FocusPointFaceDetection": 2,
- "FocusPointCustom": 3
- }
- }
- Enum {
name: "Availability"
values: {
"Available": 0,
@@ -970,29 +961,14 @@ Module {
"FocusManual": 5
}
}
- Enum {
- name: "FocusPointMode"
- values: {
- "FocusPointAuto": 0,
- "FocusPointCenter": 1,
- "FocusPointFaceDetection": 2,
- "FocusPointCustom": 3
- }
- }
Property { name: "focusMode"; type: "FocusMode" }
Property { name: "supportedFocusModes"; revision: 1; type: "QVariantList"; isReadonly: true }
- Property { name: "focusPointMode"; type: "FocusPointMode" }
- Property { name: "supportedFocusPointModes"; revision: 1; type: "QVariantList"; isReadonly: true }
Property { name: "customFocusPoint"; type: "QPointF" }
Signal {
name: "focusModeChanged"
Parameter { type: "FocusMode" }
}
Signal {
- name: "focusPointModeChanged"
- Parameter { type: "FocusPointMode" }
- }
- Signal {
name: "customFocusPointChanged"
Parameter { type: "QPointF" }
}
@@ -1001,10 +977,6 @@ Module {
Parameter { type: "FocusMode" }
}
Method {
- name: "setFocusPointMode"
- Parameter { name: "mode"; type: "FocusPointMode" }
- }
- Method {
name: "setCustomFocusPoint"
Parameter { name: "point"; type: "QPointF" }
}
@@ -1013,11 +985,6 @@ Module {
type: "bool"
Parameter { name: "mode"; type: "FocusMode" }
}
- Method {
- name: "isFocusPointModeSupported"
- type: "bool"
- Parameter { name: "mode"; type: "FocusPointMode" }
- }
}
Component {
name: "QDeclarativeCameraImageProcessing"
diff --git a/src/imports/multimedia/qdeclarativecamera_p.h b/src/imports/multimedia/qdeclarativecamera_p.h
index 1c2da5384..b0f617865 100644
--- a/src/imports/multimedia/qdeclarativecamera_p.h
+++ b/src/imports/multimedia/qdeclarativecamera_p.h
@@ -110,7 +110,6 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus
Q_ENUMS(ExposureMode)
Q_ENUMS(FocusMode)
- Q_ENUMS(FocusPointMode)
public:
enum Position {
@@ -187,13 +186,6 @@ public:
#endif
};
- enum FocusPointMode {
- FocusPointAuto = QCameraFocus::FocusPointAuto,
- FocusPointCenter = QCameraFocus::FocusPointCenter,
- FocusPointFaceDetection = QCameraFocus::FocusPointFaceDetection,
- FocusPointCustom = QCameraFocus::FocusPointCustom
- };
-
QDeclarativeCamera(QObject *parent = 0);
~QDeclarativeCamera();
diff --git a/src/imports/multimedia/qdeclarativecamerafocus.cpp b/src/imports/multimedia/qdeclarativecamerafocus.cpp
index 02d4995be..0a50b12f8 100644
--- a/src/imports/multimedia/qdeclarativecamerafocus.cpp
+++ b/src/imports/multimedia/qdeclarativecamerafocus.cpp
@@ -68,7 +68,6 @@ QT_BEGIN_NAMESPACE
focus {
focusMode: Camera.FocusMacro
- focusPointMode: Camera.FocusPointCustom
customFocusPoint: Qt.point(0.2, 0.2) // Focus relative to top-left corner
}
}
@@ -104,7 +103,6 @@ QDeclarativeCameraFocus::QDeclarativeCameraFocus(QCamera *camera, QObject *paren
}
emit supportedFocusModeChanged();
- emit supportedFocusPointModesChanged();
});
}
@@ -114,9 +112,8 @@ QDeclarativeCameraFocus::~QDeclarativeCameraFocus() = default;
This property holds the current camera focus mode.
- In automatic focusing modes, the \l focusPointMode
- property provides information and control
- over how automatic focusing is performed.
+ In automatic focusing modes, the \l focusPoint
+ property provides a hint on where the camera should focus.
*/
/*!
@@ -149,9 +146,9 @@ QDeclarativeCameraFocus::~QDeclarativeCameraFocus() = default;
\li Manual or fixed focus mode.
\endtable
- In automatic focusing modes, the \l focusPointMode property
+ In automatic focusing modes, the \l focusPoint property
provides information and control
- over how automatic focusing is performed.
+ over the area of the image that is being focused.
*/
QDeclarativeCameraFocus::FocusMode QDeclarativeCameraFocus::focusMode() const
{
@@ -185,75 +182,6 @@ void QDeclarativeCameraFocus::setFocusMode(QDeclarativeCameraFocus::FocusMode mo
emit focusModeChanged(focusMode());
}
}
-/*!
- \property QDeclarativeCameraFocus::focusPointMode
-
- This property holds the current camera focus point mode. It is used in
- automatic focusing modes to determine what to focus on.
-
- If the current focus point mode is \l QCameraFocus::FocusPointCustom, the
- \l customFocusPoint property allows you to specify which part of
- the frame to focus on.
-*/
-/*!
- \qmlproperty enumeration CameraFocus::focusPointMode
-
- This property holds the current camera focus point mode. It is used in automatic
- focusing modes to determine what to focus on. If the current
- focus point mode is \c Camera.FocusPointCustom, the \l customFocusPoint
- property allows you to specify which part of the frame to focus on.
-
- The property can take one of the following values:
- \table
- \header
- \li Value
- \li Description
- \row
- \li FocusPointAuto
- \li Automatically select one or multiple focus points.
- \row
- \li FocusPointCenter
- \li Focus to the frame center.
- \row
- \li FocusPointFaceDetection
- \li Focus on faces in the frame.
- \row
- \li FocusPointCustom
- \li Focus to the custom point, defined by the customFocusPoint property.
- \endtable
-*/
-QDeclarativeCameraFocus::FocusPointMode QDeclarativeCameraFocus::focusPointMode() const
-{
- return QDeclarativeCameraFocus::FocusPointMode(m_focus->focusPointMode());
-}
-
-/*!
- \qmlproperty list<enumeration> CameraFocus::supportedFocusPointModes
-
- This property holds the supported focus point modes of the camera.
-
- \since 5.10
- \sa focusPointMode
-*/
-QVariantList QDeclarativeCameraFocus::supportedFocusPointModes() const
-{
- QVariantList supportedModes;
-
- for (int i = int(FocusPointAuto); i <= int(FocusPointCustom); i++) {
- if (m_focus->isFocusPointModeSupported(QCameraFocus::FocusPointMode(i)))
- supportedModes.append(i);
- }
-
- return supportedModes;
-}
-
-void QDeclarativeCameraFocus::setFocusPointMode(QDeclarativeCameraFocus::FocusPointMode mode)
-{
- if (mode != focusPointMode()) {
- m_focus->setFocusPointMode(QCameraFocus::FocusPointMode(mode));
- emit focusPointModeChanged(focusPointMode());
- }
-}
/*!
\property QDeclarativeCameraFocus::customFocusPoint
diff --git a/src/imports/multimedia/qdeclarativecamerafocus_p.h b/src/imports/multimedia/qdeclarativecamerafocus_p.h
index c9919e332..1314e8d6d 100644
--- a/src/imports/multimedia/qdeclarativecamerafocus_p.h
+++ b/src/imports/multimedia/qdeclarativecamerafocus_p.h
@@ -67,13 +67,9 @@ class QDeclarativeCameraFocus : public QObject
Q_PROPERTY(FocusMode focusMode READ focusMode WRITE setFocusMode NOTIFY focusModeChanged)
Q_PROPERTY(QVariantList supportedFocusMode READ supportedFocusMode NOTIFY supportedFocusModeChanged REVISION 1)
- Q_PROPERTY(FocusPointMode focusPointMode READ focusPointMode WRITE setFocusPointMode NOTIFY focusPointModeChanged)
- Q_PROPERTY(QVariantList supportedFocusPointModes READ supportedFocusPointModes NOTIFY supportedFocusPointModesChanged REVISION 1)
-
Q_PROPERTY(QPointF customFocusPoint READ customFocusPoint WRITE setCustomFocusPoint NOTIFY customFocusPointChanged)
Q_ENUMS(FocusMode)
- Q_ENUMS(FocusPointMode)
public:
enum FocusMode {
FocusModeAuto = QCameraFocus::FocusModeAuto,
@@ -92,33 +88,20 @@ public:
#endif
};
- enum FocusPointMode {
- FocusPointAuto = QCameraFocus::FocusPointAuto,
- FocusPointCenter = QCameraFocus::FocusPointCenter,
- FocusPointFaceDetection = QCameraFocus::FocusPointFaceDetection,
- FocusPointCustom = QCameraFocus::FocusPointCustom
- };
-
~QDeclarativeCameraFocus();
FocusMode focusMode() const;
QVariantList supportedFocusMode() const;
- FocusPointMode focusPointMode() const;
- QVariantList supportedFocusPointModes() const;
-
QPointF customFocusPoint() const;
public Q_SLOTS:
void setFocusMode(FocusMode);
- void setFocusPointMode(FocusPointMode mode);
void setCustomFocusPoint(const QPointF &point);
Q_SIGNALS:
void focusModeChanged(FocusMode);
void supportedFocusModeChanged();
- void focusPointModeChanged(FocusPointMode);
- void supportedFocusPointModesChanged();
void customFocusPointChanged(const QPointF &);
private:
diff --git a/src/multimedia/camera/qcamerafocus.cpp b/src/multimedia/camera/qcamerafocus.cpp
index 1f140674d..5912c33ce 100644
--- a/src/multimedia/camera/qcamerafocus.cpp
+++ b/src/multimedia/camera/qcamerafocus.cpp
@@ -83,11 +83,8 @@ QT_BEGIN_NAMESPACE
\section2 Some notes on autofocus
Some hardware supports a movable focus lens assembly, and typically
this hardware also supports automatically focusing via some heuristic.
- You can influence this via the \l FocusPointMode setting - typically
- the center of the frame is brought into focus, but some hardware
- also supports focusing on any faces detected in the frame, or on
- a specific point (usually provided by a user in a "touch to focus"
- scenario).
+ You can influence this via the \l focusPoint property (usually provided
+ by a user in a "touch to focus" scenario).
*/
#define Q_DECLARE_NON_CONST_PUBLIC(Class) \
@@ -105,6 +102,7 @@ public:
QPlatformCameraFocus *focusControl;
bool available;
float zoomFactor = 1.;
+ QPointF customFocusPoint{-1, -1};
};
#undef Q_DECLARE_NON_CONST_PUBLIC
@@ -188,36 +186,13 @@ bool QCameraFocus::isFocusModeSupported(FocusMode mode) const
}
/*!
- \property QCameraFocus::focusPointMode
- \brief the current camera focus point selection mode.
-
- If the camera focus mode is set to use an autofocusing mode,
- this property controls the way the camera will select areas
- of the frame to use for autofocusing.
-
- \sa QCameraFocus::isFocusPointModeSupported()
-*/
-
-QCameraFocus::FocusPointMode QCameraFocus::focusPointMode() const
-{
- Q_D(const QCameraFocus);
- return d->focusControl ? d->focusControl->focusPointMode() : QCameraFocus::FocusPointAuto;
-}
-
-void QCameraFocus::setFocusPointMode(QCameraFocus::FocusPointMode mode)
-{
- Q_D(QCameraFocus);
- if (d->focusControl)
- d->focusControl->setFocusPointMode(mode);
-}
-
-/*!
- Returns true if focus point \a mode is supported.
+ Returns the point currently used by the auto focus system to focus onto.
*/
-bool QCameraFocus::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
+QPointF QCameraFocus::focusPoint() const
{
Q_D(const QCameraFocus);
- return d->focusControl ? d->focusControl->isFocusPointModeSupported(mode) : false;
+ return d->focusControl ? d->focusControl->focusPoint() : QPointF(-1., -1.);
+
}
/*!
@@ -232,14 +207,24 @@ bool QCameraFocus::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode)
QPointF QCameraFocus::customFocusPoint() const
{
Q_D(const QCameraFocus);
- return d->focusControl ? d->focusControl->customFocusPoint() : QPointF(0.5,0.5);
+ return d->customFocusPoint;
}
void QCameraFocus::setCustomFocusPoint(const QPointF &point)
{
Q_D(QCameraFocus);
+ if (d->customFocusPoint == point)
+ return;
+ d->customFocusPoint = point;
if (d->focusControl)
d->focusControl->setCustomFocusPoint(point);
+ Q_EMIT customFocusPointChanged();
+}
+
+bool QCameraFocus::isCustomFocusPointSupported() const
+{
+ Q_D(const QCameraFocus);
+ return d->focusControl ? d->focusControl->isCustomFocusPointSupported() : false;
}
/*!
@@ -336,15 +321,6 @@ void QCameraFocus::zoomTo(float factor, float rate)
*/
/*!
- \enum QCameraFocus::FocusPointMode
-
- \value FocusPointAuto Automatically select one or multiple focus points.
- \value FocusPointCenter Focus to the frame center.
- \value FocusPointFaceDetection Focus on faces in the frame.
- \value FocusPointCustom Focus to the custom point, defined by QCameraFocus::customFocusPoint property.
-*/
-
-/*!
\fn void QCameraFocus::opticalZoomChanged(qreal value)
Signal emitted when optical zoom value changes to new \a value.
diff --git a/src/multimedia/camera/qcamerafocus.h b/src/multimedia/camera/qcamerafocus.h
index 130a20e00..524439b31 100644
--- a/src/multimedia/camera/qcamerafocus.h
+++ b/src/multimedia/camera/qcamerafocus.h
@@ -63,13 +63,11 @@ class Q_MULTIMEDIA_EXPORT QCameraFocus : public QObject
Q_OBJECT
Q_PROPERTY(FocusMode focusMode READ focusMode WRITE setFocusMode)
- Q_PROPERTY(FocusPointMode focusPointMode READ focusPointMode WRITE setFocusPointMode)
- Q_PROPERTY(QPointF customFocusPoint READ customFocusPoint WRITE setCustomFocusPoint)
+ Q_PROPERTY(QPointF customFocusPoint READ customFocusPoint WRITE setCustomFocusPoint NOTIFY customFocusPointChanged)
Q_PROPERTY(float zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged)
Q_PROPERTY(float focusDistance READ focusDistance WRITE setFocusDistance NOTIFY focusDistanceChanged)
Q_ENUMS(FocusMode)
- Q_ENUMS(FocusPointMode)
public:
enum FocusMode {
FocusModeAuto,
@@ -88,24 +86,17 @@ public:
#endif
};
- enum FocusPointMode {
- FocusPointAuto,
- FocusPointCenter,
- FocusPointFaceDetection,
- FocusPointCustom
- };
-
bool isAvailable() const;
FocusMode focusMode() const;
void setFocusMode(FocusMode mode);
bool isFocusModeSupported(FocusMode mode) const;
- FocusPointMode focusPointMode() const;
- void setFocusPointMode(FocusPointMode mode);
- bool isFocusPointModeSupported(FocusPointMode) const;
+ QPointF focusPoint() const;
+
QPointF customFocusPoint() const;
void setCustomFocusPoint(const QPointF &point);
+ bool isCustomFocusPointSupported() const;
void setFocusDistance(float d);
float focusDistance() const;
@@ -120,6 +111,7 @@ public:
Q_SIGNALS:
void zoomFactorChanged(float);
void focusDistanceChanged(float);
+ void customFocusPointChanged();
protected:
~QCameraFocus();
@@ -136,6 +128,5 @@ private:
QT_END_NAMESPACE
Q_MEDIA_ENUM_DEBUG(QCameraFocus, FocusMode)
-Q_MEDIA_ENUM_DEBUG(QCameraFocus, FocusPointMode)
#endif // QCAMERAFOCUS_H
diff --git a/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol.cpp b/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol.cpp
index 03d13b1c3..42bb3c842 100644
--- a/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol.cpp
+++ b/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol.cpp
@@ -63,8 +63,7 @@ QAndroidCameraFocusControl::QAndroidCameraFocusControl(QAndroidCameraSession *se
: QPlatformCameraFocus()
, m_session(session)
, m_focusMode(QCameraFocus::AutoFocus)
- , m_focusPointMode(QCameraFocus::FocusPointAuto)
- , m_actualFocusPoint(0.5, 0.5)
+ , m_focusPoint(0.5, 0.5)
, m_continuousPictureFocusSupported(false)
, m_continuousVideoFocusSupported(false)
{
@@ -124,55 +123,25 @@ bool QAndroidCameraFocusControl::isFocusModeSupported(QCameraFocus::FocusMode mo
return m_session->camera() ? m_supportedFocusModes.contains(mode) : false;
}
-QCameraFocus::FocusPointMode QAndroidCameraFocusControl::focusPointMode() const
+bool QAndroidCameraFocusControl::isCustomFocusPointSupported() const
{
- return m_focusPointMode;
+ return m_focusPointSupported;
}
-void QAndroidCameraFocusControl::setFocusPointMode(QCameraFocus::FocusPointMode mode)
+QPointF QAndroidCameraFocusControl::focusPoint() const
{
- if (!m_session->camera()) {
- setFocusPointModeHelper(mode);
- return;
- }
-
- if (isFocusPointModeSupported(mode)) {
- if (mode == QCameraFocus::FocusPointCustom) {
- m_actualFocusPoint = m_customFocusPoint;
- } else {
- // FocusPointAuto | FocusPointCenter
- // note: there is no way to know the actual focus point in FocusPointAuto mode,
- // so just report the focus point to be at the center of the frame
- m_actualFocusPoint = QPointF(0.5, 0.5);
- }
-
- setFocusPointModeHelper(mode);
-
- setCameraFocusArea();
- }
-}
-
-bool QAndroidCameraFocusControl::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
-{
- return m_session->camera() ? m_supportedFocusPointModes.contains(mode) : false;
-}
-
-QPointF QAndroidCameraFocusControl::customFocusPoint() const
-{
- return m_customFocusPoint;
+ return m_focusPoint;
}
void QAndroidCameraFocusControl::setCustomFocusPoint(const QPointF &point)
{
- if (m_customFocusPoint != point) {
- m_customFocusPoint = point;
- emit customFocusPointChanged(m_customFocusPoint);
+ if (m_focusPoint != point) {
+ m_focusPoint = point;
+ emit customFocusPointChanged(m_focusPoint);
}
- if (m_session->camera() && m_focusPointMode == QCameraFocus::FocusPointCustom) {
- m_actualFocusPoint = m_customFocusPoint;
+ if (m_session->camera())
setCameraFocusArea();
- }
}
void QAndroidCameraFocusControl::onCameraOpened()
@@ -187,7 +156,7 @@ void QAndroidCameraFocusControl::onCameraOpened()
m_supportedFocusModes.clear();
m_continuousPictureFocusSupported = false;
m_continuousVideoFocusSupported = false;
- m_supportedFocusPointModes.clear();
+ m_focusPointSupported = false;
QStringList focusModes = m_session->camera()->getSupportedFocusModes();
for (int i = 0; i < focusModes.size(); ++i) {
@@ -209,18 +178,14 @@ void QAndroidCameraFocusControl::onCameraOpened()
}
}
- m_supportedFocusPointModes << QCameraFocus::FocusPointAuto;
if (m_session->camera()->getMaxNumFocusAreas() > 0)
- m_supportedFocusPointModes << QCameraFocus::FocusPointCenter << QCameraFocus::FocusPointCustom;
+ m_focusPointSupported = true;
if (!m_supportedFocusModes.contains(m_focusMode))
setFocusModeHelper(QCameraFocus::AutoFocus);
- if (!m_supportedFocusPointModes.contains(m_focusPointMode))
- setFocusPointModeHelper(QCameraFocus::FocusPointAuto);
setFocusMode(m_focusMode);
- setCustomFocusPoint(m_customFocusPoint);
- setFocusPointMode(m_focusPointMode);
+ setCustomFocusPoint(m_focusPoint);
if (m_session->camera()->isZoomSupported()) {
m_zoomRatios = m_session->camera()->getZoomRatios();
@@ -238,7 +203,7 @@ void QAndroidCameraFocusControl::onCameraOpened()
void QAndroidCameraFocusControl::setCameraFocusArea()
{
QList<QRect> areas;
- if (m_focusPointMode != QCameraFocus::FocusPointAuto) {
+ if (QRectF(0., 0., 1., 1.).contains(m_focusPoint)) {
// in FocusPointAuto mode, leave the area list empty
// to let the driver choose the focus point.
QSize viewportSize = m_session->camera()->previewSize();
@@ -249,10 +214,10 @@ void QAndroidCameraFocusControl::setCameraFocusArea()
// Set up a 50x50 pixel focus area around the focal point
QSizeF focusSize(50.f / viewportSize.width(), 50.f / viewportSize.height());
float x = qBound(qreal(0),
- m_actualFocusPoint.x() - (focusSize.width() / 2),
+ m_focusPoint.x() - (focusSize.width() / 2),
1.f - focusSize.width());
float y = qBound(qreal(0),
- m_actualFocusPoint.y() - (focusSize.height() / 2),
+ m_focusPoint.y() - (focusSize.height() / 2),
1.f - focusSize.height());
QRectF area(QPointF(x, y), focusSize);
diff --git a/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol_p.h b/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol_p.h
index 8149fcbdc..5b72f978d 100644
--- a/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol_p.h
+++ b/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol_p.h
@@ -66,10 +66,9 @@ public:
QCameraFocus::FocusMode focusMode() const override;
void setFocusMode(QCameraFocus::FocusMode mode) override;
bool isFocusModeSupported(QCameraFocus::FocusMode mode) const override;
- QCameraFocus::FocusPointMode focusPointMode() const override;
- void setFocusPointMode(QCameraFocus::FocusPointMode mode) override;
- bool isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const override;
- QPointF customFocusPoint() const override;
+
+ bool isCustomFocusPointSupported() const override;
+ QPointF focusPoint() const override;
void setCustomFocusPoint(const QPointF &point) override;
ZoomRange zoomFactorRange() const override;
@@ -91,28 +90,17 @@ private:
}
}
- inline void setFocusPointModeHelper(QCameraFocus::FocusPointMode mode)
- {
- if (m_focusPointMode != mode) {
- m_focusPointMode = mode;
- emit focusPointModeChanged(mode);
- }
- }
-
void setCameraFocusArea();
QAndroidCameraSession *m_session;
QCameraFocus::FocusMode m_focusMode;
- QCameraFocus::FocusPointMode m_focusPointMode;
- QPointF m_actualFocusPoint;
- QPointF m_customFocusPoint;
+ QPointF m_focusPoint;
QList<QCameraFocus::FocusMode> m_supportedFocusModes;
bool m_continuousPictureFocusSupported;
bool m_continuousVideoFocusSupported;
-
- QList<QCameraFocus::FocusPointMode> m_supportedFocusPointModes;
+ bool m_focusPointSupported = false;
float m_maximumZoom;
QList<int> m_zoomRatios;
diff --git a/src/multimedia/platform/darwin/camera/avfcamerafocuscontrol.mm b/src/multimedia/platform/darwin/camera/avfcamerafocuscontrol.mm
index 8f34d8f7e..628394686 100644
--- a/src/multimedia/platform/darwin/camera/avfcamerafocuscontrol.mm
+++ b/src/multimedia/platform/darwin/camera/avfcamerafocuscontrol.mm
@@ -62,13 +62,6 @@ bool qt_focus_mode_supported(QCameraFocus::FocusMode mode)
|| mode == QCameraFocus::ManualFocus;
}
-bool qt_focus_point_mode_supported(QCameraFocus::FocusPointMode mode)
-{
- return mode == QCameraFocus::FocusPointAuto
- || mode == QCameraFocus::FocusPointCustom
- || mode == QCameraFocus::FocusPointCenter;
-}
-
AVCaptureFocusMode avf_focus_mode(QCameraFocus::FocusMode requestedMode)
{
switch (requestedMode) {
@@ -87,7 +80,6 @@ AVCaptureFocusMode avf_focus_mode(QCameraFocus::FocusMode requestedMode)
AVFCameraFocusControl::AVFCameraFocusControl(AVFCameraService *service)
: m_session(service->session()),
m_focusMode(QCameraFocus::ContinuousFocus),
- m_focusPointMode(QCameraFocus::FocusPointAuto),
m_customFocusPoint(0.5f, 0.5f),
m_actualFocusPoint(m_customFocusPoint)
{
@@ -160,71 +152,7 @@ bool AVFCameraFocusControl::isFocusModeSupported(QCameraFocus::FocusMode mode) c
#endif
}
-QCameraFocus::FocusPointMode AVFCameraFocusControl::focusPointMode() const
-{
- return m_focusPointMode;
-}
-
-void AVFCameraFocusControl::setFocusPointMode(QCameraFocus::FocusPointMode mode)
-{
- if (m_focusPointMode == mode)
- return;
-
- AVCaptureDevice *captureDevice = m_session->videoCaptureDevice();
- if (!captureDevice) {
- if (qt_focus_point_mode_supported(mode)) {
- m_focusPointMode = mode;
- Q_EMIT focusPointModeChanged(mode);
- }
- return;
- }
-
- if (isFocusPointModeSupported(mode)) {
- const AVFConfigurationLock lock(captureDevice);
- if (!lock) {
- qDebugCamera() << Q_FUNC_INFO << "failed to lock for configuration";
- return;
- }
-
- bool resetPOI = false;
- if (mode == QCameraFocus::FocusPointCenter || mode == QCameraFocus::FocusPointAuto) {
- if (m_actualFocusPoint != QPointF(0.5, 0.5)) {
- m_actualFocusPoint = QPointF(0.5, 0.5);
- resetPOI = true;
- }
- } else if (mode == QCameraFocus::FocusPointCustom) {
- if (m_actualFocusPoint != m_customFocusPoint) {
- m_actualFocusPoint = m_customFocusPoint;
- resetPOI = true;
- }
- } // else for any other mode in future.
-
- if (resetPOI) {
- const CGPoint focusPOI = CGPointMake(m_actualFocusPoint.x(), m_actualFocusPoint.y());
- [captureDevice setFocusPointOfInterest:focusPOI];
- }
- m_focusPointMode = mode;
- } else {
- qDebugCamera() << Q_FUNC_INFO << "focus point mode is not supported";
- return;
- }
-
- Q_EMIT focusPointModeChanged(mode);
-}
-
-bool AVFCameraFocusControl::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
-{
- AVCaptureDevice *captureDevice = m_session->videoCaptureDevice();
- if (!captureDevice)
- return false;
-
- if (!qt_focus_point_mode_supported(mode))
- return false;
-
- return [captureDevice isFocusPointOfInterestSupported];
-}
-
-QPointF AVFCameraFocusControl::customFocusPoint() const
+QPointF AVFCameraFocusControl::focusPoint() const
{
return m_customFocusPoint;
}
@@ -235,6 +163,7 @@ void AVFCameraFocusControl::setCustomFocusPoint(const QPointF &point)
return;
if (!QRectF(0.f, 0.f, 1.f, 1.f).contains(point)) {
+ // ### release custom focus point, tell the camera to focus where it wants...
qDebugCamera() << Q_FUNC_INFO << "invalid focus point (out of range)";
return;
}
@@ -243,7 +172,7 @@ void AVFCameraFocusControl::setCustomFocusPoint(const QPointF &point)
Q_EMIT customFocusPointChanged(m_customFocusPoint);
AVCaptureDevice *captureDevice = m_session->videoCaptureDevice();
- if (!captureDevice || m_focusPointMode != QCameraFocus::FocusPointCustom)
+ if (!captureDevice)
return;
if ([captureDevice isFocusPointOfInterestSupported]) {
@@ -264,6 +193,11 @@ void AVFCameraFocusControl::setCustomFocusPoint(const QPointF &point)
}
}
+bool AVFCameraFocusControl::isCustomFocusPointSupported() const
+{
+ return true;
+}
+
void AVFCameraFocusControl::setFocusDistance(float d)
{
#ifdef Q_OS_IOS
@@ -312,8 +246,7 @@ void AVFCameraFocusControl::cameraStateChanged()
}
const AVFConfigurationLock lock(captureDevice);
- if (m_customFocusPoint != m_actualFocusPoint
- && m_focusPointMode == QCameraFocus::FocusPointCustom) {
+ if (m_customFocusPoint != m_actualFocusPoint) {
if (![captureDevice isFocusPointOfInterestSupported]) {
qDebugCamera() << Q_FUNC_INFO
<< "focus point of interest not supported";
diff --git a/src/multimedia/platform/darwin/camera/avfcamerafocuscontrol_p.h b/src/multimedia/platform/darwin/camera/avfcamerafocuscontrol_p.h
index 89f65ab6b..206b6d221 100644
--- a/src/multimedia/platform/darwin/camera/avfcamerafocuscontrol_p.h
+++ b/src/multimedia/platform/darwin/camera/avfcamerafocuscontrol_p.h
@@ -75,11 +75,9 @@ public:
void setFocusMode(QCameraFocus::FocusMode mode) override;
bool isFocusModeSupported(QCameraFocus::FocusMode mode) const override;
- QCameraFocus::FocusPointMode focusPointMode() const override;
- void setFocusPointMode(QCameraFocus::FocusPointMode mode) override;
- bool isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const override;
- QPointF customFocusPoint() const override;
+ QPointF focusPoint() const override;
void setCustomFocusPoint(const QPointF &point) override;
+ bool isCustomFocusPointSupported() const override;
void setFocusDistance(float) override;
float focusDistance() const override;
@@ -93,7 +91,6 @@ private Q_SLOTS:
private:
AVFCameraSession *m_session;
QCameraFocus::FocusMode m_focusMode;
- QCameraFocus::FocusPointMode m_focusPointMode;
QPointF m_customFocusPoint;
QPointF m_actualFocusPoint;
diff --git a/src/multimedia/platform/gstreamer/camerabin/camerabinfocus.cpp b/src/multimedia/platform/gstreamer/camerabin/camerabinfocus.cpp
index 65283a62f..d9096b6a0 100644
--- a/src/multimedia/platform/gstreamer/camerabin/camerabinfocus.cpp
+++ b/src/multimedia/platform/gstreamer/camerabin/camerabinfocus.cpp
@@ -61,9 +61,8 @@ CameraBinFocus::CameraBinFocus(CameraBinSession *session)
m_session(session),
m_cameraStatus(QCamera::UnloadedStatus),
m_focusMode(QCameraFocus::AutoFocus),
- m_focusPointMode(QCameraFocus::FocusPointAuto),
m_focusStatus(QCamera::Unlocked),
- m_focusPoint(0.5, 0.5),
+ m_focusPoint(-1., -1.),
m_focusRect(0, 0, 0.3, 0.3)
{
m_focusRect.moveCenter(m_focusPoint);
@@ -134,72 +133,6 @@ bool CameraBinFocus::isFocusModeSupported(QCameraFocus::FocusMode mode) const
}
}
-QCameraFocus::FocusPointMode CameraBinFocus::focusPointMode() const
-{
- return m_focusPointMode;
-}
-
-void CameraBinFocus::setFocusPointMode(QCameraFocus::FocusPointMode mode)
-{
- GstElement *source = m_session->cameraSource();
-
- if (m_focusPointMode == mode || !source)
- return;
-
- if (m_focusPointMode == QCameraFocus::FocusPointFaceDetection) {
- g_object_set (G_OBJECT(source), "detect-faces", FALSE, NULL);
-
- if (GstPad *pad = gst_element_get_static_pad(source, "vfsrc")) {
- removeProbeFromPad(pad);
- gst_object_unref(GST_OBJECT(pad));
- }
-
- m_faceResetTimer.stop();
- m_faceFocusRects.clear();
-
- QMutexLocker locker(&m_mutex);
- m_faces.clear();
- }
-
- if (m_focusPointMode != QCameraFocus::FocusPointAuto)
- resetFocusPoint();
-
- switch (mode) {
- case QCameraFocus::FocusPointAuto:
- case QCameraFocus::FocusPointCustom:
- break;
- case QCameraFocus::FocusPointFaceDetection:
- if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "detect-faces")) {
- if (GstPad *pad = gst_element_get_static_pad(source, "vfsrc")) {
- addProbeToPad(pad);
- g_object_set (G_OBJECT(source), "detect-faces", TRUE, NULL);
- break;
- }
- }
- return;
- default:
- return;
- }
-
- m_focusPointMode = mode;
- emit focusPointModeChanged(m_focusPointMode);
-}
-
-bool CameraBinFocus::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
-{
- switch (mode) {
- case QCameraFocus::FocusPointAuto:
- case QCameraFocus::FocusPointCustom:
- return true;
- case QCameraFocus::FocusPointFaceDetection:
- if (GstElement *source = m_session->cameraSource())
- return g_object_class_find_property(G_OBJECT_GET_CLASS(source), "detect-faces");
- return false;
- default:
- return false;
- }
-}
-
QPointF CameraBinFocus::customFocusPoint() const
{
return m_focusPoint;
@@ -214,12 +147,9 @@ void CameraBinFocus::setCustomFocusPoint(const QPointF &point)
m_focusPoint.setX(qBound(m_focusRect.width() / 2, m_focusPoint.x(), 1 - m_focusRect.width() / 2));
m_focusPoint.setY(qBound(m_focusRect.height() / 2, m_focusPoint.y(), 1 - m_focusRect.height() / 2));
- if (m_focusPointMode == QCameraFocus::FocusPointCustom) {
- const QRectF focusRect = m_focusRect;
- m_focusRect.moveCenter(m_focusPoint);
+ m_focusRect.moveCenter(m_focusPoint);
- updateRegionOfInterest(m_focusRect);
- }
+ updateRegionOfInterest(m_focusRect);
emit customFocusPointChanged(m_focusPoint);
}
@@ -242,9 +172,7 @@ void CameraBinFocus::_q_handleCameraStatusChange(QCamera::Status status)
}
gst_object_unref(GST_OBJECT(pad));
}
- if (m_focusPointMode == QCameraFocus::FocusPointCustom) {
- updateRegionOfInterest(m_focusRect);
- }
+ updateRegionOfInterest(m_focusRect);
} else {
_q_setFocusStatus(QCamera::Unlocked, QCamera::LockLost);
@@ -353,8 +281,8 @@ void CameraBinFocus::updateRegionOfInterest(const QList<QRect> &rectangles)
void CameraBinFocus::_q_updateFaces()
{
- if (m_focusPointMode != QCameraFocus::FocusPointFaceDetection)
- return;
+// 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 48ec7e559..a83e505ca 100644
--- a/src/multimedia/platform/gstreamer/camerabin/camerabinfocus_p.h
+++ b/src/multimedia/platform/gstreamer/camerabin/camerabinfocus_p.h
@@ -81,10 +81,7 @@ public:
void setFocusMode(QCameraFocus::FocusMode mode) override;
bool isFocusModeSupported(QCameraFocus::FocusMode mode) const override;
- QCameraFocus::FocusPointMode focusPointMode() const override;
- void setFocusPointMode(QCameraFocus::FocusPointMode mode) override;
- bool isFocusPointModeSupported(QCameraFocus::FocusPointMode) const override;
- QPointF customFocusPoint() const override;
+ QPointF focusPoint() const override;
void setCustomFocusPoint(const QPointF &point) override;
qreal maximumOpticalZoom() const override;
@@ -115,7 +112,6 @@ private:
CameraBinSession *m_session;
QCamera::Status m_cameraStatus;
QCameraFocus::FocusMode m_focusMode;
- QCameraFocus::FocusPointMode m_focusPointMode;
QPointF m_focusPoint;
QRectF m_focusRect;
QSize m_viewfinderResolution;
diff --git a/src/multimedia/platform/qnx/camera/bbcamerafocuscontrol.cpp b/src/multimedia/platform/qnx/camera/bbcamerafocuscontrol.cpp
index 4e1b8802b..2865a0363 100644
--- a/src/multimedia/platform/qnx/camera/bbcamerafocuscontrol.cpp
+++ b/src/multimedia/platform/qnx/camera/bbcamerafocuscontrol.cpp
@@ -48,7 +48,6 @@ BbCameraFocusControl::BbCameraFocusControl(BbCameraSession *session, QObject *pa
: QPlatformCameraFocus(parent)
, m_session(session)
, m_focusMode(QCameraFocus::FocusModeAuto)
- , m_focusPointMode(QCameraFocus::FocusPointAuto)
, m_customFocusPoint(QPointF(0, 0))
{
connect(m_session, SIGNAL(statusChanged(QCamera::Status)), this, SLOT(statusChanged(QCamera::Status)));
@@ -133,81 +132,7 @@ bool BbCameraFocusControl::isFocusModeSupported(QCameraFocus::FocusMode mode) co
return false;
}
-QCameraFocus::FocusPointMode BbCameraFocusControl::focusPointMode() const
-{
- return m_focusPointMode;
-}
-
-void BbCameraFocusControl::setFocusPointMode(QCameraFocus::FocusPointMode mode)
-{
- if (m_session->status() != QCamera::ActiveStatus)
- return;
-
- if (m_focusPointMode == mode)
- return;
-
- m_focusPointMode = mode;
- emit focusPointModeChanged(m_focusPointMode);
-
- if (m_focusPointMode == QCameraFocus::FocusPointAuto) {
- //TODO: is this correct?
- const camera_error_t result = camera_set_focus_regions(m_session->handle(), 0, 0);
- if (result != CAMERA_EOK) {
- qWarning() << "Unable to set focus region:" << result;
- return;
- }
- } else if (m_focusPointMode == QCameraFocus::FocusPointCenter) {
- // get the size of the viewfinder
- int viewfinderWidth = 0;
- int viewfinderHeight = 0;
-
- if (!retrieveViewfinderSize(&viewfinderWidth, &viewfinderHeight))
- return;
-
- // define a 40x40 pixel focus region in the center of the viewfinder
- camera_region_t focusRegion;
- focusRegion.left = (viewfinderWidth / 2) - 20;
- focusRegion.top = (viewfinderHeight / 2) - 20;
- focusRegion.width = 40;
- focusRegion.height = 40;
-
- camera_error_t result = camera_set_focus_regions(m_session->handle(), 1, &focusRegion);
- if (result != CAMERA_EOK) {
- qWarning() << "Unable to set focus region:" << result;
- return;
- }
-
- // re-set focus mode to apply focus region changes
- camera_focusmode_t focusMode = CAMERA_FOCUSMODE_OFF;
- result = camera_get_focus_mode(m_session->handle(), &focusMode);
- camera_set_focus_mode(m_session->handle(), focusMode);
-
- } else if (m_focusPointMode == QCameraFocus::FocusPointFaceDetection) {
- //TODO: implement later
- } else if (m_focusPointMode == QCameraFocus::FocusPointCustom) {
- updateCustomFocusRegion();
- }
-}
-
-bool BbCameraFocusControl::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
-{
- if (m_session->state() == QCamera::UnloadedState)
- return false;
-
- if (mode == QCameraFocus::FocusPointAuto) {
- return camera_has_feature(m_session->handle(), CAMERA_FEATURE_AUTOFOCUS);
- } else if (mode == QCameraFocus::FocusPointCenter) {
- return camera_has_feature(m_session->handle(), CAMERA_FEATURE_REGIONFOCUS);
- } else if (mode == QCameraFocus::FocusPointFaceDetection) {
- return false; //TODO: implement via custom region in combination with face detection in viewfinder
- } else if (mode == QCameraFocus::FocusPointCustom) {
- return camera_has_feature(m_session->handle(), CAMERA_FEATURE_REGIONFOCUS);
- }
-
- return false;
-}
-
-QPointF BbCameraFocusControl::customFocusPoint() const
+QPointF BbCameraFocusControl::focusPoint() const
{
return m_customFocusPoint;
}
diff --git a/src/multimedia/platform/qnx/camera/bbcamerafocuscontrol_p.h b/src/multimedia/platform/qnx/camera/bbcamerafocuscontrol_p.h
index 40cf01070..231ff9025 100644
--- a/src/multimedia/platform/qnx/camera/bbcamerafocuscontrol_p.h
+++ b/src/multimedia/platform/qnx/camera/bbcamerafocuscontrol_p.h
@@ -65,10 +65,7 @@ public:
QCameraFocus::FocusMode focusMode() const override;
void setFocusMode(QCameraFocus::FocusMode mode) override;
bool isFocusModeSupported(QCameraFocus::FocusMode mode) const override;
- QCameraFocus::FocusPointMode focusPointMode() const override;
- void setFocusPointMode(QCameraFocus::FocusPointMode mode) override;
- bool isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const override;
- QPointF customFocusPoint() const override;
+ QPointF focusPoint() const override;
void setCustomFocusPoint(const QPointF &point) override;
qreal maximumOpticalZoom() const override;
@@ -89,7 +86,6 @@ private:
BbCameraSession *m_session;
QCameraFocus::FocusMode m_focusMode;
- QCameraFocus::FocusPointMode m_focusPointMode;
QPointF m_customFocusPoint;
qreal m_minimumZoomFactor;
diff --git a/src/multimedia/platform/qplatformcamerafocus_p.h b/src/multimedia/platform/qplatformcamerafocus_p.h
index a1a95ffb3..b08755598 100644
--- a/src/multimedia/platform/qplatformcamerafocus_p.h
+++ b/src/multimedia/platform/qplatformcamerafocus_p.h
@@ -59,11 +59,9 @@ public:
virtual void setFocusMode(QCameraFocus::FocusMode mode) = 0;
virtual bool isFocusModeSupported(QCameraFocus::FocusMode mode) const = 0;
- virtual QCameraFocus::FocusPointMode focusPointMode() const = 0;
- virtual void setFocusPointMode(QCameraFocus::FocusPointMode mode) = 0;
- virtual bool isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const = 0;
- virtual QPointF customFocusPoint() const = 0;
- virtual void setCustomFocusPoint(const QPointF &point) = 0;
+ virtual bool isCustomFocusPointSupported() const { return false; }
+ virtual void setCustomFocusPoint(const QPointF &/*point*/) {}
+ virtual QPointF focusPoint() const { return {-1., -1.}; }
virtual void setFocusDistance(float) {}
virtual float focusDistance() const { return 0.; }
@@ -79,7 +77,6 @@ public:
Q_SIGNALS:
void focusModeChanged(QCameraFocus::FocusMode mode);
- void focusPointModeChanged(QCameraFocus::FocusPointMode mode);
void customFocusPointChanged(const QPointF &point);
protected:
diff --git a/tests/auto/unit/mockbackend/mockcamerafocuscontrol.h b/tests/auto/unit/mockbackend/mockcamerafocuscontrol.h
index df40a24d9..9442fb890 100644
--- a/tests/auto/unit/mockbackend/mockcamerafocuscontrol.h
+++ b/tests/auto/unit/mockbackend/mockcamerafocuscontrol.h
@@ -39,7 +39,6 @@ public:
MockCameraFocusControl(QObject *parent = 0):
QPlatformCameraFocus(parent),
m_focusMode(QCameraFocus::AutoFocus),
- m_focusPointMode(QCameraFocus::FocusPointAuto),
m_focusPoint(0.5, 0.5)
{
}
@@ -62,30 +61,7 @@ public:
return mode == QCameraFocus::FocusModeAuto;
}
- QCameraFocus::FocusPointMode focusPointMode() const
- {
- return m_focusPointMode;
- }
-
- void setFocusPointMode(QCameraFocus::FocusPointMode mode)
- {
- if (isFocusPointModeSupported(mode))
- m_focusPointMode = mode;
- }
-
- bool isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
- {
- switch (mode) {
- case QCameraFocus::FocusPointAuto:
- case QCameraFocus::FocusPointCenter:
- case QCameraFocus::FocusPointCustom:
- return true;
- default:
- return false;
- }
- }
-
- QPointF customFocusPoint() const
+ QPointF focusPoint() const
{
return m_focusPoint;
}
@@ -106,7 +82,6 @@ public:
private:
QCameraFocus::FocusMode m_focusMode;
- QCameraFocus::FocusPointMode m_focusPointMode;
QPointF m_focusPoint;
float m_zoom = 1.;
diff --git a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
index c208381de..62ae3bd2c 100644
--- a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
+++ b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
@@ -241,13 +241,6 @@ void tst_QCamera::testSimpleCameraFocus()
cameraFocus->zoomTo(100.0, 100.0);
QCOMPARE(cameraFocus->zoomFactor(), 1.0);
- QVERIFY(!cameraFocus->isFocusPointModeSupported(QCameraFocus::FocusPointAuto));
- QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointAuto);
-
- QTest::ignoreMessage(QtWarningMsg, "Focus points mode selection is not supported");
- cameraFocus->setFocusPointMode( QCameraFocus::FocusPointCenter );
- QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointAuto);
-
QCOMPARE(cameraFocus->customFocusPoint(), QPointF(0.5, 0.5));
QTest::ignoreMessage(QtWarningMsg, "Focus points selection is not supported");
cameraFocus->setCustomFocusPoint(QPointF(1.0, 1.0));
@@ -534,17 +527,6 @@ void tst_QCamera::testCameraFocus()
cameraFocus->zoomTo(2000000.0, -1);
QVERIFY(qFuzzyCompare(cameraFocus->zoomFactor(), cameraFocus->maximumZoomFactor()));
- QVERIFY(cameraFocus->isFocusPointModeSupported(QCameraFocus::FocusPointAuto));
- QVERIFY(cameraFocus->isFocusPointModeSupported(QCameraFocus::FocusPointCenter));
- QVERIFY(cameraFocus->isFocusPointModeSupported(QCameraFocus::FocusPointCustom));
- QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointAuto);
-
- cameraFocus->setFocusPointMode( QCameraFocus::FocusPointCenter );
- QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointCenter);
-
- cameraFocus->setFocusPointMode( QCameraFocus::FocusPointFaceDetection );
- QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointCenter);
-
QCOMPARE(cameraFocus->customFocusPoint(), QPointF(0.5, 0.5));
cameraFocus->setCustomFocusPoint(QPointF(1.0, 1.0));
QCOMPARE(cameraFocus->customFocusPoint(), QPointF(1.0, 1.0));