summaryrefslogtreecommitdiffstats
path: root/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/multimedia/qdeclarativecameraimageprocessing.cpp')
-rw-r--r--src/imports/multimedia/qdeclarativecameraimageprocessing.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp
index e8a816727..8e14a7945 100644
--- a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp
+++ b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp
@@ -84,6 +84,18 @@ QDeclarativeCameraImageProcessing::QDeclarativeCameraImageProcessing(QCamera *ca
QObject(parent)
{
m_imageProcessing = camera->imageProcessing();
+
+ connect(camera, QOverload<bool>::of(&QCamera::availabilityChanged),
+ this, &QDeclarativeCameraImageProcessing::availableChanged);
+ connect(camera, &QCamera::statusChanged, [this](QCamera::Status status) {
+ if (status != QCamera::UnloadedStatus && status != QCamera::LoadedStatus
+ && status != QCamera::ActiveStatus) {
+ return;
+ }
+
+ emit supportedColorFiltersChanged();
+ emit supportedWhiteBalanceModesChanged();
+ });
}
QDeclarativeCameraImageProcessing::~QDeclarativeCameraImageProcessing()
@@ -272,6 +284,56 @@ QDeclarativeCameraImageProcessing::ColorFilter QDeclarativeCameraImageProcessing
return ColorFilter(m_imageProcessing->colorFilter());
}
+/*!
+ \qmlproperty bool QtMultimedia::CameraImageProcessing::isAvailable
+
+ This property holds if image processing related settings are supported by this camera.
+
+ \since 5.11
+*/
+bool QDeclarativeCameraImageProcessing::isAvailable() const
+{
+ return m_imageProcessing->isAvailable();
+}
+
+/*!
+ \qmlproperty list<ColorFilter> QtMultimedia::CameraImageProcessing::supportedColorFilters
+
+ This property holds the supported color filters by this camera.
+
+ \since 5.11
+*/
+QVariantList QDeclarativeCameraImageProcessing::supportedColorFilters() const
+{
+ QVariantList supportedFilters;
+
+ for (int i = int(ColorFilterNone); i <= int(ColorFilterVendor); ++i) {
+ if (m_imageProcessing->isColorFilterSupported((QCameraImageProcessing::ColorFilter) i))
+ supportedFilters.append(i);
+ }
+
+ return supportedFilters;
+}
+
+/*!
+ \qmlproperty list<WhiteBalanceMode> QtMultimedia::CameraImageProcessing::supportedWhiteBalanceModes
+
+ This property holds the supported white balance modes by this camera.
+
+ \since 5.11
+*/
+QVariantList QDeclarativeCameraImageProcessing::supportedWhiteBalanceModes() const
+{
+ QVariantList supportedModes;
+
+ for (int i = int(WhiteBalanceAuto); i <= int(WhiteBalanceVendor); i++) {
+ if (m_imageProcessing->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceMode(i)))
+ supportedModes.append(i);
+ }
+
+ return supportedModes;
+}
+
void QDeclarativeCameraImageProcessing::setColorFilter(ColorFilter filter)
{
if (this->colorFilter() != filter) {