Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qcamera.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QCAMERA_H
5#define QCAMERA_H
6
7#include <QtCore/qstringlist.h>
8#include <QtCore/qpair.h>
9#include <QtCore/qsize.h>
10#include <QtCore/qpoint.h>
11#include <QtCore/qrect.h>
12
13#include <QtCore/qobject.h>
14
15#include <QtMultimedia/qcameradevice.h>
16
17#include <QtMultimedia/qmediaenumdebug.h>
18
20
21
22class QCameraDevice;
25
26class QCameraPrivate;
27class Q_MULTIMEDIA_EXPORT QCamera : public QObject
28{
30 Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged)
31 // Qt 7: rename to device
32 Q_PROPERTY(QCameraDevice cameraDevice READ cameraDevice WRITE setCameraDevice NOTIFY cameraDeviceChanged)
33 Q_PROPERTY(Error error READ error NOTIFY errorChanged)
34 Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged)
35 Q_PROPERTY(QCameraFormat cameraFormat READ cameraFormat WRITE setCameraFormat NOTIFY cameraFormatChanged)
36
37 Q_PROPERTY(FocusMode focusMode READ focusMode WRITE setFocusMode NOTIFY focusModeChanged)
38 Q_PROPERTY(QPointF focusPoint READ focusPoint NOTIFY focusPointChanged)
39 Q_PROPERTY(QPointF customFocusPoint READ customFocusPoint WRITE setCustomFocusPoint NOTIFY customFocusPointChanged)
40 Q_PROPERTY(float focusDistance READ focusDistance WRITE setFocusDistance NOTIFY focusDistanceChanged)
41
42 Q_PROPERTY(float minimumZoomFactor READ minimumZoomFactor NOTIFY minimumZoomFactorChanged)
43 Q_PROPERTY(float maximumZoomFactor READ maximumZoomFactor NOTIFY maximumZoomFactorChanged)
44 Q_PROPERTY(float zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged)
45 Q_PROPERTY(float exposureTime READ exposureTime NOTIFY exposureTimeChanged)
46 Q_PROPERTY(int manualExposureTime READ manualExposureTime WRITE setManualExposureTime NOTIFY manualExposureTimeChanged)
47 Q_PROPERTY(int isoSensitivity READ isoSensitivity NOTIFY isoSensitivityChanged)
48 Q_PROPERTY(int manualIsoSensitivity READ manualIsoSensitivity WRITE setManualIsoSensitivity NOTIFY manualIsoSensitivityChanged)
49 Q_PROPERTY(float exposureCompensation READ exposureCompensation WRITE setExposureCompensation NOTIFY exposureCompensationChanged)
50 Q_PROPERTY(QCamera::ExposureMode exposureMode READ exposureMode WRITE setExposureMode NOTIFY exposureModeChanged)
51 Q_PROPERTY(bool flashReady READ isFlashReady NOTIFY flashReady)
52 Q_PROPERTY(QCamera::FlashMode flashMode READ flashMode WRITE setFlashMode NOTIFY flashModeChanged)
53 Q_PROPERTY(QCamera::TorchMode torchMode READ torchMode WRITE setTorchMode NOTIFY torchModeChanged)
54
55 Q_PROPERTY(WhiteBalanceMode whiteBalanceMode READ whiteBalanceMode WRITE setWhiteBalanceMode NOTIFY whiteBalanceModeChanged)
56 Q_PROPERTY(int colorTemperature READ colorTemperature WRITE setColorTemperature NOTIFY colorTemperatureChanged)
57 Q_PROPERTY(Features supportedFeatures READ supportedFeatures NOTIFY supportedFeaturesChanged)
58
59public:
60 enum Error
61 {
63 CameraError
64 };
66
75 Q_ENUM(FocusMode)
76
77 enum FlashMode {
80 FlashAuto
81 };
82 Q_ENUM(FlashMode)
83
84 enum TorchMode {
87 TorchAuto
88 };
89 Q_ENUM(TorchMode)
90
110 Q_ENUM(ExposureMode)
111
113 WhiteBalanceAuto = 0,
114 WhiteBalanceManual = 1,
115 WhiteBalanceSunlight = 2,
116 WhiteBalanceCloudy = 3,
117 WhiteBalanceShade = 4,
118 WhiteBalanceTungsten = 5,
119 WhiteBalanceFluorescent = 6,
120 WhiteBalanceFlash = 7,
121 WhiteBalanceSunset = 8
122 };
123 Q_ENUM(WhiteBalanceMode)
124
125 enum class Feature {
126 ColorTemperature = 0x1,
127 ExposureCompensation = 0x2,
128 IsoSensitivity = 0x4,
129 ManualExposureTime = 0x8,
130 CustomFocusPoint = 0x10,
131 FocusDistance = 0x20
132 };
133 Q_DECLARE_FLAGS(Features, Feature)
134
135 explicit QCamera(QObject *parent = nullptr);
136 explicit QCamera(const QCameraDevice& cameraDevice, QObject *parent = nullptr);
137 explicit QCamera(QCameraDevice::Position position, QObject *parent = nullptr);
138 ~QCamera();
139
140 bool isAvailable() const;
141 bool isActive() const;
142
143 QMediaCaptureSession *captureSession() const;
144
145 QCameraDevice cameraDevice() const;
146 void setCameraDevice(const QCameraDevice &cameraDevice);
147
148 QCameraFormat cameraFormat() const;
149 void setCameraFormat(const QCameraFormat &format);
150
151 Error error() const;
152 QString errorString() const;
153
154 Features supportedFeatures() const;
155
156 FocusMode focusMode() const;
157 void setFocusMode(FocusMode mode);
158 Q_INVOKABLE bool isFocusModeSupported(FocusMode mode) const;
159
160 QPointF focusPoint() const;
161
162 QPointF customFocusPoint() const;
163 void setCustomFocusPoint(const QPointF &point);
164
165 void setFocusDistance(float d);
166 float focusDistance() const;
167
168 float minimumZoomFactor() const;
169 float maximumZoomFactor() const;
170 float zoomFactor() const;
171 void setZoomFactor(float factor);
172
173 FlashMode flashMode() const;
174 Q_INVOKABLE bool isFlashModeSupported(FlashMode mode) const;
175 Q_INVOKABLE bool isFlashReady() const;
176
177 TorchMode torchMode() const;
178 Q_INVOKABLE bool isTorchModeSupported(TorchMode mode) const;
179
180 ExposureMode exposureMode() const;
181 Q_INVOKABLE bool isExposureModeSupported(ExposureMode mode) const;
182
183 float exposureCompensation() const;
184
185 int isoSensitivity() const;
186 int manualIsoSensitivity() const;
187
188 float exposureTime() const;
189 float manualExposureTime() const;
190
191 int minimumIsoSensitivity() const;
192 int maximumIsoSensitivity() const;
193
194 float minimumExposureTime() const;
195 float maximumExposureTime() const;
196
197 WhiteBalanceMode whiteBalanceMode() const;
198 Q_INVOKABLE bool isWhiteBalanceModeSupported(WhiteBalanceMode mode) const;
199
200 int colorTemperature() const;
201
202public Q_SLOTS:
203 void setActive(bool active);
204 void start() { setActive(true); }
205 void stop() { setActive(false); }
206
207 void zoomTo(float zoom, float rate);
208
209 void setFlashMode(FlashMode mode);
210 void setTorchMode(TorchMode mode);
211 void setExposureMode(ExposureMode mode);
212
213 void setExposureCompensation(float ev);
214
215 void setManualIsoSensitivity(int iso);
216 void setAutoIsoSensitivity();
217
218 void setManualExposureTime(float seconds);
219 void setAutoExposureTime();
220
221 void setWhiteBalanceMode(WhiteBalanceMode mode);
222 void setColorTemperature(int colorTemperature);
223
225 void activeChanged(bool);
227 void errorOccurred(QCamera::Error error, const QString &errorString);
231
233 void zoomFactorChanged(float);
239
240 void flashReady(bool);
243
244 void exposureTimeChanged(float speed);
245 void manualExposureTimeChanged(float speed);
250
252 void colorTemperatureChanged() QT6_ONLY(const);
253 void brightnessChanged();
254 void contrastChanged();
255 void saturationChanged();
256 void hueChanged();
257
258private:
259 class QPlatformCamera *platformCamera();
260 void setCaptureSession(QMediaCaptureSession *session);
262 Q_DISABLE_COPY(QCamera)
263 Q_DECLARE_PRIVATE(QCamera)
264 friend class QCameraDevice;
265};
266
268
270
272
273#endif // QCAMERA_H
bool isActive
The QCameraDevice class provides general information about camera devices.
Position
This enum specifies the physical position of the camera on the system hardware.
The QCameraFormat class describes a video format supported by a camera device. \inmodule QtMultimedia...
The QCamera class provides interface for system camera devices.
Definition qcamera.h:28
WhiteBalanceMode
\value WhiteBalanceAuto Auto white balance mode.
Definition qcamera.h:112
void focusPointChanged()
void manualExposureTimeChanged(float speed)
TorchMode
\value TorchOff Torch is Off.
Definition qcamera.h:84
@ TorchOn
Definition qcamera.h:86
@ TorchOff
Definition qcamera.h:85
void manualIsoSensitivityChanged(int)
void exposureModeChanged()
void focusDistanceChanged(float)
void errorOccurred(QCamera::Error error, const QString &errorString)
\qmlsignal void Camera::errorOccurred(Camera::Error error, string errorString)
FocusMode
\value FocusModeAuto Continuous auto focus mode.
Definition qcamera.h:67
@ FocusModeAutoNear
Definition qcamera.h:69
@ FocusModeInfinity
Definition qcamera.h:72
@ FocusModeAutoFar
Definition qcamera.h:70
@ FocusModeAuto
Definition qcamera.h:68
@ FocusModeHyperfocal
Definition qcamera.h:71
void customFocusPointChanged()
void stop()
\qmlmethod void Camera::stop()
Definition qcamera.h:205
void maximumZoomFactorChanged(float)
void flashModeChanged()
void cameraFormatChanged()
Feature
Describes a set of features supported by the camera.
Definition qcamera.h:125
void exposureCompensationChanged(float)
Signal emitted when the exposure compensation changes to value.
void exposureTimeChanged(float speed)
Signals that a camera's exposure speed has changed.
void supportedFeaturesChanged()
void errorChanged()
void focusModeChanged()
Signals when the focusMode changes.
void whiteBalanceModeChanged() QT6_ONLY(const)
void minimumZoomFactorChanged(float)
void cameraDeviceChanged()
void start()
\qmlmethod void Camera::start()
Definition qcamera.h:204
void activeChanged(bool)
FlashMode
\value FlashOff Flash is Off.
Definition qcamera.h:77
@ FlashOn
Definition qcamera.h:79
@ FlashOff
Definition qcamera.h:78
void torchModeChanged()
ExposureMode
\value ExposureAuto Automatic mode.
Definition qcamera.h:91
@ ExposureCandlelight
Definition qcamera.h:107
@ ExposureLandscape
Definition qcamera.h:100
@ ExposureManual
Definition qcamera.h:93
@ ExposureBeach
Definition qcamera.h:98
@ ExposureSunset
Definition qcamera.h:103
@ ExposurePortrait
Definition qcamera.h:94
@ ExposureNightPortrait
Definition qcamera.h:101
@ ExposureSports
Definition qcamera.h:96
@ ExposureTheatre
Definition qcamera.h:102
@ ExposureAuto
Definition qcamera.h:92
@ ExposureFireworks
Definition qcamera.h:105
@ ExposureAction
Definition qcamera.h:99
@ ExposureParty
Definition qcamera.h:106
@ ExposureSnow
Definition qcamera.h:97
@ ExposureSteadyPhoto
Definition qcamera.h:104
@ ExposureNight
Definition qcamera.h:95
void zoomFactorChanged(float)
void flashReady(bool)
Signal the flash ready status has changed.
Error
This enum holds the last error code.
Definition qcamera.h:61
@ NoError
Definition qcamera.h:62
void isoSensitivityChanged(int)
Signal emitted when sensitivity changes to value.
The QMediaCaptureSession class allows capturing of audio and video content.
\inmodule QtCore
Definition qobject.h:103
\inmodule QtCore\reentrant
Definition qpoint.h:217
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
Combined button and popup list for selecting options.
class QT6_ONLY(Q_CORE_EXPORT) QChar
Definition qchar.h:44
DBusConnection const char DBusError * error
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition qflags.h:174
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
Definition qflags.h:194
#define Q_MEDIA_ENUM_DEBUG(Class, Enum)
GLenum mode
GLint GLsizei GLsizei GLenum format
GLuint GLenum * rate
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_INVOKABLE
#define Q_SLOTS
#define Q_SIGNALS