1// qcamerafocus.sip generated by MetaSIP
2//
3// This file is part of the QtMultimedia Python extension module.
4//
5// Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
6//
7// This file is part of PyQt5.
8//
9// This file may be used under the terms of the GNU General Public License
10// version 3.0 as published by the Free Software Foundation and appearing in
11// the file LICENSE included in the packaging of this file.  Please review the
12// following information to ensure the GNU General Public License version 3.0
13// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
14//
15// If you do not wish to use this file under the terms of the GPL version 3.0
16// then you may purchase a commercial license.  For more information contact
17// info@riverbankcomputing.com.
18//
19// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
22
23class QCameraFocusZone
24{
25%TypeHeaderCode
26#include <qcamerafocus.h>
27%End
28
29public:
30    enum FocusZoneStatus
31    {
32        Invalid,
33        Unused,
34        Selected,
35        Focused,
36    };
37
38    QCameraFocusZone(const QCameraFocusZone &other);
39    bool operator==(const QCameraFocusZone &other) const;
40    bool operator!=(const QCameraFocusZone &other) const;
41    ~QCameraFocusZone();
42    bool isValid() const;
43    QRectF area() const;
44    QCameraFocusZone::FocusZoneStatus status() const;
45};
46
47typedef QList<QCameraFocusZone> QCameraFocusZoneList;
48
49class QCameraFocus : QObject
50{
51%TypeHeaderCode
52#include <qcamerafocus.h>
53%End
54
55public:
56    enum FocusMode
57    {
58        ManualFocus,
59        HyperfocalFocus,
60        InfinityFocus,
61        AutoFocus,
62        ContinuousFocus,
63        MacroFocus,
64    };
65
66    typedef QFlags<QCameraFocus::FocusMode> FocusModes;
67
68    enum FocusPointMode
69    {
70        FocusPointAuto,
71        FocusPointCenter,
72        FocusPointFaceDetection,
73        FocusPointCustom,
74    };
75
76    bool isAvailable() const;
77    QCameraFocus::FocusModes focusMode() const;
78    void setFocusMode(QCameraFocus::FocusModes mode);
79    bool isFocusModeSupported(QCameraFocus::FocusModes mode) const;
80    QCameraFocus::FocusPointMode focusPointMode() const;
81    void setFocusPointMode(QCameraFocus::FocusPointMode mode);
82    bool isFocusPointModeSupported(QCameraFocus::FocusPointMode) const;
83    QPointF customFocusPoint() const;
84    void setCustomFocusPoint(const QPointF &point);
85    QCameraFocusZoneList focusZones() const;
86    qreal maximumOpticalZoom() const;
87    qreal maximumDigitalZoom() const;
88    qreal opticalZoom() const;
89    qreal digitalZoom() const;
90    void zoomTo(qreal opticalZoom, qreal digitalZoom);
91
92signals:
93    void opticalZoomChanged(qreal);
94    void digitalZoomChanged(qreal);
95    void focusZonesChanged();
96    void maximumOpticalZoomChanged(qreal);
97    void maximumDigitalZoomChanged(qreal);
98
99private:
100    QCameraFocus(QCamera *camera);
101
102protected:
103%If (Qt_5_14_0 -)
104    virtual ~QCameraFocus();
105%End
106
107private:
108%If (- Qt_5_14_0)
109    virtual ~QCameraFocus();
110%End
111    QCameraFocus(const QCameraFocus &);
112};
113
114QFlags<QCameraFocus::FocusMode> operator|(QCameraFocus::FocusMode f1, QFlags<QCameraFocus::FocusMode> f2);
115