summaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/audioengine/qaudioengine_openal_p.h8
-rw-r--r--src/imports/multimedia/Video.qml20
-rw-r--r--src/imports/multimedia/multimedia.cpp10
-rw-r--r--src/imports/multimedia/qdeclarativeaudio.cpp62
-rw-r--r--src/imports/multimedia/qdeclarativeaudio_p.h6
-rw-r--r--src/imports/multimedia/qdeclarativecameraexposure.cpp29
-rw-r--r--src/imports/multimedia/qdeclarativecameraexposure_p.h3
-rw-r--r--src/imports/multimedia/qdeclarativecamerafocus.cpp56
-rw-r--r--src/imports/multimedia/qdeclarativecamerafocus_p.h14
-rw-r--r--src/imports/multimedia/qdeclarativecameraimageprocessing.cpp62
-rw-r--r--src/imports/multimedia/qdeclarativecameraimageprocessing_p.h13
11 files changed, 277 insertions, 6 deletions
diff --git a/src/imports/audioengine/qaudioengine_openal_p.h b/src/imports/audioengine/qaudioengine_openal_p.h
index c1dbf6aa2..92735ba86 100644
--- a/src/imports/audioengine/qaudioengine_openal_p.h
+++ b/src/imports/audioengine/qaudioengine_openal_p.h
@@ -91,12 +91,12 @@ public:
StaticSoundBufferAL(QObject *parent, const QUrl &url, QSampleCache *sampleLoader);
~StaticSoundBufferAL();
- State state() const Q_DECL_OVERRIDE;
+ State state() const override;
- void load() Q_DECL_OVERRIDE;
+ void load() override;
- void bindToSource(ALuint alSource) Q_DECL_OVERRIDE;
- void unbindFromSource(ALuint alSource) Q_DECL_OVERRIDE;
+ void bindToSource(ALuint alSource) override;
+ void unbindFromSource(ALuint alSource) override;
inline long addRef() { return ++m_ref; }
inline long release() { return --m_ref; }
diff --git a/src/imports/multimedia/Video.qml b/src/imports/multimedia/Video.qml
index 66b86c74b..19c437869 100644
--- a/src/imports/multimedia/Video.qml
+++ b/src/imports/multimedia/Video.qml
@@ -38,7 +38,7 @@
****************************************************************************/
import QtQuick 2.0
-import QtMultimedia 5.9
+import QtMultimedia 5.11
/*!
\qmltype Video
@@ -302,13 +302,31 @@ Item {
\li MediaPlayer.AccessibilityRole - for accessibility, such as with a screen reader.
\li MediaPlayer.SonificationRole - sonification, such as with user interface sounds.
\li MediaPlayer.GameRole - game audio.
+ \li MediaPlayer.CustomRole - The role is specified by customAudioRole.
\endlist
+ customAudioRole is cleared when this property is set to anything other than CustomRole.
+
\since 5.6
*/
property alias audioRole: player.audioRole
/*!
+ \qmlproperty string Video::customAudioRole
+
+ This property holds the role of the audio stream when the backend supports audio roles
+ unknown to Qt. It can be set to specify the type of audio being played, allowing the
+ system to make appropriate decisions when it comes to volume, routing or post-processing.
+
+ The audio role must be set before setting the source property.
+
+ audioRole is set to CustomRole when this property is set.
+
+ \since 5.11
+ */
+ property alias customAudioRole: player.customAudioRole
+
+ /*!
\qmlproperty bool Video::seekable
This property holds whether the playback position of the video can be
diff --git a/src/imports/multimedia/multimedia.cpp b/src/imports/multimedia/multimedia.cpp
index 6a316a298..6d9292221 100644
--- a/src/imports/multimedia/multimedia.cpp
+++ b/src/imports/multimedia/multimedia.cpp
@@ -151,6 +151,16 @@ public:
qmlRegisterUncreatableType<QDeclarativeCameraFlash, 1>(uri, 5, 9, "CameraFlash",
trUtf8("CameraFlash is provided by Camera"));
+ // 5.11 types
+ qmlRegisterType<QDeclarativeAudio, 3>(uri, 5, 11, "Audio");
+ qmlRegisterType<QDeclarativeAudio, 3>(uri, 5, 11, "MediaPlayer");
+ qmlRegisterUncreatableType<QDeclarativeCameraFocus, 1>(uri, 5, 11, "CameraFocus",
+ trUtf8("CameraFocus is provided by Camera"));
+ qmlRegisterUncreatableType<QDeclarativeCameraExposure, 1>(uri, 5, 11, "CameraExposure",
+ trUtf8("CameraExposure is provided by Camera"));
+ qmlRegisterUncreatableType<QDeclarativeCameraImageProcessing, 3>(uri, 5, 11, "CameraImageProcessing",
+ trUtf8("CameraImageProcessing is provided by Camera"));
+
qmlRegisterType<QDeclarativeMediaMetaData>();
qmlRegisterType<QAbstractVideoFilter>();
}
diff --git a/src/imports/multimedia/qdeclarativeaudio.cpp b/src/imports/multimedia/qdeclarativeaudio.cpp
index 652296509..65606b3cf 100644
--- a/src/imports/multimedia/qdeclarativeaudio.cpp
+++ b/src/imports/multimedia/qdeclarativeaudio.cpp
@@ -179,8 +179,11 @@ QDeclarativeAudio::Availability QDeclarativeAudio::availability() const
\li AccessibilityRole - for accessibility, such as with a screen reader.
\li SonificationRole - sonification, such as with user interface sounds.
\li GameRole - game audio.
+ \li CustomRole - The role is specified by customAudioRole.
\endlist
+ customAudioRole is cleared when this property is set to anything other than CustomRole.
+
\since 5.6
*/
QDeclarativeAudio::AudioRole QDeclarativeAudio::audioRole() const
@@ -196,12 +199,49 @@ void QDeclarativeAudio::setAudioRole(QDeclarativeAudio::AudioRole audioRole)
if (m_complete) {
m_player->setAudioRole(QAudio::Role(audioRole));
} else {
+ if (!m_customAudioRole.isEmpty()) {
+ m_customAudioRole.clear();
+ emit customAudioRoleChanged();
+ }
m_audioRole = audioRole;
emit audioRoleChanged();
}
}
/*!
+ \qmlproperty string QtMultimedia::Audio::customAudioRole
+
+ This property holds the role of the audio stream when the backend supports audio
+ roles unknown to Qt. It can be set to specify the type of audio being played,
+ allowing the system to make appropriate decisions when it comes to volume,
+ routing or post-processing.
+
+ The audio role must be set before setting the source property.
+
+ audioRole is set to CustomRole when this property is set.
+
+ \since 5.11
+*/
+QString QDeclarativeAudio::customAudioRole() const
+{
+ return !m_complete ? m_customAudioRole : m_player->customAudioRole();
+}
+
+void QDeclarativeAudio::setCustomAudioRole(const QString &audioRole)
+{
+ if (this->customAudioRole() == audioRole)
+ return;
+
+ if (m_complete) {
+ m_player->setCustomAudioRole(audioRole);
+ } else {
+ setAudioRole(QDeclarativeAudio::CustomRole);
+ m_customAudioRole = audioRole;
+ emit customAudioRoleChanged();
+ }
+}
+
+/*!
\qmlproperty int QtMultimedia::Audio::notifyInterval
The interval at which notifiable properties will update.
@@ -850,6 +890,8 @@ void QDeclarativeAudio::classBegin()
this, SIGNAL(hasVideoChanged()));
connect(m_player, SIGNAL(audioRoleChanged(QAudio::Role)),
this, SIGNAL(audioRoleChanged()));
+ connect(m_player, SIGNAL(customAudioRoleChanged(const QString &)),
+ this, SIGNAL(customAudioRoleChanged()));
connect(m_player, SIGNAL(notifyIntervalChanged(int)),
this, SIGNAL(notifyIntervalChanged()));
@@ -876,6 +918,8 @@ void QDeclarativeAudio::componentComplete()
m_player->setPlaybackRate(m_playbackRate);
if (m_audioRole != UnknownRole)
m_player->setAudioRole(QAudio::Role(m_audioRole));
+ if (!m_customAudioRole.isEmpty())
+ m_player->setCustomAudioRole(m_customAudioRole);
if (m_notifyInterval != m_player->notifyInterval())
m_player->setNotifyInterval(m_notifyInterval);
@@ -1181,12 +1225,30 @@ void QDeclarativeAudio::_q_mediaChanged(const QMediaContent &media)
\li AccessibilityRole - for accessibility, such as with a screen reader.
\li SonificationRole - sonification, such as with user interface sounds.
\li GameRole - game audio.
+ \li CustomRole - The role is specified by customAudioRole.
\endlist
+ customAudioRole is cleared when this property is set to anything other than CustomRole.
+
\since 5.6
*/
/*!
+ \qmlproperty string QtMultimedia::MediaPlayer::customAudioRole
+
+ This property holds the role of the audio stream when the backend supports audio
+ roles unknown to Qt. It can be set to specify the type of audio being played,
+ allowing the system to make appropriate decisions when it comes to volume,
+ routing or post-processing.
+
+ The audio role must be set before setting the source property.
+
+ audioRole is set to CustomRole when this property is set.
+
+ \since 5.11
+*/
+
+/*!
\qmlmethod list<int> QtMultimedia::MediaPlayer::supportedAudioRoles()
Returns a list of supported audio roles.
diff --git a/src/imports/multimedia/qdeclarativeaudio_p.h b/src/imports/multimedia/qdeclarativeaudio_p.h
index 4e2b94300..043b36042 100644
--- a/src/imports/multimedia/qdeclarativeaudio_p.h
+++ b/src/imports/multimedia/qdeclarativeaudio_p.h
@@ -95,6 +95,7 @@ class QDeclarativeAudio : public QObject, public QQmlParserStatus
Q_PROPERTY(QObject *mediaObject READ mediaObject NOTIFY mediaObjectChanged SCRIPTABLE false DESIGNABLE false)
Q_PROPERTY(Availability availability READ availability NOTIFY availabilityChanged)
Q_PROPERTY(AudioRole audioRole READ audioRole WRITE setAudioRole NOTIFY audioRoleChanged REVISION 1)
+ Q_PROPERTY(QString customAudioRole READ customAudioRole WRITE setCustomAudioRole NOTIFY customAudioRoleChanged REVISION 3)
Q_PROPERTY(int notifyInterval READ notifyInterval WRITE setNotifyInterval NOTIFY notifyIntervalChanged REVISION 2)
Q_ENUMS(Status)
Q_ENUMS(Error)
@@ -150,6 +151,7 @@ public:
UnknownRole = QAudio::UnknownRole,
AccessibilityRole = QAudio::AccessibilityRole,
AlarmRole = QAudio::AlarmRole,
+ CustomRole = QAudio::CustomRole,
GameRole = QAudio::GameRole,
MusicRole = QAudio::MusicRole,
NotificationRole = QAudio::NotificationRole,
@@ -179,6 +181,8 @@ public:
AudioRole audioRole() const;
void setAudioRole(AudioRole audioRole);
+ QString customAudioRole() const;
+ void setCustomAudioRole(const QString &audioRole);
QUrl source() const;
void setSource(const QUrl &url);
@@ -256,6 +260,7 @@ Q_SIGNALS:
void playbackRateChanged();
Q_REVISION(1) void audioRoleChanged();
+ Q_REVISION(3) void customAudioRoleChanged();
void availabilityChanged(Availability availability);
@@ -287,6 +292,7 @@ private:
qreal m_vol;
qreal m_playbackRate;
AudioRole m_audioRole;
+ QString m_customAudioRole;
QMediaPlayer::State m_playbackState;
QMediaPlayer::MediaStatus m_status;
diff --git a/src/imports/multimedia/qdeclarativecameraexposure.cpp b/src/imports/multimedia/qdeclarativecameraexposure.cpp
index 92972e512..af8c6acf6 100644
--- a/src/imports/multimedia/qdeclarativecameraexposure.cpp
+++ b/src/imports/multimedia/qdeclarativecameraexposure.cpp
@@ -107,6 +107,14 @@ QDeclarativeCameraExposure::QDeclarativeCameraExposure(QCamera *camera, QObject
connect(m_exposure, SIGNAL(shutterSpeedChanged(qreal)), this, SIGNAL(shutterSpeedChanged(qreal)));
connect(m_exposure, SIGNAL(exposureCompensationChanged(qreal)), this, SIGNAL(exposureCompensationChanged(qreal)));
+ connect(camera, &QCamera::statusChanged, [this](QCamera::Status status) {
+ if (status != QCamera::UnloadedStatus && status != QCamera::LoadedStatus
+ && status != QCamera::ActiveStatus) {
+ return;
+ }
+
+ emit supportedExposureModesChanged();
+ });
}
QDeclarativeCameraExposure::~QDeclarativeCameraExposure()
@@ -369,6 +377,27 @@ void QDeclarativeCameraExposure::setExposureMode(QDeclarativeCameraExposure::Exp
emit exposureModeChanged(exposureMode());
}
}
+
+/*!
+ \qmlproperty list<ExposureMode> QtMultimedia::CameraExposure::supportedExposureModes
+
+ This property holds the supported exposure modes of the camera.
+
+ \since 5.11
+ \sa exposureMode
+ */
+QVariantList QDeclarativeCameraExposure::supportedExposureModes() const
+{
+ QVariantList supportedModes;
+
+ for (int i = int(ExposureAuto); i <= int(QCameraExposure::ExposureBarcode); ++i) {
+ if (m_exposure->isExposureModeSupported((QCameraExposure::ExposureMode) i))
+ supportedModes.append(QVariant(i));
+ }
+
+ return supportedModes;
+}
+
/*!
\property QDeclarativeCameraExposure::spotMeteringPoint
diff --git a/src/imports/multimedia/qdeclarativecameraexposure_p.h b/src/imports/multimedia/qdeclarativecameraexposure_p.h
index 806cb775e..ef99b1ce9 100644
--- a/src/imports/multimedia/qdeclarativecameraexposure_p.h
+++ b/src/imports/multimedia/qdeclarativecameraexposure_p.h
@@ -73,6 +73,7 @@ class QDeclarativeCameraExposure : public QObject
Q_PROPERTY(qreal manualIso READ manualIsoSensitivity WRITE setManualIsoSensitivity NOTIFY manualIsoSensitivityChanged)
Q_PROPERTY(ExposureMode exposureMode READ exposureMode WRITE setExposureMode NOTIFY exposureModeChanged)
+ Q_PROPERTY(QVariantList supportedExposureModes READ supportedExposureModes NOTIFY supportedExposureModesChanged REVISION 1)
Q_PROPERTY(QPointF spotMeteringPoint READ spotMeteringPoint WRITE setSpotMeteringPoint NOTIFY spotMeteringPointChanged)
Q_PROPERTY(MeteringMode meteringMode READ meteringMode WRITE setMeteringMode NOTIFY meteringModeChanged)
@@ -114,6 +115,7 @@ public:
~QDeclarativeCameraExposure();
ExposureMode exposureMode() const;
+ QVariantList supportedExposureModes() const;
qreal exposureCompensation() const;
int isoSensitivity() const;
@@ -153,6 +155,7 @@ Q_SIGNALS:
void exposureCompensationChanged(qreal);
void exposureModeChanged(ExposureMode);
+ void supportedExposureModesChanged();
void meteringModeChanged(MeteringMode);
void spotMeteringPointChanged(QPointF);
diff --git a/src/imports/multimedia/qdeclarativecamerafocus.cpp b/src/imports/multimedia/qdeclarativecamerafocus.cpp
index 1d1436d09..1dd216467 100644
--- a/src/imports/multimedia/qdeclarativecamerafocus.cpp
+++ b/src/imports/multimedia/qdeclarativecamerafocus.cpp
@@ -101,6 +101,15 @@ QDeclarativeCameraFocus::QDeclarativeCameraFocus(QCamera *camera, QObject *paren
updateFocusZones();
connect(m_focus, SIGNAL(focusZonesChanged()), SLOT(updateFocusZones()));
+ connect(camera, &QCamera::statusChanged, [this](QCamera::Status status) {
+ if (status != QCamera::UnloadedStatus && status != QCamera::LoadedStatus
+ && status != QCamera::ActiveStatus) {
+ return;
+ }
+
+ emit supportedFocusModesChanged();
+ emit supportedFocusPointModesChanged();
+ });
}
QDeclarativeCameraFocus::~QDeclarativeCameraFocus()
@@ -161,7 +170,29 @@ QDeclarativeCameraFocus::FocusMode QDeclarativeCameraFocus::focusMode() const
}
/*!
+ \qmlproperty list<FocusMode> CameraFocus::supportedFocusModes
+
+ This property holds the supported focus modes of the camera.
+
+ \since 5.11
+ \sa focusMode
+*/
+QVariantList QDeclarativeCameraFocus::supportedFocusModes() const
+{
+ QVariantList supportedModes;
+
+ for (int i = int(FocusManual); i <= int(FocusMacro); ++i) {
+ if (m_focus->isFocusModeSupported((QCameraFocus::FocusMode) i))
+ supportedModes.append(i);
+ }
+
+ return supportedModes;
+}
+
+#if QT_DEPRECATED_SINCE(5, 11)
+/*!
\qmlmethod bool QtMultimedia::CameraFocus::isFocusModeSupported(mode) const
+ \obsolete
Returns true if the supplied \a mode is a supported focus mode, and
false otherwise.
@@ -170,6 +201,7 @@ bool QDeclarativeCameraFocus::isFocusModeSupported(QDeclarativeCameraFocus::Focu
{
return m_focus->isFocusModeSupported(QCameraFocus::FocusModes(int(mode)));
}
+#endif
void QDeclarativeCameraFocus::setFocusMode(QDeclarativeCameraFocus::FocusMode mode)
{
@@ -220,6 +252,26 @@ QDeclarativeCameraFocus::FocusPointMode QDeclarativeCameraFocus::focusPointMode(
return QDeclarativeCameraFocus::FocusPointMode(m_focus->focusPointMode());
}
+/*!
+ \qmlproperty list<enumeration> CameraFocus::supportedFocusPointModes
+
+ This property holds the supported focus point modes of the camera.
+
+ \since 5.10
+ \sa focusPointMode
+*/
+QVariantList QDeclarativeCameraFocus::supportedFocusPointModes() const
+{
+ QVariantList supportedModes;
+
+ for (int i = int(FocusPointAuto); i <= int(FocusPointCustom); i++) {
+ if (m_focus->isFocusPointModeSupported(QCameraFocus::FocusPointMode(i)))
+ supportedModes.append(i);
+ }
+
+ return supportedModes;
+}
+
void QDeclarativeCameraFocus::setFocusPointMode(QDeclarativeCameraFocus::FocusPointMode mode)
{
if (mode != focusPointMode()) {
@@ -228,8 +280,10 @@ void QDeclarativeCameraFocus::setFocusPointMode(QDeclarativeCameraFocus::FocusPo
}
}
+#if QT_DEPRECATED_SINCE(5, 10)
/*!
\qmlmethod bool QtMultimedia::CameraFocus::isFocusPointModeSupported(mode) const
+ \obsolete
Returns true if the supplied \a mode is a supported focus point mode, and
false otherwise.
@@ -238,6 +292,8 @@ bool QDeclarativeCameraFocus::isFocusPointModeSupported(QDeclarativeCameraFocus:
{
return m_focus->isFocusPointModeSupported(QCameraFocus::FocusPointMode(mode));
}
+#endif
+
/*!
\property QDeclarativeCameraFocus::customFocusPoint
diff --git a/src/imports/multimedia/qdeclarativecamerafocus_p.h b/src/imports/multimedia/qdeclarativecamerafocus_p.h
index 16a48de53..e3a1c28b7 100644
--- a/src/imports/multimedia/qdeclarativecamerafocus_p.h
+++ b/src/imports/multimedia/qdeclarativecamerafocus_p.h
@@ -64,8 +64,13 @@ class QDeclarativeCamera;
class QDeclarativeCameraFocus : public QObject
{
Q_OBJECT
+
Q_PROPERTY(FocusMode focusMode READ focusMode WRITE setFocusMode NOTIFY focusModeChanged)
+ Q_PROPERTY(QVariantList supportedFocusModes READ supportedFocusModes NOTIFY supportedFocusModesChanged REVISION 1)
+
Q_PROPERTY(FocusPointMode focusPointMode READ focusPointMode WRITE setFocusPointMode NOTIFY focusPointModeChanged)
+ Q_PROPERTY(QVariantList supportedFocusPointModes READ supportedFocusPointModes NOTIFY supportedFocusPointModesChanged REVISION 1)
+
Q_PROPERTY(QPointF customFocusPoint READ customFocusPoint WRITE setCustomFocusPoint NOTIFY customFocusPointChanged)
Q_PROPERTY(QObject *focusZones READ focusZones CONSTANT)
@@ -91,13 +96,18 @@ public:
~QDeclarativeCameraFocus();
FocusMode focusMode() const;
+ QVariantList supportedFocusModes() const;
+
FocusPointMode focusPointMode() const;
- QPointF customFocusPoint() const;
+ QVariantList supportedFocusPointModes() const;
+ QPointF customFocusPoint() const;
QAbstractListModel *focusZones() const;
+#if QT_DEPRECATED_SINCE(5, 10)
Q_INVOKABLE bool isFocusModeSupported(FocusMode mode) const;
Q_INVOKABLE bool isFocusPointModeSupported(FocusPointMode mode) const;
+#endif
public Q_SLOTS:
void setFocusMode(FocusMode);
@@ -106,7 +116,9 @@ public Q_SLOTS:
Q_SIGNALS:
void focusModeChanged(FocusMode);
+ void supportedFocusModesChanged();
void focusPointModeChanged(FocusPointMode);
+ void supportedFocusPointModesChanged();
void customFocusPointChanged(const QPointF &);
private Q_SLOTS:
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) {
diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h b/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h
index eb755d87c..390164250 100644
--- a/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h
+++ b/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h
@@ -72,6 +72,11 @@ class QDeclarativeCameraImageProcessing : public QObject
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)
+ Q_PROPERTY(bool available READ isAvailable NOTIFY availableChanged REVISION 3)
+ Q_PROPERTY(QVariantList supportedColorFilters READ supportedColorFilters
+ NOTIFY supportedColorFiltersChanged REVISION 3)
+ Q_PROPERTY(QVariantList supportedWhiteBalanceModes READ supportedWhiteBalanceModes
+ NOTIFY supportedWhiteBalanceModesChanged REVISION 3)
public:
enum WhiteBalanceMode {
WhiteBalanceAuto = QCameraImageProcessing::WhiteBalanceAuto,
@@ -112,6 +117,10 @@ public:
ColorFilter colorFilter() const;
+ bool isAvailable() const;
+ QVariantList supportedColorFilters() const;
+ QVariantList supportedWhiteBalanceModes() const;
+
public Q_SLOTS:
void setWhiteBalanceMode(QDeclarativeCameraImageProcessing::WhiteBalanceMode mode) const;
void setManualWhiteBalance(qreal colorTemp) const;
@@ -136,6 +145,10 @@ Q_SIGNALS:
void colorFilterChanged();
+ void availableChanged();
+ void supportedColorFiltersChanged();
+ void supportedWhiteBalanceModesChanged();
+
private:
friend class QDeclarativeCamera;
QDeclarativeCameraImageProcessing(QCamera *camera, QObject *parent = 0);