diff options
Diffstat (limited to 'src/imports/multimedia/qdeclarativecameraexposure.cpp')
-rw-r--r-- | src/imports/multimedia/qdeclarativecameraexposure.cpp | 464 |
1 files changed, 0 insertions, 464 deletions
diff --git a/src/imports/multimedia/qdeclarativecameraexposure.cpp b/src/imports/multimedia/qdeclarativecameraexposure.cpp deleted file mode 100644 index af8c6acf6..000000000 --- a/src/imports/multimedia/qdeclarativecameraexposure.cpp +++ /dev/null @@ -1,464 +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 "qdeclarativecameraexposure_p.h" - -QT_BEGIN_NAMESPACE - -/*! - \qmltype CameraExposure - \instantiates QDeclarativeCameraExposure - \brief An interface for exposure related camera settings. - \ingroup multimedia_qml - \ingroup camera_qml - \inqmlmodule QtMultimedia - - CameraExposure allows you to adjust exposure related settings - like aperture and shutter speed, metering and ISO speed. - - It should not be constructed separately, instead the - \c exposure property of the a \l Camera should be used. - - \qml - - Camera { - id: camera - - exposure.exposureCompensation: -1.0 - exposure.exposureMode: Camera.ExposurePortrait - } - - \endqml - - Several settings have both an automatic and a manual mode. In - the automatic modes the camera software itself will decide what - a reasonable setting is, but in most cases these settings can - be overridden with a specific manual setting. - - For example, to select automatic shutter speed selection: - - \code - camera.exposure.setAutoShutterSpeed() - \endcode - - Or for a specific shutter speed: - - \code - camera.exposure.manualShutterSpeed = 0.01 // 10ms - \endcode - - You can only choose one or the other mode. -*/ - -/*! - \internal - \class QDeclarativeCameraExposure - \brief The CameraExposure provides interface for exposure related camera settings. - -*/ - -/*! - Construct a declarative camera exposure object using \a parent object. - */ -QDeclarativeCameraExposure::QDeclarativeCameraExposure(QCamera *camera, QObject *parent) : - QObject(parent) -{ - m_exposure = camera->exposure(); - - connect(m_exposure, SIGNAL(isoSensitivityChanged(int)), this, SIGNAL(isoSensitivityChanged(int))); - connect(m_exposure, SIGNAL(apertureChanged(qreal)), this, SIGNAL(apertureChanged(qreal))); - connect(m_exposure, SIGNAL(shutterSpeedChanged(qreal)), this, SIGNAL(shutterSpeedChanged(qreal))); - - connect(m_exposure, SIGNAL(exposureCompensationChanged(qreal)), this, SIGNAL(exposureCompensationChanged(qreal))); - connect(camera, &QCamera::statusChanged, [this](QCamera::Status status) { - if (status != QCamera::UnloadedStatus && status != QCamera::LoadedStatus - && status != QCamera::ActiveStatus) { - return; - } - - emit supportedExposureModesChanged(); - }); -} - -QDeclarativeCameraExposure::~QDeclarativeCameraExposure() -{ -} -/*! - \property QDeclarativeCameraExposure::exposureCompensation - - This property holds the adjustment value for the automatically calculated exposure. The value is in EV units. - */ -/*! - \qmlproperty real QtMultimedia::CameraExposure::exposureCompensation - - This property holds the adjustment value for the automatically calculated exposure. The value is - in EV units. - */ -qreal QDeclarativeCameraExposure::exposureCompensation() const -{ - return m_exposure->exposureCompensation(); -} - -void QDeclarativeCameraExposure::setExposureCompensation(qreal ev) -{ - m_exposure->setExposureCompensation(ev); -} -/*! - \property QDeclarativeCameraExposure::iso - - This property holds the sensor's ISO sensitivity value. - */ -/*! - \qmlproperty int QtMultimedia::CameraExposure::iso - - This property holds the sensor's ISO sensitivity value. - */ -int QDeclarativeCameraExposure::isoSensitivity() const -{ - return m_exposure->isoSensitivity(); -} -/*! - \property QDeclarativeCameraExposure::shutterSpeed - - This property holds the camera's shutter speed value in seconds. - To affect the shutter speed you can use the \l manualShutterSpeed - property and \l setAutoShutterSpeed(). - -*/ -/*! - \qmlproperty real QtMultimedia::CameraExposure::shutterSpeed - - This property holds the camera's current shutter speed value in seconds. - To affect the shutter speed you can use the \l manualShutterSpeed - property and \l setAutoShutterSpeed(). - -*/ -qreal QDeclarativeCameraExposure::shutterSpeed() const -{ - return m_exposure->shutterSpeed(); -} -/*! - \property QDeclarativeCameraExposure::aperture - - This property holds the current lens aperture as an F number (the ratio of the focal length to effective aperture diameter). - - \sa manualAperture, setAutoAperture() -*/ -/*! - \qmlproperty real QtMultimedia::CameraExposure::aperture - - This property holds the current lens aperture as an F number (the ratio of - the focal length to effective aperture diameter). - - \sa manualAperture, setAutoAperture() -*/ -qreal QDeclarativeCameraExposure::aperture() const -{ - return m_exposure->aperture(); -} -/*! - \property QDeclarativeCameraExposure::manualIso - - This property holds the ISO settings for capturing photos. - - If the value is negative, the camera will - automatically determine an appropriate value. - - \sa iso, setAutoIsoSensitivity() -*/ -/*! - \qmlproperty real QtMultimedia::CameraExposure::manualIso - - This property holds the ISO settings for capturing photos. - - If a negative value is specified, the camera will - automatically determine an appropriate value. - - \sa iso, setAutoIsoSensitivity() -*/ - -int QDeclarativeCameraExposure::manualIsoSensitivity() const -{ - return m_manualIso; -} - -void QDeclarativeCameraExposure::setManualIsoSensitivity(int iso) -{ - m_manualIso = iso; - if (iso > 0) - m_exposure->setManualIsoSensitivity(iso); - else - m_exposure->setAutoIsoSensitivity(); - - emit manualIsoSensitivityChanged(iso); -} -/*! - \property QDeclarativeCameraExposure::manualShutterSpeed - - This property holds the shutter speed value (in seconds). - If the value is less than zero, the camera automatically - determines an appropriate shutter speed. - - \l shutterSpeed, setAutoShutterSpeed() -*/ -/*! - \qmlproperty real QtMultimedia::CameraExposure::manualShutterSpeed - - This property holds the shutter speed value (in seconds). - If the value is less than zero, the camera automatically - determines an appropriate shutter speed. - - \l shutterSpeed, setAutoShutterSpeed() -*/ -qreal QDeclarativeCameraExposure::manualShutterSpeed() const -{ - return m_manualShutterSpeed; -} - -void QDeclarativeCameraExposure::setManualShutterSpeed(qreal speed) -{ - m_manualShutterSpeed = speed; - if (speed > 0) - m_exposure->setManualShutterSpeed(speed); - else - m_exposure->setAutoShutterSpeed(); - - emit manualShutterSpeedChanged(speed); -} -/*! - \property QDeclarativeCameraExposure::manualAperture - - This property holds aperture (F number) value - for capturing photos. - - If the value is less than zero, - the camera automatically determines an appropriate aperture value. - - \l aperture, setAutoAperture() -*/ -/*! - \qmlproperty real QtMultimedia::CameraExposure::manualAperture - - This property holds the aperture (F number) value - for capturing photos. - - If the value is less than zero, the camera automatically - determines an appropriate aperture value. - - \l aperture, setAutoAperture() -*/ -qreal QDeclarativeCameraExposure::manualAperture() const -{ - return m_manualAperture; -} - -void QDeclarativeCameraExposure::setManualAperture(qreal aperture) -{ - m_manualAperture = aperture; - if (aperture > 0) - m_exposure->setManualAperture(aperture); - else - m_exposure->setAutoAperture(); - - emit manualApertureChanged(aperture); -} - -/*! - \qmlmethod QtMultimedia::CameraExposure::setAutoAperture() - Turn on auto aperture selection. The manual aperture value is reset to -1.0 - */ -void QDeclarativeCameraExposure::setAutoAperture() -{ - setManualAperture(-1.0); -} - -/*! - \qmlmethod QtMultimedia::CameraExposure::setAutoShutterSpeed() - Turn on auto shutter speed selection. The manual shutter speed value is reset to -1.0 - */ -void QDeclarativeCameraExposure::setAutoShutterSpeed() -{ - setManualShutterSpeed(-1.0); -} - -/*! - \qmlmethod QtMultimedia::CameraExposure::setAutoIsoSensitivity() - Turn on auto ISO sensitivity selection. The manual ISO value is reset to -1. - */ -void QDeclarativeCameraExposure::setAutoIsoSensitivity() -{ - setManualIsoSensitivity(-1); -} -/*! - \property QDeclarativeCameraExposure::exposureMode - - This property holds the camera exposure mode. The mode can one of the values in \l QCameraExposure::ExposureMode. -*/ -/*! - \qmlproperty enumeration QtMultimedia::CameraExposure::exposureMode - - This property holds the camera exposure mode. - - The mode can be one of the following: - - \table - \header \li Value \li Description - \row \li Camera.ExposureManual \li Manual mode. - \row \li Camera.ExposureAuto \li Automatic mode. - \row \li Camera.ExposureNight \li Night mode. - \row \li Camera.ExposureBacklight \li Backlight exposure mode. - \row \li Camera.ExposureSpotlight \li Spotlight exposure mode. - \row \li Camera.ExposureSports \li Spots exposure mode. - \row \li Camera.ExposureSnow \li Snow exposure mode. - \row \li Camera.ExposureBeach \li Beach exposure mode. - \row \li Camera.ExposureLargeAperture \li Use larger aperture with small depth of field. - \row \li Camera.ExposureSmallAperture \li Use smaller aperture. - \row \li Camera.ExposurePortrait \li Portrait exposure mode. - \row \li Camera.ExposureAction \li Action exposure mode. Since 5.5 - \row \li Camera.ExposureLandscape \li Landscape exposure mode. Since 5.5 - \row \li Camera.ExposureNightPortrait \li Night portrait exposure mode. Since 5.5 - \row \li Camera.ExposureTheatre \li Theatre exposure mode. Since 5.5 - \row \li Camera.ExposureSunset \li Sunset exposure mode. Since 5.5 - \row \li Camera.ExposureSteadyPhoto \li Steady photo exposure mode. Since 5.5 - \row \li Camera.ExposureFireworks \li Fireworks exposure mode. Since 5.5 - \row \li Camera.ExposureParty \li Party exposure mode. Since 5.5 - \row \li Camera.ExposureCandlelight \li Candlelight exposure mode. Since 5.5 - \row \li Camera.ExposureBarcode \li Barcode exposure mode. Since 5.5 - \row \li Camera.ExposureModeVendor \li The base value for device specific exposure modes. - \endtable -*/ - -QDeclarativeCameraExposure::ExposureMode QDeclarativeCameraExposure::exposureMode() const -{ - return QDeclarativeCameraExposure::ExposureMode(m_exposure->exposureMode()); -} - -void QDeclarativeCameraExposure::setExposureMode(QDeclarativeCameraExposure::ExposureMode mode) -{ - if (exposureMode() != mode) { - m_exposure->setExposureMode(QCameraExposure::ExposureMode(mode)); - emit exposureModeChanged(exposureMode()); - } -} - -/*! - \qmlproperty list<ExposureMode> QtMultimedia::CameraExposure::supportedExposureModes - - This property holds the supported exposure modes of the camera. - - \since 5.11 - \sa exposureMode - */ -QVariantList QDeclarativeCameraExposure::supportedExposureModes() const -{ - QVariantList supportedModes; - - for (int i = int(ExposureAuto); i <= int(QCameraExposure::ExposureBarcode); ++i) { - if (m_exposure->isExposureModeSupported((QCameraExposure::ExposureMode) i)) - supportedModes.append(QVariant(i)); - } - - return supportedModes; -} - -/*! - \property QDeclarativeCameraExposure::spotMeteringPoint - - This property holds the relative frame coordinates of the point to use - for exposure metering. This point is only used in spot metering mode, and it - typically defaults to the center \c (0.5, 0.5). - */ -/*! - \qmlproperty QPointF QtMultimedia::CameraExposure::spotMeteringPoint - - The property holds the frame coordinates of the point to use for exposure metering. - This point is only used in spot metering mode, and it typically defaults - to the center \c (0.5, 0.5). - */ - -QPointF QDeclarativeCameraExposure::spotMeteringPoint() const -{ - return m_exposure->spotMeteringPoint(); -} - -void QDeclarativeCameraExposure::setSpotMeteringPoint(const QPointF &point) -{ - QPointF oldPoint(spotMeteringPoint()); - m_exposure->setSpotMeteringPoint(point); - - if (oldPoint != spotMeteringPoint()) - emit spotMeteringPointChanged(spotMeteringPoint()); -} -/*! - \property QDeclarativeCameraExposure::meteringMode - - This property holds the camera metering mode (how exposure is balanced). - The mode can be one of the constants in \l QCameraExposure::MeteringMode. -*/ -/*! - \qmlproperty enumeration QtMultimedia::CameraExposure::meteringMode - - This property holds the camera metering mode (how exposure is balanced). - - The mode can be one of the following: - - \table - \header \li Value \li Description - \row \li Camera.MeteringMatrix \li A matrix of sample points is used to measure exposure. - \row \li Camera.MeteringAverage \li An average is used to measure exposure. - \row \li Camera.MeteringSpot \li A specific location (\l spotMeteringPoint) is used to measure exposure. - \endtable -*/ -QDeclarativeCameraExposure::MeteringMode QDeclarativeCameraExposure::meteringMode() const -{ - return QDeclarativeCameraExposure::MeteringMode(m_exposure->meteringMode()); -} - -void QDeclarativeCameraExposure::setMeteringMode(QDeclarativeCameraExposure::MeteringMode mode) -{ - QDeclarativeCameraExposure::MeteringMode oldMode = meteringMode(); - m_exposure->setMeteringMode(QCameraExposure::MeteringMode(mode)); - if (oldMode != meteringMode()) - emit meteringModeChanged(meteringMode()); -} - -QT_END_NAMESPACE - -#include "moc_qdeclarativecameraexposure_p.cpp" |