Moved zoom related properties out of QCameraFocusControl
Change-Id: I16f9b80ebbacc0b325530e81c291dc030763b65e Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
This commit is contained in:
committed by
Qt by Nokia
parent
817fb006c7
commit
155c48b97e
@@ -46,6 +46,7 @@
|
|||||||
#include <qcameracontrol.h>
|
#include <qcameracontrol.h>
|
||||||
#include <qcameraexposurecontrol.h>
|
#include <qcameraexposurecontrol.h>
|
||||||
#include <qcamerafocuscontrol.h>
|
#include <qcamerafocuscontrol.h>
|
||||||
|
#include <qcamerazoomcontrol.h>
|
||||||
#include <qmediarecordercontrol.h>
|
#include <qmediarecordercontrol.h>
|
||||||
#include <qcameraimagecapturecontrol.h>
|
#include <qcameraimagecapturecontrol.h>
|
||||||
#include <qvideodevicecontrol.h>
|
#include <qvideodevicecontrol.h>
|
||||||
@@ -67,6 +68,43 @@ public:
|
|||||||
} _registerCameraFocusMetaTypes;
|
} _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
|
class QCameraFocusZoneData : public QSharedData
|
||||||
{
|
{
|
||||||
@@ -295,7 +333,10 @@ public:
|
|||||||
QCameraFocus *q_ptr;
|
QCameraFocus *q_ptr;
|
||||||
|
|
||||||
QCamera *camera;
|
QCamera *camera;
|
||||||
|
|
||||||
QCameraFocusControl *focusControl;
|
QCameraFocusControl *focusControl;
|
||||||
|
QCameraZoomControl *zoomControl;
|
||||||
|
bool available;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -304,20 +345,32 @@ void QCameraFocusPrivate::initControls()
|
|||||||
Q_Q(QCameraFocus);
|
Q_Q(QCameraFocus);
|
||||||
|
|
||||||
focusControl = 0;
|
focusControl = 0;
|
||||||
|
zoomControl = 0;
|
||||||
|
|
||||||
QMediaService *service = camera->service();
|
QMediaService *service = camera->service();
|
||||||
if (service)
|
if (service) {
|
||||||
focusControl = qobject_cast<QCameraFocusControl *>(service->requestControl(QCameraFocusControl_iid));
|
focusControl = qobject_cast<QCameraFocusControl *>(service->requestControl(QCameraFocusControl_iid));
|
||||||
|
zoomControl = qobject_cast<QCameraZoomControl *>(service->requestControl(QCameraZoomControl_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()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
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
|
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)
|
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.
|
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
|
QCameraFocus::FocusPointMode QCameraFocus::focusPointMode() const
|
||||||
{
|
{
|
||||||
return d_func()->focusControl ?
|
return d_func()->focusControl->focusPointMode();
|
||||||
d_func()->focusControl->focusPointMode() :
|
|
||||||
QCameraFocus::FocusPointAuto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void QCameraFocus::setFocusPointMode(QCameraFocus::FocusPointMode mode)
|
void QCameraFocus::setFocusPointMode(QCameraFocus::FocusPointMode mode)
|
||||||
{
|
{
|
||||||
if (d_func()->focusControl)
|
d_func()->focusControl->setFocusPointMode(mode);
|
||||||
d_func()->focusControl->setFocusPointMode(mode);
|
|
||||||
else
|
|
||||||
qWarning("Focus points mode selection is not supported");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -414,10 +461,7 @@ void QCameraFocus::setFocusPointMode(QCameraFocus::FocusPointMode mode)
|
|||||||
*/
|
*/
|
||||||
bool QCameraFocus::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
|
bool QCameraFocus::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
|
||||||
{
|
{
|
||||||
return d_func()->focusControl ?
|
return d_func()->focusControl->isFocusPointModeSupported(mode);
|
||||||
d_func()->focusControl->isFocusPointModeSupported(mode) :
|
|
||||||
false;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -431,18 +475,12 @@ bool QCameraFocus::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode)
|
|||||||
|
|
||||||
QPointF QCameraFocus::customFocusPoint() const
|
QPointF QCameraFocus::customFocusPoint() const
|
||||||
{
|
{
|
||||||
return d_func()->focusControl ?
|
return d_func()->focusControl->customFocusPoint();
|
||||||
d_func()->focusControl->customFocusPoint() :
|
|
||||||
QPointF(0.5,0.5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void QCameraFocus::setCustomFocusPoint(const QPointF &point)
|
void QCameraFocus::setCustomFocusPoint(const QPointF &point)
|
||||||
{
|
{
|
||||||
if (d_func()->focusControl)
|
d_func()->focusControl->setCustomFocusPoint(point);
|
||||||
d_func()->focusControl->setCustomFocusPoint(point);
|
|
||||||
else
|
|
||||||
qWarning("Focus points selection is not supported");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -458,9 +496,7 @@ void QCameraFocus::setCustomFocusPoint(const QPointF &point)
|
|||||||
*/
|
*/
|
||||||
QCameraFocusZoneList QCameraFocus::focusZones() const
|
QCameraFocusZoneList QCameraFocus::focusZones() const
|
||||||
{
|
{
|
||||||
return d_func()->focusControl ?
|
return d_func()->focusControl->focusZones();
|
||||||
d_func()->focusControl->focusZones() :
|
|
||||||
QCameraFocusZoneList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -471,7 +507,7 @@ QCameraFocusZoneList QCameraFocus::focusZones() const
|
|||||||
|
|
||||||
qreal QCameraFocus::maximumOpticalZoom() 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
|
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
|
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
|
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)
|
void QCameraFocus::zoomTo(qreal optical, qreal digital)
|
||||||
{
|
{
|
||||||
if (d_func()->focusControl)
|
d_func()->zoomControl->zoomTo(optical, digital);
|
||||||
d_func()->focusControl->zoomTo(optical, digital);
|
|
||||||
else
|
|
||||||
qWarning("The camera doesn't support zooming.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ PUBLIC_HEADERS += \
|
|||||||
controls/qcamerafeedbackcontrol.h \
|
controls/qcamerafeedbackcontrol.h \
|
||||||
controls/qcameraflashcontrol.h \
|
controls/qcameraflashcontrol.h \
|
||||||
controls/qcamerafocuscontrol.h \
|
controls/qcamerafocuscontrol.h \
|
||||||
|
controls/qcamerazoomcontrol.h \
|
||||||
controls/qcameraimagecapturecontrol.h \
|
controls/qcameraimagecapturecontrol.h \
|
||||||
controls/qcameraimageprocessingcontrol.h \
|
controls/qcameraimageprocessingcontrol.h \
|
||||||
controls/qcameralockscontrol.h \
|
controls/qcameralockscontrol.h \
|
||||||
@@ -41,6 +42,7 @@ SOURCES += \
|
|||||||
controls/qcamerafeedbackcontrol.cpp \
|
controls/qcamerafeedbackcontrol.cpp \
|
||||||
controls/qcameraflashcontrol.cpp \
|
controls/qcameraflashcontrol.cpp \
|
||||||
controls/qcamerafocuscontrol.cpp \
|
controls/qcamerafocuscontrol.cpp \
|
||||||
|
controls/qcamerazoomcontrol.cpp \
|
||||||
controls/qcameraimagecapturecontrol.cpp \
|
controls/qcameraimagecapturecontrol.cpp \
|
||||||
controls/qcameraimageprocessingcontrol.cpp \
|
controls/qcameraimageprocessingcontrol.cpp \
|
||||||
controls/qcameralockscontrol.cpp \
|
controls/qcameralockscontrol.cpp \
|
||||||
|
|||||||
@@ -111,40 +111,6 @@ QCameraFocusControl::~QCameraFocusControl()
|
|||||||
Returns true if focus \a mode is supported.
|
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
|
\fn QCameraFocusControl::focusPointMode() const
|
||||||
|
|
||||||
@@ -190,34 +156,6 @@ QCameraFocusControl::~QCameraFocusControl()
|
|||||||
Returns the list of zones, the camera is using for focusing or focused on.
|
Returns the list of zones, the camera is using for focusing or focused on.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QCameraFocusControl::opticalZoomChanged(qreal zoom)
|
|
||||||
|
|
||||||
Signal emitted when the optical \a zoom value changed.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QCameraFocusControl::digitalZoomChanged(qreal zoom)
|
|
||||||
|
|
||||||
Signal emitted when the digital \a zoom value changed.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QCameraFocusControl::maximumOpticalZoomChanged(qreal zoom)
|
|
||||||
|
|
||||||
Signal emitted when the maximum supported optical \a zoom value changed.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QCameraFocusControl::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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn QCameraFocusControl::focusZonesChanged()
|
\fn QCameraFocusControl::focusZonesChanged()
|
||||||
|
|
||||||
@@ -228,6 +166,32 @@ QCameraFocusControl::~QCameraFocusControl()
|
|||||||
\sa QCameraFocusControl::focusZones()
|
\sa QCameraFocusControl::focusZones()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn QCameraFocusControl::focusModeChanged
|
||||||
|
|
||||||
|
Signal is emitted when the focus mode is chaged,
|
||||||
|
usually in result of QCameraFocusControl::setFocusMode call or capture mode changes.
|
||||||
|
|
||||||
|
\sa QCameraFocusControl::focusMode QCameraFocusControl::setFocusMode
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn QCameraFocusControl::focusPointModeChanged
|
||||||
|
|
||||||
|
Signal is emitted when the focus point mode is chaged,
|
||||||
|
usually in result of QCameraFocusControl::setFocusPointMode call or capture mode changes.
|
||||||
|
|
||||||
|
\sa QCameraFocusControl::focusPointMode QCameraFocusControl::setFocusPointMode
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn QCameraFocusControl::customFocusPointChanged
|
||||||
|
|
||||||
|
Signal is emitted when the custom focus point is changed.
|
||||||
|
|
||||||
|
\sa QCameraFocusControl::customFocusPoint QCameraFocusControl::setCustomFocusPoint
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "moc_qcamerafocuscontrol.cpp"
|
#include "moc_qcamerafocuscontrol.cpp"
|
||||||
|
|||||||
@@ -65,13 +65,6 @@ public:
|
|||||||
virtual void setFocusMode(QCameraFocus::FocusMode mode) = 0;
|
virtual void setFocusMode(QCameraFocus::FocusMode mode) = 0;
|
||||||
virtual bool isFocusModeSupported(QCameraFocus::FocusMode mode) const = 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 QCameraFocus::FocusPointMode focusPointMode() const = 0;
|
||||||
virtual void setFocusPointMode(QCameraFocus::FocusPointMode mode) = 0;
|
virtual void setFocusPointMode(QCameraFocus::FocusPointMode mode) = 0;
|
||||||
virtual bool isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const = 0;
|
virtual bool isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const = 0;
|
||||||
@@ -81,17 +74,17 @@ public:
|
|||||||
virtual QCameraFocusZoneList focusZones() const = 0;
|
virtual QCameraFocusZoneList focusZones() const = 0;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void opticalZoomChanged(qreal opticalZoom);
|
void focusModeChanged(QCameraFocus::FocusMode mode);
|
||||||
void digitalZoomChanged(qreal digitalZoom);
|
void focusPointModeChanged(QCameraFocus::FocusPointMode mode);
|
||||||
|
void customFocusPointChanged(const QPointF &point);
|
||||||
|
|
||||||
void focusZonesChanged();
|
void focusZonesChanged();
|
||||||
void maximumOpticalZoomChanged(qreal);
|
|
||||||
void maximumDigitalZoomChanged(qreal);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QCameraFocusControl(QObject* parent = 0);
|
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)
|
Q_MEDIA_DECLARE_CONTROL(QCameraFocusControl, QCameraFocusControl_iid)
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|||||||
189
src/multimedia/controls/qcamerazoomcontrol.cpp
Normal file
189
src/multimedia/controls/qcamerazoomcontrol.cpp
Normal file
@@ -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
|
||||||
|
|
||||||
92
src/multimedia/controls/qcamerazoomcontrol.h
Normal file
92
src/multimedia/controls/qcamerazoomcontrol.h
Normal file
@@ -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
|
||||||
@@ -290,7 +290,7 @@ void tst_QCamera::testSimpleCameraFocus()
|
|||||||
QVERIFY(!cameraFocus->isFocusModeSupported(QCameraFocus::InfinityFocus));
|
QVERIFY(!cameraFocus->isFocusModeSupported(QCameraFocus::InfinityFocus));
|
||||||
|
|
||||||
QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
|
QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
|
||||||
QTest::ignoreMessage(QtWarningMsg, "Focus points mode selection is not supported");
|
QTest::ignoreMessage(QtWarningMsg, "Focus mode selection is not supported");
|
||||||
cameraFocus->setFocusMode(QCameraFocus::ContinuousFocus);
|
cameraFocus->setFocusMode(QCameraFocus::ContinuousFocus);
|
||||||
QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
|
QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
|
||||||
|
|
||||||
@@ -308,7 +308,7 @@ void tst_QCamera::testSimpleCameraFocus()
|
|||||||
QVERIFY(!cameraFocus->isFocusPointModeSupported(QCameraFocus::FocusPointAuto));
|
QVERIFY(!cameraFocus->isFocusPointModeSupported(QCameraFocus::FocusPointAuto));
|
||||||
QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointAuto);
|
QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointAuto);
|
||||||
|
|
||||||
|
QTest::ignoreMessage(QtWarningMsg, "Focus points mode selection is not supported");
|
||||||
cameraFocus->setFocusPointMode( QCameraFocus::FocusPointCenter );
|
cameraFocus->setFocusPointMode( QCameraFocus::FocusPointCenter );
|
||||||
QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointAuto);
|
QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointAuto);
|
||||||
|
|
||||||
@@ -1751,7 +1751,7 @@ void tst_QCamera::testfocusZonesChangedSignal()
|
|||||||
QVERIFY(cameraFocus != 0);
|
QVERIFY(cameraFocus != 0);
|
||||||
|
|
||||||
QSignalSpy spy(cameraFocus,SIGNAL(focusZonesChanged()));
|
QSignalSpy spy(cameraFocus,SIGNAL(focusZonesChanged()));
|
||||||
cameraFocus->zoomTo(5.0,6.0);
|
cameraFocus->setCustomFocusPoint(QPointF(0.1, 0.1));
|
||||||
QVERIFY(spy.count() == 1);
|
QVERIFY(spy.count() == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ HEADERS *= \
|
|||||||
../qmultimedia_common/mockcameraflashcontrol.h \
|
../qmultimedia_common/mockcameraflashcontrol.h \
|
||||||
../qmultimedia_common/mockcameralockscontrol.h \
|
../qmultimedia_common/mockcameralockscontrol.h \
|
||||||
../qmultimedia_common/mockcamerafocuscontrol.h \
|
../qmultimedia_common/mockcamerafocuscontrol.h \
|
||||||
|
../qmultimedia_common/mockcamerazoomcontrol.h \
|
||||||
../qmultimedia_common/mockcameraimageprocessingcontrol.h \
|
../qmultimedia_common/mockcameraimageprocessingcontrol.h \
|
||||||
../qmultimedia_common/mockcameraimagecapturecontrol.h \
|
../qmultimedia_common/mockcameraimagecapturecontrol.h \
|
||||||
../qmultimedia_common/mockcameraexposurecontrol.h \
|
../qmultimedia_common/mockcameraexposurecontrol.h \
|
||||||
|
|||||||
@@ -51,14 +51,9 @@ class MockCameraFocusControl : public QCameraFocusControl
|
|||||||
public:
|
public:
|
||||||
MockCameraFocusControl(QObject *parent = 0):
|
MockCameraFocusControl(QObject *parent = 0):
|
||||||
QCameraFocusControl(parent),
|
QCameraFocusControl(parent),
|
||||||
m_opticalZoom(1.0),
|
|
||||||
m_digitalZoom(1.0),
|
|
||||||
m_focusMode(QCameraFocus::AutoFocus),
|
m_focusMode(QCameraFocus::AutoFocus),
|
||||||
m_focusPointMode(QCameraFocus::FocusPointAuto),
|
m_focusPointMode(QCameraFocus::FocusPointAuto),
|
||||||
m_focusPoint(0.5, 0.5),
|
m_focusPoint(0.5, 0.5)
|
||||||
m_maxOpticalZoom(3.0),
|
|
||||||
m_maxDigitalZoom(4.0)
|
|
||||||
|
|
||||||
{
|
{
|
||||||
m_zones << QCameraFocusZone(QRectF(0.45, 0.45, 0.1, 0.1));
|
m_zones << QCameraFocusZone(QRectF(0.45, 0.45, 0.1, 0.1));
|
||||||
}
|
}
|
||||||
@@ -81,45 +76,6 @@ public:
|
|||||||
return mode == QCameraFocus::AutoFocus || mode == QCameraFocus::ContinuousFocus;
|
return mode == QCameraFocus::AutoFocus || mode == QCameraFocus::ContinuousFocus;
|
||||||
}
|
}
|
||||||
|
|
||||||
qreal maximumOpticalZoom() const
|
|
||||||
{
|
|
||||||
return m_maxOpticalZoom;
|
|
||||||
}
|
|
||||||
|
|
||||||
qreal maximumDigitalZoom() const
|
|
||||||
{
|
|
||||||
return m_maxDigitalZoom;
|
|
||||||
}
|
|
||||||
|
|
||||||
qreal opticalZoom() const
|
|
||||||
{
|
|
||||||
return m_opticalZoom;
|
|
||||||
}
|
|
||||||
|
|
||||||
qreal digitalZoom() const
|
|
||||||
{
|
|
||||||
return m_digitalZoom;
|
|
||||||
}
|
|
||||||
|
|
||||||
void zoomTo(qreal optical, qreal digital)
|
|
||||||
{
|
|
||||||
optical = qBound<qreal>(1.0, optical, maximumOpticalZoom());
|
|
||||||
digital = qBound<qreal>(1.0, digital, maximumDigitalZoom());
|
|
||||||
|
|
||||||
if (!qFuzzyCompare(digital, m_digitalZoom)) {
|
|
||||||
m_digitalZoom = digital;
|
|
||||||
emit digitalZoomChanged(m_digitalZoom);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!qFuzzyCompare(optical, m_opticalZoom)) {
|
|
||||||
m_opticalZoom = optical;
|
|
||||||
emit opticalZoomChanged(m_opticalZoom);
|
|
||||||
}
|
|
||||||
|
|
||||||
maxOpticalDigitalZoomChange(4.0, 5.0);
|
|
||||||
focusZonesChange(0.50, 0.50, 0.3, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
QCameraFocus::FocusPointMode focusPointMode() const
|
QCameraFocus::FocusPointMode focusPointMode() const
|
||||||
{
|
{
|
||||||
return m_focusPointMode;
|
return m_focusPointMode;
|
||||||
@@ -151,6 +107,7 @@ public:
|
|||||||
void setCustomFocusPoint(const QPointF &point)
|
void setCustomFocusPoint(const QPointF &point)
|
||||||
{
|
{
|
||||||
m_focusPoint = point;
|
m_focusPoint = point;
|
||||||
|
focusZonesChange(0.50, 0.50, 0.3, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
QCameraFocusZoneList focusZones() const
|
QCameraFocusZoneList focusZones() const
|
||||||
@@ -158,20 +115,6 @@ public:
|
|||||||
return m_zones;
|
return m_zones;
|
||||||
}
|
}
|
||||||
|
|
||||||
// helper function to emit maximum Optical and Digital Zoom Changed signals
|
|
||||||
void maxOpticalDigitalZoomChange(qreal maxOptical, qreal maxDigital)
|
|
||||||
{
|
|
||||||
if (maxOptical != m_maxOpticalZoom) {
|
|
||||||
m_maxOpticalZoom = maxOptical;
|
|
||||||
emit maximumOpticalZoomChanged(m_maxOpticalZoom);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (maxDigital != m_maxDigitalZoom) {
|
|
||||||
m_maxDigitalZoom = maxDigital;
|
|
||||||
emit maximumDigitalZoomChanged(m_maxDigitalZoom);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// helper function to emit Focus Zones Changed signals
|
// helper function to emit Focus Zones Changed signals
|
||||||
void focusZonesChange(qreal left, qreal top, qreal width, qreal height)
|
void focusZonesChange(qreal left, qreal top, qreal width, qreal height)
|
||||||
{
|
{
|
||||||
@@ -184,14 +127,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
qreal m_opticalZoom;
|
|
||||||
qreal m_digitalZoom;
|
|
||||||
QCameraFocus::FocusMode m_focusMode;
|
QCameraFocus::FocusMode m_focusMode;
|
||||||
QCameraFocus::FocusPointMode m_focusPointMode;
|
QCameraFocus::FocusPointMode m_focusPointMode;
|
||||||
QPointF m_focusPoint;
|
QPointF m_focusPoint;
|
||||||
// to emit maximum Optical and Digital Zoom Changed signals
|
|
||||||
qreal m_maxOpticalZoom;
|
|
||||||
qreal m_maxDigitalZoom;
|
|
||||||
// to emit focus zone changed signal
|
// to emit focus zone changed signal
|
||||||
QCameraFocusZoneList m_zones;
|
QCameraFocusZoneList m_zones;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
#include "../qmultimedia_common/mockcameraflashcontrol.h"
|
#include "../qmultimedia_common/mockcameraflashcontrol.h"
|
||||||
#include "../qmultimedia_common/mockcameralockscontrol.h"
|
#include "../qmultimedia_common/mockcameralockscontrol.h"
|
||||||
#include "../qmultimedia_common/mockcamerafocuscontrol.h"
|
#include "../qmultimedia_common/mockcamerafocuscontrol.h"
|
||||||
|
#include "../qmultimedia_common/mockcamerazoomcontrol.h"
|
||||||
#include "../qmultimedia_common/mockcameraimageprocessingcontrol.h"
|
#include "../qmultimedia_common/mockcameraimageprocessingcontrol.h"
|
||||||
#include "../qmultimedia_common/mockcameraimagecapturecontrol.h"
|
#include "../qmultimedia_common/mockcameraimagecapturecontrol.h"
|
||||||
#include "../qmultimedia_common/mockcameraexposurecontrol.h"
|
#include "../qmultimedia_common/mockcameraexposurecontrol.h"
|
||||||
@@ -99,6 +100,7 @@ public:
|
|||||||
mockExposureControl = new MockCameraExposureControl(this);
|
mockExposureControl = new MockCameraExposureControl(this);
|
||||||
mockFlashControl = new MockCameraFlashControl(this);
|
mockFlashControl = new MockCameraFlashControl(this);
|
||||||
mockFocusControl = new MockCameraFocusControl(this);
|
mockFocusControl = new MockCameraFocusControl(this);
|
||||||
|
mockZoomControl = new MockCameraZoomControl(this);
|
||||||
mockCaptureControl = new MockCaptureControl(mockControl, this);
|
mockCaptureControl = new MockCaptureControl(mockControl, this);
|
||||||
mockCaptureBufferControl = new MockCaptureBufferFormatControl(this);
|
mockCaptureBufferControl = new MockCaptureBufferFormatControl(this);
|
||||||
mockCaptureDestinationControl = new MockCaptureDestinationControl(this);
|
mockCaptureDestinationControl = new MockCaptureDestinationControl(this);
|
||||||
@@ -133,6 +135,9 @@ public:
|
|||||||
if (qstrcmp(iid, QCameraFocusControl_iid) == 0)
|
if (qstrcmp(iid, QCameraFocusControl_iid) == 0)
|
||||||
return mockFocusControl;
|
return mockFocusControl;
|
||||||
|
|
||||||
|
if (qstrcmp(iid, QCameraZoomControl_iid) == 0)
|
||||||
|
return mockZoomControl;
|
||||||
|
|
||||||
if (qstrcmp(iid, QCameraImageCaptureControl_iid) == 0)
|
if (qstrcmp(iid, QCameraImageCaptureControl_iid) == 0)
|
||||||
return mockCaptureControl;
|
return mockCaptureControl;
|
||||||
|
|
||||||
@@ -183,6 +188,7 @@ public:
|
|||||||
MockCameraExposureControl *mockExposureControl;
|
MockCameraExposureControl *mockExposureControl;
|
||||||
MockCameraFlashControl *mockFlashControl;
|
MockCameraFlashControl *mockFlashControl;
|
||||||
MockCameraFocusControl *mockFocusControl;
|
MockCameraFocusControl *mockFocusControl;
|
||||||
|
MockCameraZoomControl *mockZoomControl;
|
||||||
MockImageProcessingControl *mockImageProcessingControl;
|
MockImageProcessingControl *mockImageProcessingControl;
|
||||||
MockImageEncoderControl *mockImageEncoderControl;
|
MockImageEncoderControl *mockImageEncoderControl;
|
||||||
MockVideoRendererControl *rendererControl;
|
MockVideoRendererControl *rendererControl;
|
||||||
|
|||||||
134
tests/auto/unit/qmultimedia_common/mockcamerazoomcontrol.h
Normal file
134
tests/auto/unit/qmultimedia_common/mockcamerazoomcontrol.h
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** 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 test suite 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 MOCKCAMERAZOOMCONTROL_H
|
||||||
|
#define MOCKCAMERAZOOMCONTROL_H
|
||||||
|
|
||||||
|
#include "qcamerazoomcontrol.h"
|
||||||
|
|
||||||
|
class MockCameraZoomControl : public QCameraZoomControl
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
MockCameraZoomControl(QObject *parent = 0):
|
||||||
|
QCameraZoomControl(parent),
|
||||||
|
m_opticalZoom(1.0),
|
||||||
|
m_digitalZoom(1.0),
|
||||||
|
m_maxOpticalZoom(3.0),
|
||||||
|
m_maxDigitalZoom(4.0)
|
||||||
|
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
~MockCameraZoomControl() {}
|
||||||
|
|
||||||
|
qreal maximumOpticalZoom() const
|
||||||
|
{
|
||||||
|
return m_maxOpticalZoom;
|
||||||
|
}
|
||||||
|
|
||||||
|
qreal maximumDigitalZoom() const
|
||||||
|
{
|
||||||
|
return m_maxDigitalZoom;
|
||||||
|
}
|
||||||
|
|
||||||
|
qreal currentOpticalZoom() const
|
||||||
|
{
|
||||||
|
return m_opticalZoom;
|
||||||
|
}
|
||||||
|
|
||||||
|
qreal currentDigitalZoom() const
|
||||||
|
{
|
||||||
|
return m_digitalZoom;
|
||||||
|
}
|
||||||
|
|
||||||
|
qreal requestedOpticalZoom() const
|
||||||
|
{
|
||||||
|
return m_opticalZoom;
|
||||||
|
}
|
||||||
|
|
||||||
|
qreal requestedDigitalZoom() const
|
||||||
|
{
|
||||||
|
return m_digitalZoom;
|
||||||
|
}
|
||||||
|
|
||||||
|
void zoomTo(qreal optical, qreal digital)
|
||||||
|
{
|
||||||
|
optical = qBound<qreal>(1.0, optical, maximumOpticalZoom());
|
||||||
|
digital = qBound<qreal>(1.0, digital, maximumDigitalZoom());
|
||||||
|
|
||||||
|
if (!qFuzzyCompare(digital, m_digitalZoom)) {
|
||||||
|
m_digitalZoom = digital;
|
||||||
|
emit requestedDigitalZoomChanged(m_digitalZoom);
|
||||||
|
emit currentDigitalZoomChanged(m_digitalZoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!qFuzzyCompare(optical, m_opticalZoom)) {
|
||||||
|
m_opticalZoom = optical;
|
||||||
|
emit requestedOpticalZoomChanged(m_opticalZoom);
|
||||||
|
emit currentOpticalZoomChanged(m_opticalZoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
maxOpticalDigitalZoomChange(4.0, 5.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// helper function to emit maximum Optical and Digital Zoom Changed signals
|
||||||
|
void maxOpticalDigitalZoomChange(qreal maxOptical, qreal maxDigital)
|
||||||
|
{
|
||||||
|
if (maxOptical != m_maxOpticalZoom) {
|
||||||
|
m_maxOpticalZoom = maxOptical;
|
||||||
|
emit maximumOpticalZoomChanged(m_maxOpticalZoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (maxDigital != m_maxDigitalZoom) {
|
||||||
|
m_maxDigitalZoom = maxDigital;
|
||||||
|
emit maximumDigitalZoomChanged(m_maxDigitalZoom);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
qreal m_opticalZoom;
|
||||||
|
qreal m_digitalZoom;
|
||||||
|
qreal m_maxOpticalZoom;
|
||||||
|
qreal m_maxDigitalZoom;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MOCKCAMERAZOOMCONTROL_H
|
||||||
Reference in New Issue
Block a user