/**************************************************************************** ** ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** GNU Lesser General Public License Usage ** This file may be used under the terms of the GNU Lesser General Public ** License version 2.1 as published by the Free Software Foundation and ** appearing in the file LICENSE.LGPL included in the packaging of this ** file. Please review the following information to ensure the GNU Lesser ** General Public License version 2.1 requirements will be met: ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU General ** Public License version 3.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of this ** file. Please review the following information to ensure the GNU General ** Public License version 3.0 requirements will be met: ** http://www.gnu.org/copyleft/gpl.html. ** ** Other Usage ** Alternatively, this file may be used in accordance with the terms and ** conditions contained in a signed written agreement between you and Nokia. ** ** ** ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef SIMULATORCAMERAEXPOSURECONTROL_H #define SIMULATORCAMERAEXPOSURECONTROL_H #include #include "simulatorcamerasettings.h" QT_BEGIN_NAMESPACE class SimulatorCameraSession; /* * Control for exposure related camera operation. */ class SimulatorCameraExposureControl : public QCameraExposureControl { Q_OBJECT public: SimulatorCameraExposureControl(SimulatorCameraSession *session, QObject *parent = 0); ~SimulatorCameraExposureControl(); // QCameraExposureControl // Exposure Mode QCameraExposure::ExposureMode exposureMode() const; void setExposureMode(QCameraExposure::ExposureMode mode); bool isExposureModeSupported(QCameraExposure::ExposureMode mode) const; // Metering Mode QCameraExposure::MeteringMode meteringMode() const; void setMeteringMode(QCameraExposure::MeteringMode mode); bool isMeteringModeSupported(QCameraExposure::MeteringMode mode) const; // Exposure Parameter bool isParameterSupported(ExposureParameter parameter) const; QVariant exposureParameter(ExposureParameter parameter) const; QCameraExposureControl::ParameterFlags exposureParameterFlags(ExposureParameter parameter) const; QVariantList supportedParameterRange(ExposureParameter parameter) const; bool setExposureParameter(ExposureParameter parameter, const QVariant& value); QString extendedParameterName(ExposureParameter parameter); private Q_SLOTS: // Internal Slots void apertureChanged(); void apertureRangeChanged(); void shutterSpeedChanged(); void isoSensitivityChanged(); private: // Internal - Implementing ExposureParameter // ISO Sensitivity int isoSensitivity() const; bool setManualIsoSensitivity(int iso); void setAutoIsoSensitivity(); bool isIsoSensitivitySupported(const int iso) const; // Aperture qreal aperture() const; bool setManualAperture(qreal aperture); void setAutoAperture(); bool isApertureSupported(const qreal aperture) const; // Shutter Speed qreal shutterSpeed() const; bool setManualShutterSpeed(qreal seconds); void setAutoShutterSpeed(); bool isShutterSpeedSupported(const qreal seconds) const; // Exposure Compensation qreal exposureCompensation() const; bool setManualExposureCompensation(qreal ev); void setAutoExposureCompensation(); bool isExposureCompensationSupported(const qreal ev) const; private: // Data QCameraExposure::ExposureMode mExposureMode; QCameraExposure::MeteringMode mMeteringMode; QPointF mSpot; SimulatorCameraSession *mSession; SimulatorCameraSettings *mSettings; }; QT_END_NAMESPACE #endif // SIMULATORCAMERAEXPOSURECONTROL_H