163 auto maybeControl = QPlatformMediaIntegration::instance()->createCamera(q);
165 qWarning() <<
"Failed to initialize QCamera" << maybeControl.error();
168 control = maybeControl.value();
169 cameraDevice = !device.isNull() ? device : QMediaDevices::defaultVideoInput();
170 if (cameraDevice.isNull())
171 control->updateError(QCamera::CameraError, QStringLiteral(
"No camera detected"));
172 control->setCamera(cameraDevice);
173 q->connect(control, &QPlatformVideoSource::activeChanged, q, &QCamera::activeChanged);
174 q->connect(control, &QPlatformCamera::errorChanged, q, &QCamera::errorChanged);
175 q->connect(control, &QPlatformCamera::errorOccurred, q, &QCamera::errorOccurred);
214QCamera::QCamera(QCameraDevice::Position position, QObject *parent)
215 : QObject(*
new QCameraPrivate, parent)
219 QCameraDevice device;
220 auto cameras = QMediaDevices::videoInputs();
221 for (
const auto &c : std::as_const(cameras)) {
222 if (c.position() == position) {
466void QCamera::setCameraDevice(
const QCameraDevice &cameraDevice)
469 auto dev = cameraDevice;
471 dev = QMediaDevices::defaultVideoInput();
472 if (d->cameraDevice == dev)
474 d->cameraDevice = dev;
476 d->control->setCamera(d->cameraDevice);
477 emit cameraDeviceChanged();
1336void QCamera::setWhiteBalanceMode(QCamera::WhiteBalanceMode mode)
1341 if (!d->control->isWhiteBalanceModeSupported(mode))
1343 d->control->setWhiteBalanceMode(mode);
1344 if (mode == QCamera::WhiteBalanceManual)
1345 d->control->setColorTemperature(5600);
1397void QCamera::setColorTemperature(
int colorTemperature)
1402 if (colorTemperature < 0)
1403 colorTemperature = 0;
1404 if (colorTemperature == 0) {
1405 d->control->setWhiteBalanceMode(WhiteBalanceAuto);
1406 }
else if (!isWhiteBalanceModeSupported(WhiteBalanceManual)) {
1409 d->control->setWhiteBalanceMode(WhiteBalanceManual);
1411 d->control->setColorTemperature(colorTemperature);