summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2012-01-24 10:56:52 +1000
committerQt by Nokia <qt-info@nokia.com>2012-01-27 08:26:47 +0100
commit155c48b97e7ff5f4d70b777e0a954f42826276f0 (patch)
tree69caa387b99025df91fe57e8617e1dbc55c82f89 /src
parent817fb006c7583a852ca07df004994d1a5226d162 (diff)
Moved zoom related properties out of QCameraFocusControl
Change-Id: I16f9b80ebbacc0b325530e81c291dc030763b65e Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/multimedia/camera/qcamerafocus.cpp125
-rw-r--r--src/multimedia/controls/controls.pri2
-rw-r--r--src/multimedia/controls/qcamerafocuscontrol.cpp68
-rw-r--r--src/multimedia/controls/qcamerafocuscontrol.h17
-rw-r--r--src/multimedia/controls/qcamerazoomcontrol.cpp189
-rw-r--r--src/multimedia/controls/qcamerazoomcontrol.h92
6 files changed, 383 insertions, 110 deletions
diff --git a/src/multimedia/camera/qcamerafocus.cpp b/src/multimedia/camera/qcamerafocus.cpp
index e952bd039..f6f9ddc8d 100644
--- a/src/multimedia/camera/qcamerafocus.cpp
+++ b/src/multimedia/camera/qcamerafocus.cpp
@@ -46,6 +46,7 @@
#include <qcameracontrol.h>
#include <qcameraexposurecontrol.h>
#include <qcamerafocuscontrol.h>
+#include <qcamerazoomcontrol.h>
#include <qmediarecordercontrol.h>
#include <qcameraimagecapturecontrol.h>
#include <qvideodevicecontrol.h>
@@ -67,6 +68,43 @@ public:
} _registerCameraFocusMetaTypes;
}
+class QCameraFocusFakeZoomControl : public QCameraZoomControl
+{
+public:
+ QCameraFocusFakeZoomControl(QObject *parent) :
+ QCameraZoomControl(parent) {}
+
+ qreal maximumOpticalZoom() const { return 1.0; }
+ qreal maximumDigitalZoom() const { return 1.0; }
+
+ qreal requestedOpticalZoom() const { return 1.0; }
+ qreal requestedDigitalZoom() const { return 1.0; }
+ qreal currentOpticalZoom() const { return 1.0; }
+ qreal currentDigitalZoom() const { return 1.0; }
+
+ void zoomTo(qreal, qreal) { qWarning("The camera doesn't support zooming."); }
+};
+
+class QCameraFocusFakeFocusControl : public QCameraFocusControl
+{
+public:
+ QCameraFocusFakeFocusControl(QObject *parent) :
+ QCameraFocusControl(parent) {}
+
+ QCameraFocus::FocusMode focusMode() const { return QCameraFocus::AutoFocus; }
+ void setFocusMode(QCameraFocus::FocusMode) { qWarning("Focus mode selection is not supported"); }
+ bool isFocusModeSupported(QCameraFocus::FocusMode) const { return false; }
+
+ QCameraFocus::FocusPointMode focusPointMode() const { return QCameraFocus::FocusPointAuto; }
+ void setFocusPointMode(QCameraFocus::FocusPointMode) { qWarning("Focus points mode selection is not supported"); }
+ bool isFocusPointModeSupported(QCameraFocus::FocusPointMode) const { return false; }
+ QPointF customFocusPoint() const { return QPointF(0.5,0.5); }
+ void setCustomFocusPoint(const QPointF &) { qWarning("Focus points selection is not supported"); }
+
+ QCameraFocusZoneList focusZones() const { return QCameraFocusZoneList(); }
+};
+
+
class QCameraFocusZoneData : public QSharedData
{
@@ -295,7 +333,10 @@ public:
QCameraFocus *q_ptr;
QCamera *camera;
+
QCameraFocusControl *focusControl;
+ QCameraZoomControl *zoomControl;
+ bool available;
};
@@ -304,20 +345,32 @@ void QCameraFocusPrivate::initControls()
Q_Q(QCameraFocus);
focusControl = 0;
+ zoomControl = 0;
QMediaService *service = camera->service();
- if (service)
+ if (service) {
focusControl = qobject_cast<QCameraFocusControl *>(service->requestControl(QCameraFocusControl_iid));
-
- if (focusControl) {
- q->connect(focusControl, SIGNAL(opticalZoomChanged(qreal)), q, SIGNAL(opticalZoomChanged(qreal)));
- q->connect(focusControl, SIGNAL(digitalZoomChanged(qreal)), q, SIGNAL(digitalZoomChanged(qreal)));
- q->connect(focusControl, SIGNAL(maximumOpticalZoomChanged(qreal)),
- q, SIGNAL(maximumOpticalZoomChanged(qreal)));
- q->connect(focusControl, SIGNAL(maximumDigitalZoomChanged(qreal)),
- q, SIGNAL(maximumDigitalZoomChanged(qreal)));
- q->connect(focusControl, SIGNAL(focusZonesChanged()), q, SIGNAL(focusZonesChanged()));
+ zoomControl = qobject_cast<QCameraZoomControl *>(service->requestControl(QCameraZoomControl_iid));
}
+
+ available = focusControl != 0;
+
+ if (!focusControl)
+ focusControl = new QCameraFocusFakeFocusControl(q);
+
+ if (!zoomControl)
+ zoomControl = new QCameraFocusFakeZoomControl(q);
+
+ q->connect(focusControl, SIGNAL(focusZonesChanged()), q, SIGNAL(focusZonesChanged()));
+
+ q->connect(zoomControl, SIGNAL(currentOpticalZoomChanged(qreal)),
+ q, SIGNAL(opticalZoomChanged(qreal)));
+ q->connect(zoomControl, SIGNAL(currentDigitalZoomChanged(qreal)),
+ q, SIGNAL(digitalZoomChanged(qreal)));
+ q->connect(zoomControl, SIGNAL(maximumOpticalZoomChanged(qreal)),
+ q, SIGNAL(maximumOpticalZoomChanged(qreal)));
+ q->connect(zoomControl, SIGNAL(maximumDigitalZoomChanged(qreal)),
+ q, SIGNAL(maximumDigitalZoomChanged(qreal)));
}
/*!
@@ -350,7 +403,7 @@ QCameraFocus::~QCameraFocus()
*/
bool QCameraFocus::isAvailable() const
{
- return d_func()->focusControl != 0;
+ return d_func()->available;
}
/*!
@@ -365,22 +418,21 @@ bool QCameraFocus::isAvailable() const
QCameraFocus::FocusMode QCameraFocus::focusMode() const
{
- return d_func()->focusControl ? d_func()->focusControl->focusMode() : QCameraFocus::AutoFocus;
+ return d_func()->focusControl->focusMode();
}
void QCameraFocus::setFocusMode(QCameraFocus::FocusMode mode)
{
- if (d_func()->focusControl)
- d_func()->focusControl->setFocusMode(mode);
+ d_func()->focusControl->setFocusMode(mode);
}
/*!
Returns true if the focus \a mode is supported by camera.
*/
-bool QCameraFocus::isFocusModeSupported(QCameraFocus::FocusMode mode) const
+bool QCameraFocus::isFocusModeSupported(FocusMode mode) const
{
- return d_func()->focusControl ? d_func()->focusControl->isFocusModeSupported(mode) : false;
+ return d_func()->focusControl->isFocusModeSupported(mode);
}
/*!
@@ -396,17 +448,12 @@ bool QCameraFocus::isFocusModeSupported(QCameraFocus::FocusMode mode) const
QCameraFocus::FocusPointMode QCameraFocus::focusPointMode() const
{
- return d_func()->focusControl ?
- d_func()->focusControl->focusPointMode() :
- QCameraFocus::FocusPointAuto;
+ return d_func()->focusControl->focusPointMode();
}
void QCameraFocus::setFocusPointMode(QCameraFocus::FocusPointMode mode)
{
- if (d_func()->focusControl)
- d_func()->focusControl->setFocusPointMode(mode);
- else
- qWarning("Focus points mode selection is not supported");
+ d_func()->focusControl->setFocusPointMode(mode);
}
/*!
@@ -414,10 +461,7 @@ void QCameraFocus::setFocusPointMode(QCameraFocus::FocusPointMode mode)
*/
bool QCameraFocus::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
{
- return d_func()->focusControl ?
- d_func()->focusControl->isFocusPointModeSupported(mode) :
- false;
-
+ return d_func()->focusControl->isFocusPointModeSupported(mode);
}
/*!
@@ -431,18 +475,12 @@ bool QCameraFocus::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode)
QPointF QCameraFocus::customFocusPoint() const
{
- return d_func()->focusControl ?
- d_func()->focusControl->customFocusPoint() :
- QPointF(0.5,0.5);
+ return d_func()->focusControl->customFocusPoint();
}
void QCameraFocus::setCustomFocusPoint(const QPointF &point)
{
- if (d_func()->focusControl)
- d_func()->focusControl->setCustomFocusPoint(point);
- else
- qWarning("Focus points selection is not supported");
-
+ d_func()->focusControl->setCustomFocusPoint(point);
}
/*!
@@ -458,9 +496,7 @@ void QCameraFocus::setCustomFocusPoint(const QPointF &point)
*/
QCameraFocusZoneList QCameraFocus::focusZones() const
{
- return d_func()->focusControl ?
- d_func()->focusControl->focusZones() :
- QCameraFocusZoneList();
+ return d_func()->focusControl->focusZones();
}
/*!
@@ -471,7 +507,7 @@ QCameraFocusZoneList QCameraFocus::focusZones() const
qreal QCameraFocus::maximumOpticalZoom() const
{
- return d_func()->focusControl ? d_func()->focusControl->maximumOpticalZoom() : 1.0;
+ return d_func()->zoomControl->maximumOpticalZoom();
}
/*!
@@ -482,7 +518,7 @@ qreal QCameraFocus::maximumOpticalZoom() const
qreal QCameraFocus::maximumDigitalZoom() const
{
- return d_func()->focusControl ? d_func()->focusControl->maximumDigitalZoom() : 1.0;
+ return d_func()->zoomControl->maximumDigitalZoom();
}
/*!
@@ -494,7 +530,7 @@ qreal QCameraFocus::maximumDigitalZoom() const
qreal QCameraFocus::opticalZoom() const
{
- return d_func()->focusControl ? d_func()->focusControl->opticalZoom() : 1.0;
+ return d_func()->zoomControl->currentOpticalZoom();
}
/*!
@@ -505,7 +541,7 @@ qreal QCameraFocus::opticalZoom() const
*/
qreal QCameraFocus::digitalZoom() const
{
- return d_func()->focusControl ? d_func()->focusControl->digitalZoom() : 1.0;
+ return d_func()->zoomControl->currentDigitalZoom();
}
@@ -518,10 +554,7 @@ qreal QCameraFocus::digitalZoom() const
*/
void QCameraFocus::zoomTo(qreal optical, qreal digital)
{
- if (d_func()->focusControl)
- d_func()->focusControl->zoomTo(optical, digital);
- else
- qWarning("The camera doesn't support zooming.");
+ d_func()->zoomControl->zoomTo(optical, digital);
}
/*!
diff --git a/src/multimedia/controls/controls.pri b/src/multimedia/controls/controls.pri
index 050b5c374..25d94c114 100644
--- a/src/multimedia/controls/controls.pri
+++ b/src/multimedia/controls/controls.pri
@@ -10,6 +10,7 @@ PUBLIC_HEADERS += \
controls/qcamerafeedbackcontrol.h \
controls/qcameraflashcontrol.h \
controls/qcamerafocuscontrol.h \
+ controls/qcamerazoomcontrol.h \
controls/qcameraimagecapturecontrol.h \
controls/qcameraimageprocessingcontrol.h \
controls/qcameralockscontrol.h \
@@ -41,6 +42,7 @@ SOURCES += \
controls/qcamerafeedbackcontrol.cpp \
controls/qcameraflashcontrol.cpp \
controls/qcamerafocuscontrol.cpp \
+ controls/qcamerazoomcontrol.cpp \
controls/qcameraimagecapturecontrol.cpp \
controls/qcameraimageprocessingcontrol.cpp \
controls/qcameralockscontrol.cpp \
diff --git a/src/multimedia/controls/qcamerafocuscontrol.cpp b/src/multimedia/controls/qcamerafocuscontrol.cpp
index abbb015ab..6618d0cfa 100644
--- a/src/multimedia/controls/qcamerafocuscontrol.cpp
+++ b/src/multimedia/controls/qcamerafocuscontrol.cpp
@@ -111,40 +111,6 @@ QCameraFocusControl::~QCameraFocusControl()
Returns true if focus \a mode is supported.
*/
-
-/*!
- \fn qreal QCameraFocusControl::maximumOpticalZoom() const
-
- Returns the maximum optical zoom value, or 1.0 if optical zoom is not supported.
-*/
-
-
-/*!
- \fn qreal QCameraFocusControl::maximumDigitalZoom() const
-
- Returns the maximum digital zoom value, or 1.0 if digital zoom is not supported.
-*/
-
-
-/*!
- \fn qreal QCameraFocusControl::opticalZoom() const
-
- Return the current optical zoom value.
-*/
-
-/*!
- \fn qreal QCameraFocusControl::digitalZoom() const
-
- Return the current digital zoom value.
-*/
-
-
-/*!
- \fn void QCameraFocusControl::zoomTo(qreal optical, qreal digital)
-
- Sets \a optical and \a digital zoom values.
-*/
-
/*!
\fn QCameraFocusControl::focusPointMode() const
@@ -191,41 +157,39 @@ QCameraFocusControl::~QCameraFocusControl()
*/
/*!
- \fn void QCameraFocusControl::opticalZoomChanged(qreal zoom)
+ \fn QCameraFocusControl::focusZonesChanged()
- Signal emitted when the optical \a zoom value changed.
-*/
+ Signal is emitted when the set of zones, camera focused on is changed.
-/*!
- \fn void QCameraFocusControl::digitalZoomChanged(qreal zoom)
+ Usually the zones list is changed when the camera is focused.
- Signal emitted when the digital \a zoom value changed.
+ \sa QCameraFocusControl::focusZones()
*/
/*!
- \fn void QCameraFocusControl::maximumOpticalZoomChanged(qreal zoom)
+ \fn QCameraFocusControl::focusModeChanged
+
+ Signal is emitted when the focus mode is chaged,
+ usually in result of QCameraFocusControl::setFocusMode call or capture mode changes.
- Signal emitted when the maximum supported optical \a zoom value changed.
+ \sa QCameraFocusControl::focusMode QCameraFocusControl::setFocusMode
*/
/*!
- \fn void QCameraFocusControl::maximumDigitalZoomChanged(qreal zoom)
+ \fn QCameraFocusControl::focusPointModeChanged
- Signal emitted when the maximum supported digital \a zoom value changed.
+ Signal is emitted when the focus point mode is chaged,
+ usually in result of QCameraFocusControl::setFocusPointMode call or capture mode changes.
- The maximum supported zoom value can depend on other camera settings,
- like capture mode or resolution.
+ \sa QCameraFocusControl::focusPointMode QCameraFocusControl::setFocusPointMode
*/
-
/*!
- \fn QCameraFocusControl::focusZonesChanged()
+ \fn QCameraFocusControl::customFocusPointChanged
- Signal is emitted when the set of zones, camera focused on is changed.
-
- Usually the zones list is changed when the camera is focused.
+ Signal is emitted when the custom focus point is changed.
- \sa QCameraFocusControl::focusZones()
+ \sa QCameraFocusControl::customFocusPoint QCameraFocusControl::setCustomFocusPoint
*/
diff --git a/src/multimedia/controls/qcamerafocuscontrol.h b/src/multimedia/controls/qcamerafocuscontrol.h
index 43b3122cb..7da4a24c7 100644
--- a/src/multimedia/controls/qcamerafocuscontrol.h
+++ b/src/multimedia/controls/qcamerafocuscontrol.h
@@ -65,13 +65,6 @@ public:
virtual void setFocusMode(QCameraFocus::FocusMode mode) = 0;
virtual bool isFocusModeSupported(QCameraFocus::FocusMode mode) const = 0;
- virtual qreal maximumOpticalZoom() const = 0;
- virtual qreal maximumDigitalZoom() const = 0;
- virtual qreal opticalZoom() const = 0;
- virtual qreal digitalZoom() const = 0;
-
- virtual void zoomTo(qreal optical, qreal digital) = 0;
-
virtual QCameraFocus::FocusPointMode focusPointMode() const = 0;
virtual void setFocusPointMode(QCameraFocus::FocusPointMode mode) = 0;
virtual bool isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const = 0;
@@ -81,17 +74,17 @@ public:
virtual QCameraFocusZoneList focusZones() const = 0;
Q_SIGNALS:
- void opticalZoomChanged(qreal opticalZoom);
- void digitalZoomChanged(qreal digitalZoom);
+ void focusModeChanged(QCameraFocus::FocusMode mode);
+ void focusPointModeChanged(QCameraFocus::FocusPointMode mode);
+ void customFocusPointChanged(const QPointF &point);
+
void focusZonesChanged();
- void maximumOpticalZoomChanged(qreal);
- void maximumDigitalZoomChanged(qreal);
protected:
QCameraFocusControl(QObject* parent = 0);
};
-#define QCameraFocusControl_iid "com.nokia.Qt.QCameraFocusingControl/1.0"
+#define QCameraFocusControl_iid "com.nokia.Qt.QCameraFocusControl/1.0"
Q_MEDIA_DECLARE_CONTROL(QCameraFocusControl, QCameraFocusControl_iid)
QT_END_NAMESPACE
diff --git a/src/multimedia/controls/qcamerazoomcontrol.cpp b/src/multimedia/controls/qcamerazoomcontrol.cpp
new file mode 100644
index 000000000..82666c673
--- /dev/null
+++ b/src/multimedia/controls/qcamerazoomcontrol.cpp
@@ -0,0 +1,189 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: http://www.qt-project.org/
+**
+** 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 <qcamerazoomcontrol.h>
+#include "qmediacontrol_p.h"
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \class QCameraZoomControl
+
+
+ \brief The QCameraZoomControl class supplies control for
+ optical and digital camera zoom.
+
+ \inmodule QtMultimedia
+
+ \ingroup multimedia
+ \ingroup multimedia_control
+
+ The interface name of QCameraZoomControl is \c com.nokia.Qt.QCameraZoomControl/1.0 as
+ defined in QCameraZoomControl_iid.
+
+
+ \sa QMediaService::requestControl(), QCamera
+*/
+
+/*!
+ \macro QCameraZoomControl_iid
+
+ \c com.nokia.Qt.QCameraZoomControl/1.0
+
+ Defines the interface name of the QCameraZoomControl class.
+
+ \relates QCameraZoomControl
+*/
+
+/*!
+ Constructs a camera zoom control object with \a parent.
+*/
+
+QCameraZoomControl::QCameraZoomControl(QObject *parent):
+ QMediaControl(*new QMediaControlPrivate, parent)
+{
+}
+
+/*!
+ Destruct the camera zoom control object.
+*/
+
+QCameraZoomControl::~QCameraZoomControl()
+{
+}
+
+/*!
+ \fn qreal QCameraZoomControl::maximumOpticalZoom() const
+
+ Returns the maximum optical zoom value, or 1.0 if optical zoom is not supported.
+*/
+
+
+/*!
+ \fn qreal QCameraZoomControl::maximumDigitalZoom() const
+
+ Returns the maximum digital zoom value, or 1.0 if digital zoom is not supported.
+*/
+
+
+/*!
+ \fn qreal QCameraZoomControl::requestedOpticalZoom() const
+
+ Return the requested optical zoom value.
+*/
+
+/*!
+ \fn qreal QCameraZoomControl::requestedDigitalZoom() const
+
+ Return the requested digital zoom value.
+*/
+
+/*!
+ \fn qreal QCameraZoomControl::currentOpticalZoom() const
+
+ Return the current optical zoom value.
+*/
+
+/*!
+ \fn qreal QCameraZoomControl::currentDigitalZoom() const
+
+ Return the current digital zoom value.
+*/
+
+/*!
+ \fn void QCameraZoomControl::zoomTo(qreal optical, qreal digital)
+
+ Sets \a optical and \a digital zoom values.
+
+ Zooming can be asynchronous with value changes reported with
+ currentDigitalZoomChanged() and currentOpticalZoomChanged() signals.
+
+ The backend should expect and correctly handle frequent zoomTo() calls
+ during zoom animations or slider movements.
+*/
+
+
+/*!
+ \fn void QCameraZoomControl::currentOpticalZoomChanged(qreal zoom)
+
+ Signal emitted when the current optical \a zoom value changed.
+*/
+
+/*!
+ \fn void QCameraZoomControl::currentDigitalZoomChanged(qreal zoom)
+
+ Signal emitted when the current digital \a zoom value changed.
+*/
+
+/*!
+ \fn void QCameraZoomControl::requestedOpticalZoomChanged(qreal zoom)
+
+ Signal emitted when the requested optical \a zoom value changed.
+*/
+
+/*!
+ \fn void QCameraZoomControl::requestedDigitalZoomChanged(qreal zoom)
+
+ Signal emitted when the requested digital \a zoom value changed.
+*/
+
+
+/*!
+ \fn void QCameraZoomControl::maximumOpticalZoomChanged(qreal zoom)
+
+ Signal emitted when the maximum supported optical \a zoom value changed.
+
+ The maximum supported zoom value can depend on other camera settings,
+ like focusing mode.
+*/
+
+/*!
+ \fn void QCameraZoomControl::maximumDigitalZoomChanged(qreal zoom)
+
+ Signal emitted when the maximum supported digital \a zoom value changed.
+
+ The maximum supported zoom value can depend on other camera settings,
+ like capture mode or resolution.
+*/
+
+#include "moc_qcamerazoomcontrol.cpp"
+QT_END_NAMESPACE
+
diff --git a/src/multimedia/controls/qcamerazoomcontrol.h b/src/multimedia/controls/qcamerazoomcontrol.h
new file mode 100644
index 000000000..d33b9cd45
--- /dev/null
+++ b/src/multimedia/controls/qcamerazoomcontrol.h
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: http://www.qt-project.org/
+**
+** 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 QCAMERAZOOMCONTROL_H
+#define QCAMERAZOOMCONTROL_H
+
+#include <qmediacontrol.h>
+#include <qmediaobject.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Multimedia)
+
+
+class Q_MULTIMEDIA_EXPORT QCameraZoomControl : public QMediaControl
+{
+ Q_OBJECT
+
+public:
+ ~QCameraZoomControl();
+
+ virtual qreal maximumOpticalZoom() const = 0;
+ virtual qreal maximumDigitalZoom() const = 0;
+
+ virtual qreal requestedOpticalZoom() const = 0;
+ virtual qreal requestedDigitalZoom() const = 0;
+ virtual qreal currentOpticalZoom() const = 0;
+ virtual qreal currentDigitalZoom() const = 0;
+
+ virtual void zoomTo(qreal optical, qreal digital) = 0;
+
+Q_SIGNALS:
+ void maximumOpticalZoomChanged(qreal);
+ void maximumDigitalZoomChanged(qreal);
+
+ void requestedOpticalZoomChanged(qreal opticalZoom);
+ void requestedDigitalZoomChanged(qreal digitalZoom);
+ void currentOpticalZoomChanged(qreal opticalZoom);
+ void currentDigitalZoomChanged(qreal digitalZoom);
+
+protected:
+ QCameraZoomControl(QObject* parent = 0);
+};
+
+#define QCameraZoomControl_iid "com.nokia.Qt.QCameraZoomControl/1.0"
+Q_MEDIA_DECLARE_CONTROL(QCameraZoomControl, QCameraZoomControl_iid)
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QCAMERAZOOMCONTROL_H