From 817fb006c7583a852ca07df004994d1a5226d162 Mon Sep 17 00:00:00 2001 From: Michael Goddard Date: Fri, 27 Jan 2012 14:10:35 +1000 Subject: Add a viewfinder resolution control for camera. For attempting to set the resolution. Change-Id: I9f3b189b90fee95bf6430e9a74a6599ebcc38697 Reviewed-by: Dmytro Poplavskiy --- src/multimedia/controls/controls.pri | 2 + .../qcameraviewfinderresolutioncontrol.cpp | 109 +++++++++++++++++++++ .../controls/qcameraviewfinderresolutioncontrol.h | 76 ++++++++++++++ 3 files changed, 187 insertions(+) create mode 100644 src/multimedia/controls/qcameraviewfinderresolutioncontrol.cpp create mode 100644 src/multimedia/controls/qcameraviewfinderresolutioncontrol.h diff --git a/src/multimedia/controls/controls.pri b/src/multimedia/controls/controls.pri index 5f7bcbb3c..050b5c374 100644 --- a/src/multimedia/controls/controls.pri +++ b/src/multimedia/controls/controls.pri @@ -13,6 +13,7 @@ PUBLIC_HEADERS += \ controls/qcameraimagecapturecontrol.h \ controls/qcameraimageprocessingcontrol.h \ controls/qcameralockscontrol.h \ + controls/qcameraviewfinderresolutioncontrol.h \ controls/qimageencodercontrol.h \ controls/qmediabackgroundplaybackcontrol.h \ controls/qmediacontainercontrol.h \ @@ -43,6 +44,7 @@ SOURCES += \ controls/qcameraimagecapturecontrol.cpp \ controls/qcameraimageprocessingcontrol.cpp \ controls/qcameralockscontrol.cpp \ + controls/qcameraviewfinderresolutioncontrol.cpp \ controls/qimageencodercontrol.cpp \ controls/qmediabackgroundplaybackcontrol.cpp \ controls/qmediacontainercontrol.cpp \ diff --git a/src/multimedia/controls/qcameraviewfinderresolutioncontrol.cpp b/src/multimedia/controls/qcameraviewfinderresolutioncontrol.cpp new file mode 100644 index 000000000..c739afb52 --- /dev/null +++ b/src/multimedia/controls/qcameraviewfinderresolutioncontrol.cpp @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qcameraviewfinderresolutioncontrol.h" +#include "qmediacontrol_p.h" + +QT_BEGIN_NAMESPACE + +/*! + \class QCameraViewfinderResolutionControl + \inmodule QtMultimedia + + \ingroup multimedia + \ingroup multimedia_control + + + \brief The QCameraViewfinderResolutionControl class provides an abstract class + for controlling camera viewfinder parameters. + + The interface name of QCameraViewfinderResolutionControl is \c com.nokia.Qt.QCameraViewfinderResolutionControl/1.0 as + defined in QCameraViewfinderResolutionControl_iid. + + \sa QMediaService::requestControl(), QCamera +*/ + +/*! + \macro QCameraViewfinderResolutionControl_iid + + \c com.nokia.Qt.QCameraViewfinderResolutionControl/1.0 + + Defines the interface name of the QCameraViewfinderResolutionControl class. + + \relates QCameraViewfinderResolutionControl +*/ + +/*! + Constructs a camera viewfinder control object with \a parent. +*/ +QCameraViewfinderResolutionControl::QCameraViewfinderResolutionControl(QObject *parent) + : QMediaControl(*new QMediaControlPrivate, parent) +{ +} + +/*! + Destroys the camera viewfinder control object. +*/ +QCameraViewfinderResolutionControl::~QCameraViewfinderResolutionControl() +{ +} + + +/*! + \fn QCameraViewfinderResolutionControl::viewfinderResolution() const + Returns the current resolution of the camera viewfinder stream. +*/ + +/*! + \fn QCameraViewfinderResolutionControl::setViewfinderResolution(const QSize &resolution) + Set the resolution of the camera viewfinder stream to \a resolution. + + Calling this while the camera is active may result in the camera being unloaded and + reloaded. If video recording is in progress, this call may be ignored. If an unsupported + resolution is specified the camera may fail to load, or the setting may be ignored. + + Returns false if this setting cannot be applied at this time or if the resolution is + invalid. Returns true if the setting will be applied (or attempted to be applied). +*/ + +#include "moc_qcameraviewfinderresolutioncontrol.cpp" +QT_END_NAMESPACE + diff --git a/src/multimedia/controls/qcameraviewfinderresolutioncontrol.h b/src/multimedia/controls/qcameraviewfinderresolutioncontrol.h new file mode 100644 index 000000000..101161d8e --- /dev/null +++ b/src/multimedia/controls/qcameraviewfinderresolutioncontrol.h @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** 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 QCAMERAVIEWFINDERRESOLUTIONCONTROL_H +#define QCAMERAVIEWFINDERRESOLUTIONCONTROL_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Multimedia) + +class Q_MULTIMEDIA_EXPORT QCameraViewfinderResolutionControl : public QMediaControl +{ + Q_OBJECT +public: + ~QCameraViewfinderResolutionControl(); + + virtual QSize viewfinderResolution() const = 0; + virtual bool setViewfinderResolution(const QSize &resolution) = 0; + +protected: + QCameraViewfinderResolutionControl(QObject *parent = 0); + +}; + +#define QCameraViewfinderResolutionControl_iid "com.nokia.Qt.QCameraViewfinderControl/1.0" +Q_MEDIA_DECLARE_CONTROL(QCameraViewfinderResolutionControl, QCameraViewfinderResolutionControl_iid) + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QCAMERAVIEWFINDERRESOLUTIONCONTROL_H -- cgit v1.2.3