summaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den.exter@jollamobile.com>2014-07-09 13:38:25 +1000
committerAndrew den Exter <andrew.den.exter@qinetic.com.au>2014-11-28 06:08:11 +0100
commit25ad679c254766a3ac0bf3925232052941485442 (patch)
treef56748cdde28851ac5438b53de93fb9fbf0c14ce /src/imports
parentbe7fef656a1d087d3d1d3fa102da4fce85855935 (diff)
Add a color filter property to QCameraImageProcessing.
[ChangeLog] New color filter property for QCameraImageProcessing. Change-Id: I999e349e3e4f284b533fa62ba50903fbd21cb400 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/multimedia/multimedia.cpp3
-rw-r--r--src/imports/multimedia/qdeclarativecameraimageprocessing.cpp36
-rw-r--r--src/imports/multimedia/qdeclarativecameraimageprocessing_p.h22
3 files changed, 60 insertions, 1 deletions
diff --git a/src/imports/multimedia/multimedia.cpp b/src/imports/multimedia/multimedia.cpp
index 80dc4f82c..01b037a79 100644
--- a/src/imports/multimedia/multimedia.cpp
+++ b/src/imports/multimedia/multimedia.cpp
@@ -103,6 +103,9 @@ public:
qmlRegisterUncreatableType<QDeclarativeCameraViewfinder>(uri, 5, 4, "CameraViewfinder",
trUtf8("CameraViewfinder is provided by Camera"));
+ // 5.5 types
+ qmlRegisterUncreatableType<QDeclarativeCameraImageProcessing, 1>(uri, 5, 5, "CameraImageProcessing", trUtf8("CameraImageProcessing is provided by Camera"));
+
qmlRegisterType<QDeclarativeMediaMetaData>();
}
diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp
index 26bac6ed4..d6d555887 100644
--- a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp
+++ b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp
@@ -220,6 +220,42 @@ void QDeclarativeCameraImageProcessing::setDenoisingLevel(qreal value)
}
/*!
+ \qmlproperty QtMultimedia::CameraImageProcessing::colorFilter
+
+ This property holds which color filter if any will be applied to image data captured by the camera.
+
+ It can be one of:
+
+ \table
+ \row \li CameraImageProcessing.ColorFilterNone \li No filter is applied to images.
+ \row \li CameraImageProcessing.ColorFilterGrayscale \li A grayscale filter.
+ \row \li CameraImageProcessing.ColorFilterNegative \li A negative filter.
+ \row \li CameraImageProcessing.ColorFilterSolarize \li A solarize filter.
+ \row \li CameraImageProcessing.ColorFilterSepia \li A sepia filter.
+ \row \li CameraImageProcessing.ColorFilterPosterize \li A posterize filter.
+ \row \li CameraImageProcessing.ColorFilterWhiteboard \li A whiteboard filter.
+ \row \li CameraImageProcessing.ColorFilterBlackboard \li A blackboard filter.
+ \row \li CameraImageProcessing.ColorFilterAqua \li An aqua filter.
+ \row \li CameraImageProcessing.ColorFilterVendor \li The base value for vendor defined filters.
+ \endtable
+
+ \since 5.5
+*/
+
+QDeclarativeCameraImageProcessing::ColorFilter QDeclarativeCameraImageProcessing::colorFilter() const
+{
+ return ColorFilter(m_imageProcessing->colorFilter());
+}
+
+void QDeclarativeCameraImageProcessing::setColorFilter(ColorFilter filter)
+{
+ if (this->colorFilter() != filter) {
+ m_imageProcessing->setColorFilter(QCameraImageProcessing::ColorFilter(filter));
+ emit colorFilterChanged();
+ }
+}
+
+/*!
\qmlsignal QtMultimedia::Camera::whiteBalanceModeChanged(Camera::WhiteBalanceMode)
This signal is emitted when the \c whiteBalanceMode property is changed.
diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h b/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h
index a7521f60e..65c607670 100644
--- a/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h
+++ b/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h
@@ -56,6 +56,7 @@ class QDeclarativeCameraImageProcessing : public QObject
{
Q_OBJECT
Q_ENUMS(WhiteBalanceMode)
+ Q_ENUMS(ColorFilter)
Q_PROPERTY(WhiteBalanceMode whiteBalanceMode READ whiteBalanceMode WRITE setWhiteBalanceMode NOTIFY whiteBalanceModeChanged)
Q_PROPERTY(qreal manualWhiteBalance READ manualWhiteBalance WRITE setManualWhiteBalance NOTIFY manualWhiteBalanceChanged)
@@ -63,7 +64,7 @@ class QDeclarativeCameraImageProcessing : public QObject
Q_PROPERTY(qreal saturation READ saturation WRITE setSaturation NOTIFY saturationChanged)
Q_PROPERTY(qreal sharpeningLevel READ sharpeningLevel WRITE setSharpeningLevel NOTIFY sharpeningLevelChanged)
Q_PROPERTY(qreal denoisingLevel READ denoisingLevel WRITE setDenoisingLevel NOTIFY denoisingLevelChanged)
-
+ Q_PROPERTY(ColorFilter colorFilter READ colorFilter WRITE setColorFilter NOTIFY colorFilterChanged REVISION 1)
public:
enum WhiteBalanceMode {
WhiteBalanceAuto = QCameraImageProcessing::WhiteBalanceAuto,
@@ -78,6 +79,19 @@ public:
WhiteBalanceVendor = QCameraImageProcessing::WhiteBalanceVendor
};
+ enum ColorFilter {
+ ColorFilterNone = QCameraImageProcessing::ColorFilterNone,
+ ColorFilterGrayscale = QCameraImageProcessing::ColorFilterGrayscale,
+ ColorFilterNegative = QCameraImageProcessing::ColorFilterNegative,
+ ColorFilterSolarize = QCameraImageProcessing::ColorFilterSolarize,
+ ColorFilterSepia = QCameraImageProcessing::ColorFilterSepia,
+ ColorFilterPosterize = QCameraImageProcessing::ColorFilterPosterize,
+ ColorFilterWhiteboard = QCameraImageProcessing::ColorFilterWhiteboard,
+ ColorFilterBlackboard = QCameraImageProcessing::ColorFilterBlackboard,
+ ColorFilterAqua = QCameraImageProcessing::ColorFilterAqua,
+ ColorFilterVendor = QCameraImageProcessing::ColorFilterVendor
+ };
+
~QDeclarativeCameraImageProcessing();
WhiteBalanceMode whiteBalanceMode() const;
@@ -88,6 +102,8 @@ public:
qreal sharpeningLevel() const;
qreal denoisingLevel() const;
+ ColorFilter colorFilter() const;
+
public Q_SLOTS:
void setWhiteBalanceMode(QDeclarativeCameraImageProcessing::WhiteBalanceMode mode) const;
void setManualWhiteBalance(qreal colorTemp) const;
@@ -97,6 +113,8 @@ public Q_SLOTS:
void setSharpeningLevel(qreal value);
void setDenoisingLevel(qreal value);
+ void setColorFilter(ColorFilter colorFilter);
+
Q_SIGNALS:
void whiteBalanceModeChanged(QDeclarativeCameraImageProcessing::WhiteBalanceMode) const;
void manualWhiteBalanceChanged(qreal) const;
@@ -106,6 +124,8 @@ Q_SIGNALS:
void sharpeningLevelChanged(qreal);
void denoisingLevelChanged(qreal);
+ void colorFilterChanged();
+
private:
friend class QDeclarativeCamera;
QDeclarativeCameraImageProcessing(QCamera *camera, QObject *parent = 0);