8#include <private/qplatformcamera_p.h>
9#include <private/qplatformimagecapture_p.h>
10#include <private/qplatformmediaintegration_p.h>
11#include <private/qplatformmediacapture_p.h>
163 emit q->errorChanged();
173 qWarning() <<
"Failed to initialize QCamera" << maybeControl.error();
178 control = maybeControl.value();
230 for (
const auto &
c : cameras) {
246 if (
d->captureSession)
247 d->captureSession->setCamera(
nullptr);
256 return d->control && !
d->cameraDevice.isNull();
275 return d->control &&
d->control->isActive();
304 return d_func()->error;
320 return d_func()->errorString;
359 return d->control ?
d->control->supportedFeatures() : QCamera::Features{};
402 return d->captureSession;
411 d->captureSession = session;
436 return d->cameraDevice;
450 if (
d->cameraDevice == dev)
452 d->cameraDevice = dev;
454 d->control->setCamera(
d->cameraDevice);
486 return d->cameraFormat;
501 if (!
d->control || !
d->control->setCameraFormat(
format))
579 if (!
d->control ||
d->control->focusMode() ==
mode)
581 d->control->setFocusMode(
mode);
597 return d->control ?
d->control->isFocusModeSupported(
mode) :
false;
613 return d->control ?
d->control->focusPoint() :
QPointF(-1., -1.);
644 return d->control ?
d->control->customFocusPoint() :
QPointF{-1., -1.};
651 d->control->setCustomFocusPoint(point);
679 d_func()->control->setFocusDistance(
d);
685 return d_func()->control->focusDistance();
709 return d->control ?
d->control->maxZoomFactor() : 1.f;
731 return d->control ?
d->control->minZoomFactor() : 1.f;
751 return d->control ?
d->control->zoomFactor() : 1.f;
791 factor =
qBound(
d->control->minZoomFactor(), factor,
d->control->maxZoomFactor());
792 d->control->zoomTo(factor,
rate);
838 d->control->setFlashMode(
mode);
868 return d->control ?
d->control->isFlashReady() :
false;
896 return d->control ?
d->control->torchMode() :
TorchOff;
903 d->control->setTorchMode(
mode);
944 d->control->setExposureMode(
mode);
959 return d->control &&
d->control->isExposureModeSupported(
mode);
981 return d->control ?
d->control->exposureCompensation() : 0.f;
988 d->control->setExposureCompensation(ev);
1009 return d->control ?
d->control->isoSensitivity() : -1;
1034 d->control->setManualIsoSensitivity(iso);
1040 return d->control ?
d->control->manualIsoSensitivity() : 100;
1052 d->control->setManualIsoSensitivity(-1);
1061 return d->control ?
d->control->minIso() : -1;
1070 return d->control ?
d->control->maxIso() : -1;
1079 return d->control ?
d->control->minExposureTime() : -1.f;
1088 return d->control ?
d->control->maxExposureTime() : -1.f;
1118 return d->control ?
d->control->exposureTime() : -1;
1140 d->control->setManualExposureTime(seconds);
1150 return d->control ?
d->control->manualExposureTime() : -1;
1160 d->control->setManualExposureTime(-1);
1259 if (!
d->control->isWhiteBalanceModeSupported(
mode))
1261 d->control->setWhiteBalanceMode(
mode);
1263 d->control->setColorTemperature(5600);
1278 return d->control &&
d->control->isWhiteBalanceModeSupported(
mode);
1302 return d->control ?
d->control->colorTemperature() : 0;
1365#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)
void _q_error(int error, const QString &errorString)
\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.
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
static QString fromUtf8(QByteArrayView utf8)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Combined button and popup list for selecting options.
DBusConnection const char DBusError * error
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)
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent