summaryrefslogtreecommitdiffstats
path: root/src/imports/multimedia/qdeclarativecamerafocus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/multimedia/qdeclarativecamerafocus.cpp')
-rw-r--r--src/imports/multimedia/qdeclarativecamerafocus.cpp413
1 files changed, 0 insertions, 413 deletions
diff --git a/src/imports/multimedia/qdeclarativecamerafocus.cpp b/src/imports/multimedia/qdeclarativecamerafocus.cpp
deleted file mode 100644
index d8fb62d9a..000000000
--- a/src/imports/multimedia/qdeclarativecamerafocus.cpp
+++ /dev/null
@@ -1,413 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qdeclarativecamera_p.h"
-#include "qdeclarativecamerafocus_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype CameraFocus
- \instantiates QDeclarativeCameraFocus
- \inqmlmodule QtMultimedia
- \brief An interface for focus related camera settings.
- \ingroup multimedia_qml
- \ingroup camera_qml
-
- This type allows control over manual and automatic
- focus settings, including information about any parts of the
- camera frame that are selected for autofocusing.
-
- It should not be constructed separately, instead the
- \c focus property of a \l Camera should be used.
-
- \qml
-
- Item {
- width: 640
- height: 360
-
- Camera {
- id: camera
-
- focus {
- focusMode: Camera.FocusMacro
- focusPointMode: Camera.FocusPointCustom
- customFocusPoint: Qt.point(0.2, 0.2) // Focus relative to top-left corner
- }
- }
-
- VideoOutput {
- source: camera
- anchors.fill: parent
- }
- }
-
- \endqml
-*/
-
-/*!
- \class QDeclarativeCameraFocus
- \internal
- \brief An interface for focus related camera settings.
-*/
-
-/*!
- Construct a declarative camera focus object using \a parent object.
- */
-
-QDeclarativeCameraFocus::QDeclarativeCameraFocus(QCamera *camera, QObject *parent) :
- QObject(parent)
-{
- m_focus = camera->focus();
- m_focusZones = new FocusZonesModel(this);
-
- updateFocusZones();
-
- connect(m_focus, SIGNAL(focusZonesChanged()), SLOT(updateFocusZones()));
- connect(camera, &QCamera::statusChanged, [this](QCamera::Status status) {
- if (status != QCamera::UnloadedStatus && status != QCamera::LoadedStatus
- && status != QCamera::ActiveStatus) {
- return;
- }
-
- emit supportedFocusModesChanged();
- emit supportedFocusPointModesChanged();
- });
-}
-
-QDeclarativeCameraFocus::~QDeclarativeCameraFocus()
-{
-}
-/*!
- \property QDeclarativeCameraFocus::focusMode
-
- This property holds the current camera focus mode.
-
- It's possible to combine multiple QCameraFocus::FocusMode enum values,
- for example QCameraFocus::MacroFocus + QCameraFocus::ContinuousFocus.
-
- In automatic focusing modes, the \l focusPointMode
- and \l focusZones properties provide information and control
- over how automatic focusing is performed.
-*/
-
-/*!
- \qmlproperty enumeration CameraFocus::focusMode
-
- This property holds the current camera focus mode, which can be one of the following values:
-
- \table
- \header
- \li Value
- \li Description
- \row
- \li FocusManual
- \li Manual or fixed focus mode.
- \row
- \li FocusHyperfocal
- \li Focus to hyperfocal distance, with the maximum depth of field achieved. All objects at distances from half of this distance out to infinity will be acceptably sharp.
- \row
- \li FocusInfinity
- \li Focus strictly to infinity.
- \row
- \li FocusAuto
- \li One-shot auto focus mode.
- \row
- \li FocusContinuous
- \li Continuous auto focus mode.
- \row
- \li FocusMacro
- \li One shot auto focus to objects close to camera.
- \endtable
-
- It's possible to combine multiple Camera::FocusMode values,
- for example Camera.FocusMacro + Camera.FocusContinuous.
-
- In automatic focusing modes, the \l focusPointMode property
- and \l focusZones property provide information and control
- over how automatic focusing is performed.
-*/
-QDeclarativeCameraFocus::FocusMode QDeclarativeCameraFocus::focusMode() const
-{
- return QDeclarativeCameraFocus::FocusMode(int(m_focus->focusMode()));
-}
-
-/*!
- \qmlproperty list<FocusMode> CameraFocus::supportedFocusModes
-
- This property holds the supported focus modes of the camera.
-
- \since 5.11
- \sa focusMode
-*/
-QVariantList QDeclarativeCameraFocus::supportedFocusModes() const
-{
- QVariantList supportedModes;
-
- for (int i = int(FocusManual); i <= int(FocusMacro); ++i) {
- if (m_focus->isFocusModeSupported((QCameraFocus::FocusMode) i))
- supportedModes.append(i);
- }
-
- return supportedModes;
-}
-
-void QDeclarativeCameraFocus::setFocusMode(QDeclarativeCameraFocus::FocusMode mode)
-{
- if (mode != focusMode()) {
- m_focus->setFocusMode(QCameraFocus::FocusModes(int(mode)));
- emit focusModeChanged(focusMode());
- }
-}
-/*!
- \property QDeclarativeCameraFocus::focusPointMode
-
- This property holds the current camera focus point mode. It is used in
- automatic focusing modes to determine what to focus on.
-
- If the current focus point mode is \l QCameraFocus::FocusPointCustom, the
- \l customFocusPoint property allows you to specify which part of
- the frame to focus on.
-*/
-/*!
- \qmlproperty enumeration CameraFocus::focusPointMode
-
- This property holds the current camera focus point mode. It is used in automatic
- focusing modes to determine what to focus on. If the current
- focus point mode is \c Camera.FocusPointCustom, the \l customFocusPoint
- property allows you to specify which part of the frame to focus on.
-
- The property can take one of the following values:
- \table
- \header
- \li Value
- \li Description
- \row
- \li FocusPointAuto
- \li Automatically select one or multiple focus points.
- \row
- \li FocusPointCenter
- \li Focus to the frame center.
- \row
- \li FocusPointFaceDetection
- \li Focus on faces in the frame.
- \row
- \li FocusPointCustom
- \li Focus to the custom point, defined by the customFocusPoint property.
- \endtable
-*/
-QDeclarativeCameraFocus::FocusPointMode QDeclarativeCameraFocus::focusPointMode() const
-{
- return QDeclarativeCameraFocus::FocusPointMode(m_focus->focusPointMode());
-}
-
-/*!
- \qmlproperty list<enumeration> CameraFocus::supportedFocusPointModes
-
- This property holds the supported focus point modes of the camera.
-
- \since 5.10
- \sa focusPointMode
-*/
-QVariantList QDeclarativeCameraFocus::supportedFocusPointModes() const
-{
- QVariantList supportedModes;
-
- for (int i = int(FocusPointAuto); i <= int(FocusPointCustom); i++) {
- if (m_focus->isFocusPointModeSupported(QCameraFocus::FocusPointMode(i)))
- supportedModes.append(i);
- }
-
- return supportedModes;
-}
-
-void QDeclarativeCameraFocus::setFocusPointMode(QDeclarativeCameraFocus::FocusPointMode mode)
-{
- if (mode != focusPointMode()) {
- m_focus->setFocusPointMode(QCameraFocus::FocusPointMode(mode));
- emit focusPointModeChanged(focusPointMode());
- }
-}
-
-/*!
- \property QDeclarativeCameraFocus::customFocusPoint
-
- This property holds the position of the custom focus point in relative
- frame coordinates. For example, QPointF(0,0) pointing to the left top corner of the frame, and QPointF(0.5,0.5)
- pointing to the center of the frame.
-
- Custom focus point is used only in QCameraFocus::FocusPointCustom focus mode.
-*/
-
-/*!
- \qmlproperty point QtMultimedia::CameraFocus::customFocusPoint
-
- This property holds the position of custom focus point, in relative frame coordinates:
- QPointF(0,0) points to the left top frame point, QPointF(0.5,0.5)
- points to the frame center.
-
- Custom focus point is used only in FocusPointCustom focus mode.
-*/
-
-QPointF QDeclarativeCameraFocus::customFocusPoint() const
-{
- return m_focus->customFocusPoint();
-}
-
-void QDeclarativeCameraFocus::setCustomFocusPoint(const QPointF &point)
-{
- if (point != customFocusPoint()) {
- m_focus->setCustomFocusPoint(point);
- emit customFocusPointChanged(customFocusPoint());
- }
-}
-/*!
- \property QDeclarativeCameraFocus::focusZones
-
- This property holds the list of current camera focus zones,
- each including \c area specified in the same coordinates as \l customFocusPoint, and zone \c status as one of the following values:
- \table
- \header \li Value \li Description
- \row \li QCameraFocusZone::Unused \li This focus point area is currently unused in autofocusing.
- \row \li QCameraFocusZone::Selected \li This focus point area is used in autofocusing, but is not in focus.
- \row \li QCameraFocusZone::Focused \li This focus point is used in autofocusing, and is in focus.
- \endtable
-*/
-/*!
- \qmlproperty list<focusZone> QtMultimedia::CameraFocus::focusZones
-
- This property holds the list of current camera focus zones,
- each including \c area specified in the same coordinates as \l customFocusPoint,
- and zone \c status as one of the following values:
-
- \table
- \header \li Value \li Description
- \row \li Camera.FocusAreaUnused \li This focus point area is currently unused in autofocusing.
- \row \li Camera.FocusAreaSelected \li This focus point area is used in autofocusing, but is not in focus.
- \row \li Camera.FocusAreaFocused \li This focus point is used in autofocusing, and is in focus.
- \endtable
-
- \qml
-
- VideoOutput {
- id: viewfinder
- source: camera
-
- //display focus areas on camera viewfinder:
- Repeater {
- model: camera.focus.focusZones
-
- Rectangle {
- border {
- width: 2
- color: status == Camera.FocusAreaFocused ? "green" : "white"
- }
- color: "transparent"
-
- // Map from the relative, normalized frame coordinates
- property variant mappedRect: viewfinder.mapNormalizedRectToItem(area);
-
- x: mappedRect.x
- y: mappedRect.y
- width: mappedRect.width
- height: mappedRect.height
- }
- }
- }
- \endqml
-*/
-
-QAbstractListModel *QDeclarativeCameraFocus::focusZones() const
-{
- return m_focusZones;
-}
-
-/*! \internal */
-void QDeclarativeCameraFocus::updateFocusZones()
-{
- m_focusZones->setFocusZones(m_focus->focusZones());
-}
-
-
-FocusZonesModel::FocusZonesModel(QObject *parent)
- :QAbstractListModel(parent)
-{
-}
-
-int FocusZonesModel::rowCount(const QModelIndex &parent) const
-{
- if (parent == QModelIndex())
- return m_focusZones.count();
-
- return 0;
-}
-
-QVariant FocusZonesModel::data(const QModelIndex &index, int role) const
-{
- if (index.row() < 0 || index.row() > m_focusZones.count())
- return QVariant();
-
- QCameraFocusZone zone = m_focusZones.value(index.row());
-
- if (role == StatusRole)
- return zone.status();
-
- if (role == AreaRole)
- return zone.area();
-
- return QVariant();
-}
-
-QHash<int,QByteArray> FocusZonesModel::roleNames() const
-{
- return {{StatusRole, QByteArrayLiteral("status")},
- {AreaRole, QByteArrayLiteral("area")}};
-}
-
-void FocusZonesModel::setFocusZones(const QCameraFocusZoneList &zones)
-{
- beginResetModel();
- m_focusZones = zones;
- endResetModel();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qdeclarativecamerafocus_p.cpp"