diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-05-17 14:13:54 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-05-18 08:44:27 +0000 |
commit | d78a921256b50399cead644d69d2a06d43ef3e5c (patch) | |
tree | 9e50e522fd048f4fffff9e6669e090b640819f4d /src/multimedia/camera/qcamera.h | |
parent | ac2f3c0ef78e8374dea63b658959a8a6db890bca (diff) |
Merge the QCameraFocus API into QCamera
After API review, we decided that one large API in QCamera is
easier than having separate sub-objects that are only trying to
structure the API.
Change-Id: I5f820a580db1ddb3f47e11b88ca86215997f96ce
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/multimedia/camera/qcamera.h')
-rw-r--r-- | src/multimedia/camera/qcamera.h | 48 |
1 files changed, 45 insertions, 3 deletions
diff --git a/src/multimedia/camera/qcamera.h b/src/multimedia/camera/qcamera.h index 4e7f1b401..7acae0c3a 100644 --- a/src/multimedia/camera/qcamera.h +++ b/src/multimedia/camera/qcamera.h @@ -49,7 +49,6 @@ #include <QtCore/qobject.h> #include <QtMultimedia/qcameraexposure.h> -#include <QtMultimedia/qcamerafocus.h> #include <QtMultimedia/qcameraimageprocessing.h> #include <QtMultimedia/qcamerainfo.h> @@ -69,13 +68,21 @@ class Q_MULTIMEDIA_EXPORT QCamera : public QObject Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) Q_PROPERTY(QCamera::Status status READ status NOTIFY statusChanged) Q_PROPERTY(QCameraExposure* exposure READ exposure CONSTANT) - Q_PROPERTY(QCameraFocus* focus READ focus CONSTANT) Q_PROPERTY(QCameraImageProcessing* imageProcessing READ imageProcessing CONSTANT) Q_PROPERTY(QCameraInfo cameraInfo READ cameraInfo WRITE setCameraInfo NOTIFY cameraInfoChanged) Q_PROPERTY(Error error READ error NOTIFY errorChanged) Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged) Q_PROPERTY(QCameraFormat cameraFormat READ cameraFormat WRITE setCameraFormat NOTIFY cameraFormatChanged) + Q_PROPERTY(FocusMode focusMode READ focusMode WRITE setFocusMode) + Q_PROPERTY(QPointF customFocusPoint READ customFocusPoint WRITE setCustomFocusPoint NOTIFY customFocusPointChanged) + Q_PROPERTY(float focusDistance READ focusDistance WRITE setFocusDistance NOTIFY focusDistanceChanged) + + Q_PROPERTY(float minimumZoomFactor READ minimumZoomFactor NOTIFY minimumZoomFactorChanged) + Q_PROPERTY(float maximumZoomFactor READ maximumZoomFactor NOTIFY maximumZoomFactorChanged) + Q_PROPERTY(float zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged) + + Q_ENUMS(FocusMode) Q_ENUMS(Status) Q_ENUMS(Error) public: @@ -93,6 +100,15 @@ public: CameraError }; + enum FocusMode { + FocusModeAuto, + FocusModeAutoNear, + FocusModeAutoFar, + FocusModeHyperfocal, + FocusModeInfinity, + FocusModeManual + }; + explicit QCamera(QObject *parent = nullptr); explicit QCamera(const QCameraInfo& cameraInfo, QObject *parent = nullptr); explicit QCamera(QCameraInfo::Position position, QObject *parent = nullptr); @@ -112,17 +128,36 @@ public: void setCameraFormat(const QCameraFormat &format); QCameraExposure *exposure() const; - QCameraFocus *focus() const; QCameraImageProcessing *imageProcessing() const; Error error() const; QString errorString() const; + FocusMode focusMode() const; + void setFocusMode(FocusMode mode); + bool isFocusModeSupported(FocusMode mode) const; + + QPointF focusPoint() const; + + QPointF customFocusPoint() const; + void setCustomFocusPoint(const QPointF &point); + bool isCustomFocusPointSupported() const; + + void setFocusDistance(float d); + float focusDistance() const; + + float minimumZoomFactor() const; + float maximumZoomFactor() const; + float zoomFactor() const; + void setZoomFactor(float factor); + public Q_SLOTS: void setActive(bool active); void start() { setActive(true); } void stop() { setActive(false); } + void zoomTo(float zoom, float rate); + Q_SIGNALS: void activeChanged(bool); void statusChanged(QCamera::Status status); @@ -131,6 +166,13 @@ Q_SIGNALS: void cameraInfoChanged(); void cameraFormatChanged(); + void focusModeChanged(); + void zoomFactorChanged(float); + void minimumZoomFactorChanged(float); + void maximumZoomFactorChanged(float); + void focusDistanceChanged(float); + void customFocusPointChanged(); + private: void setCaptureSession(QMediaCaptureSession *session); friend class QMediaCaptureSession; |