8#include <private/qplatformcamera_p.h>
9#include <private/qplatformimagecapture_p.h>
10#include <private/qplatformmediaintegration_p.h>
11#include <private/qplatformmediacapture_p.h>
161 qWarning() <<
"Failed to initialize QCamera" << maybeControl.error();
164 control = maybeControl.value();
217 for (
const auto &
c : cameras) {
233 if (
d->captureSession)
234 d->captureSession->setCamera(
nullptr);
243 return d->control && !
d->cameraDevice.isNull();
262 return d->control &&
d->control->isActive();
311 return d->control ?
d->control->errorString()
351 return d->control ?
d->control->supportedFeatures() : QCamera::Features{};
394 return d->captureSession;
403 d->captureSession = session;
428 return d->cameraDevice;
442 if (
d->cameraDevice == dev)
444 d->cameraDevice = dev;
446 d->control->setCamera(
d->cameraDevice);
478 return d->cameraFormat;
493 if (!
d->control || !
d->control->setCameraFormat(
format))
571 if (!
d->control ||
d->control->focusMode() ==
mode)
573 d->control->setFocusMode(
mode);
589 return d->control ?
d->control->isFocusModeSupported(
mode) :
false;
605 return d->control ?
d->control->focusPoint() :
QPointF(-1., -1.);
636 return d->control ?
d->control->customFocusPoint() :
QPointF{-1., -1.};
643 d->control->setCustomFocusPoint(point);
671 d_func()->control->setFocusDistance(
d);
677 return d_func()->control->focusDistance();
701 return d->control ?
d->control->maxZoomFactor() : 1.f;
723 return d->control ?
d->control->minZoomFactor() : 1.f;
743 return d->control ?
d->control->zoomFactor() : 1.f;
783 factor =
qBound(
d->control->minZoomFactor(), factor,
d->control->maxZoomFactor());
784 d->control->zoomTo(factor,
rate);
830 d->control->setFlashMode(
mode);
860 return d->control ?
d->control->isFlashReady() :
false;
888 return d->control ?
d->control->torchMode() :
TorchOff;
895 d->control->setTorchMode(
mode);
936 d->control->setExposureMode(
mode);
951 return d->control &&
d->control->isExposureModeSupported(
mode);
973 return d->control ?
d->control->exposureCompensation() : 0.f;
980 d->control->setExposureCompensation(ev);
1001 return d->control ?
d->control->isoSensitivity() : -1;
1026 d->control->setManualIsoSensitivity(iso);
1032 return d->control ?
d->control->manualIsoSensitivity() : 100;
1044 d->control->setManualIsoSensitivity(-1);
1053 return d->control ?
d->control->minIso() : -1;
1062 return d->control ?
d->control->maxIso() : -1;
1071 return d->control ?
d->control->minExposureTime() : -1.f;
1080 return d->control ?
d->control->maxExposureTime() : -1.f;
1110 return d->control ?
d->control->exposureTime() : -1;
1132 d->control->setManualExposureTime(seconds);
1142 return d->control ?
d->control->manualExposureTime() : -1;
1152 d->control->setManualExposureTime(-1);
1251 if (!
d->control->isWhiteBalanceModeSupported(
mode))
1253 d->control->setWhiteBalanceMode(
mode);
1255 d->control->setColorTemperature(5600);
1270 return d->control &&
d->control->isWhiteBalanceModeSupported(
mode);
1294 return d->control ?
d->control->colorTemperature() : 0;
1357#include "moc_qcamera.cpp"
IOBluetoothDevice * device
The QCameraDevice class provides general information about camera devices.
bool isNull() const
Returns true if this QCameraDevice is null or invalid.
Position
This enum specifies the physical position of the camera on the system hardware.
QCameraDevice cameraDevice
QPlatformCamera * control
void init(const QCameraDevice &device)
\qmltype Camera \instantiates QCamera \inqmlmodule QtMultimedia
The QCamera class provides interface for system camera devices.
WhiteBalanceMode
\value WhiteBalanceAuto Auto white balance mode.
bool active
\qmlproperty bool QtMultimedia::Camera::active
float minimumExposureTime() const
The minimal exposure time in seconds.
QString errorString
\qmlproperty string QtMultimedia::Camera::errorString
void setExposureCompensation(float ev)
TorchMode
\value TorchOff Torch is Off.
Q_INVOKABLE bool isTorchModeSupported(TorchMode mode) const
\qmlmethod bool QtMultimedia::Camera::isTorchModeSupported(TorchMode mode)
~QCamera()
Destroys the camera object.
float minimumZoomFactor
\qmlproperty real QtMultimedia::Camera::minimumZoomFactor
void setFlashMode(FlashMode mode)
void setCameraDevice(const QCameraDevice &cameraDevice)
Connects the camera object to the physical camera device described by cameraDevice.
void setAutoExposureTime()
Use automatically calculated exposure time.
void errorOccurred(QCamera::Error error, const QString &errorString)
\qmlsignal void Camera::errorOccurred(Camera::Error error, string errorString)
FocusMode
\value FocusModeAuto Continuous auto focus mode.
QCamera(QObject *parent=nullptr)
Construct a QCamera with a parent.
QCameraDevice cameraDevice
\qmlproperty cameraDevice QtMultimedia::Camera::cameraDevice
int colorTemperature
\qmlmethod QtMultimedia::Camera::colorTemperature
QMediaCaptureSession * captureSession() const
Returns the capture session this camera is connected to, or a nullptr if the camera is not connected ...
float exposureCompensation
\qmlproperty real QtMultimedia::Camera::exposureCompensation
void setColorTemperature(int colorTemperature)
Sets manual white balance to colorTemperature.
void cameraFormatChanged()
int minimumIsoSensitivity() const
Returns the minimum ISO sensitivity supported by the camera.
void setManualIsoSensitivity(int iso)
Q_INVOKABLE bool isFlashModeSupported(FlashMode mode) const
\qmlmethod bool QtMultimedia::Camera::isFlashModeSupported(FlashMode mode)
Q_INVOKABLE bool isExposureModeSupported(ExposureMode mode) const
\qmlmethod bool QtMultimedia::Camera::isExposureModeSupported(ExposureMode mode)
int isoSensitivity
\qmlproperty int QtMultimedia::Camera::isoSensitivity
Error error
\qmlproperty enumeration QtMultimedia::Camera::error
float zoomFactor
\qmlproperty real QtMultimedia::Camera::zoomFactor
void setTorchMode(TorchMode mode)
Features supportedFeatures
\qmlproperty Features QtMultimedia::Camera::supportedFeatures Returns the features supported by this ...
float maximumZoomFactor
\qmlproperty real QtMultimedia::Camera::maximumZoomFactor
QCameraFormat cameraFormat
\qmlproperty cameraFormat QtMultimedia::Camera::cameraFormat
float exposureTime
\qmlproperty float QtMultimedia::Camera::exposureTime Returns the Camera's exposure time in seconds.
QCamera::TorchMode torchMode
\qmlproperty Camera::TorchMode Camera::torchMode
QPointF customFocusPoint
\qmlproperty point QtMultimedia::Camera::customFocusPoint
QCamera::FlashMode flashMode
\qmlproperty enumeration QtMultimedia::Camera::flashMode
void setFocusMode(FocusMode mode)
int maximumIsoSensitivity() const
Returns the maximum ISO sensitivity supported by the camera.
FocusMode focusMode
\qmlproperty enumeration Camera::focusMode
void setAutoIsoSensitivity()
Turn on auto sensitivity.
Q_INVOKABLE bool isFocusModeSupported(FocusMode mode) const
\qmlmethod bool Camera::isFocusModeSupported(FocusMode mode)
void focusModeChanged()
Signals when the focusMode changes.
Q_INVOKABLE bool isWhiteBalanceModeSupported(WhiteBalanceMode mode) const
\qmlmethod bool QtMultimedia::Camera::isWhiteBalanceModeSupported(WhiteBalanceMode mode)
void zoomTo(float zoom, float rate)
\qmlmethod void QtMultimedia::Camera::zoomTo(factor, rate)
void cameraDeviceChanged()
void setManualExposureTime(float seconds)
FlashMode
\value FlashOff Flash is Off.
ExposureMode
\value ExposureAuto Automatic mode.
QPointF focusPoint
\qmlproperty point QtMultimedia::Camera::focusPoint Returns the point currently used by the auto focu...
void setActive(bool active)
Turns the camera on if active is {true}, or off if it's {false}.
void setCameraFormat(const QCameraFormat &format)
Tells the camera to use the format described by format.
void setWhiteBalanceMode(WhiteBalanceMode mode)
Sets the white balance to mode.
void setZoomFactor(float factor)
Zooms to a zoom factor factor at a rate of 1 factor per second.
bool isAvailable() const
Returns true if the camera can be used.
int manualExposureTime
\qmlproperty real QtMultimedia::Camera::manualExposureTime
bool isActive() const
Returns true if the camera is currently active.
float maximumExposureTime() const
The maximal exposure time in seconds.
Error
This enum holds the last error code.
QCamera::ExposureMode exposureMode
\qmlproperty ExposureMode QtMultimedia::Camera::exposureMode
WhiteBalanceMode whiteBalanceMode
\qmlproperty WhiteBalanceMode QtMultimedia::Camera::whiteBalanceMode
int manualIsoSensitivity
\qmlproperty int QtMultimedia::Camera::manualIsoSensitivity
void setCustomFocusPoint(const QPointF &point)
float focusDistance
\qmlproperty float QtMultimedia::Camera::focusDistance
Q_INVOKABLE bool isFlashReady() const
\qmlmethod bool QtMultimedia::Camera::isFlashReady()
void setFocusDistance(float d)
void setExposureMode(ExposureMode mode)
\inmodule QtCore\reentrant
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
constexpr const T & qBound(const T &min, const T &val, const T &max)
GLint GLsizei GLsizei GLenum format
GLdouble GLdouble GLdouble GLdouble q
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
#define QStringLiteral(str)