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>
This commit is contained in:
committed by
Andrew den Exter
parent
be7fef656a
commit
25ad679c25
@@ -103,6 +103,9 @@ public:
|
|||||||
qmlRegisterUncreatableType<QDeclarativeCameraViewfinder>(uri, 5, 4, "CameraViewfinder",
|
qmlRegisterUncreatableType<QDeclarativeCameraViewfinder>(uri, 5, 4, "CameraViewfinder",
|
||||||
trUtf8("CameraViewfinder is provided by Camera"));
|
trUtf8("CameraViewfinder is provided by Camera"));
|
||||||
|
|
||||||
|
// 5.5 types
|
||||||
|
qmlRegisterUncreatableType<QDeclarativeCameraImageProcessing, 1>(uri, 5, 5, "CameraImageProcessing", trUtf8("CameraImageProcessing is provided by Camera"));
|
||||||
|
|
||||||
qmlRegisterType<QDeclarativeMediaMetaData>();
|
qmlRegisterType<QDeclarativeMediaMetaData>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -219,6 +219,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)
|
\qmlsignal QtMultimedia::Camera::whiteBalanceModeChanged(Camera::WhiteBalanceMode)
|
||||||
This signal is emitted when the \c whiteBalanceMode property is changed.
|
This signal is emitted when the \c whiteBalanceMode property is changed.
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ class QDeclarativeCameraImageProcessing : public QObject
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_ENUMS(WhiteBalanceMode)
|
Q_ENUMS(WhiteBalanceMode)
|
||||||
|
Q_ENUMS(ColorFilter)
|
||||||
|
|
||||||
Q_PROPERTY(WhiteBalanceMode whiteBalanceMode READ whiteBalanceMode WRITE setWhiteBalanceMode NOTIFY whiteBalanceModeChanged)
|
Q_PROPERTY(WhiteBalanceMode whiteBalanceMode READ whiteBalanceMode WRITE setWhiteBalanceMode NOTIFY whiteBalanceModeChanged)
|
||||||
Q_PROPERTY(qreal manualWhiteBalance READ manualWhiteBalance WRITE setManualWhiteBalance NOTIFY manualWhiteBalanceChanged)
|
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 saturation READ saturation WRITE setSaturation NOTIFY saturationChanged)
|
||||||
Q_PROPERTY(qreal sharpeningLevel READ sharpeningLevel WRITE setSharpeningLevel NOTIFY sharpeningLevelChanged)
|
Q_PROPERTY(qreal sharpeningLevel READ sharpeningLevel WRITE setSharpeningLevel NOTIFY sharpeningLevelChanged)
|
||||||
Q_PROPERTY(qreal denoisingLevel READ denoisingLevel WRITE setDenoisingLevel NOTIFY denoisingLevelChanged)
|
Q_PROPERTY(qreal denoisingLevel READ denoisingLevel WRITE setDenoisingLevel NOTIFY denoisingLevelChanged)
|
||||||
|
Q_PROPERTY(ColorFilter colorFilter READ colorFilter WRITE setColorFilter NOTIFY colorFilterChanged REVISION 1)
|
||||||
public:
|
public:
|
||||||
enum WhiteBalanceMode {
|
enum WhiteBalanceMode {
|
||||||
WhiteBalanceAuto = QCameraImageProcessing::WhiteBalanceAuto,
|
WhiteBalanceAuto = QCameraImageProcessing::WhiteBalanceAuto,
|
||||||
@@ -78,6 +79,19 @@ public:
|
|||||||
WhiteBalanceVendor = QCameraImageProcessing::WhiteBalanceVendor
|
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();
|
~QDeclarativeCameraImageProcessing();
|
||||||
|
|
||||||
WhiteBalanceMode whiteBalanceMode() const;
|
WhiteBalanceMode whiteBalanceMode() const;
|
||||||
@@ -88,6 +102,8 @@ public:
|
|||||||
qreal sharpeningLevel() const;
|
qreal sharpeningLevel() const;
|
||||||
qreal denoisingLevel() const;
|
qreal denoisingLevel() const;
|
||||||
|
|
||||||
|
ColorFilter colorFilter() const;
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void setWhiteBalanceMode(QDeclarativeCameraImageProcessing::WhiteBalanceMode mode) const;
|
void setWhiteBalanceMode(QDeclarativeCameraImageProcessing::WhiteBalanceMode mode) const;
|
||||||
void setManualWhiteBalance(qreal colorTemp) const;
|
void setManualWhiteBalance(qreal colorTemp) const;
|
||||||
@@ -97,6 +113,8 @@ public Q_SLOTS:
|
|||||||
void setSharpeningLevel(qreal value);
|
void setSharpeningLevel(qreal value);
|
||||||
void setDenoisingLevel(qreal value);
|
void setDenoisingLevel(qreal value);
|
||||||
|
|
||||||
|
void setColorFilter(ColorFilter colorFilter);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void whiteBalanceModeChanged(QDeclarativeCameraImageProcessing::WhiteBalanceMode) const;
|
void whiteBalanceModeChanged(QDeclarativeCameraImageProcessing::WhiteBalanceMode) const;
|
||||||
void manualWhiteBalanceChanged(qreal) const;
|
void manualWhiteBalanceChanged(qreal) const;
|
||||||
@@ -106,6 +124,8 @@ Q_SIGNALS:
|
|||||||
void sharpeningLevelChanged(qreal);
|
void sharpeningLevelChanged(qreal);
|
||||||
void denoisingLevelChanged(qreal);
|
void denoisingLevelChanged(qreal);
|
||||||
|
|
||||||
|
void colorFilterChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class QDeclarativeCamera;
|
friend class QDeclarativeCamera;
|
||||||
QDeclarativeCameraImageProcessing(QCamera *camera, QObject *parent = 0);
|
QDeclarativeCameraImageProcessing(QCamera *camera, QObject *parent = 0);
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ QT_BEGIN_NAMESPACE
|
|||||||
static void qRegisterCameraImageProcessingMetaTypes()
|
static void qRegisterCameraImageProcessingMetaTypes()
|
||||||
{
|
{
|
||||||
qRegisterMetaType<QCameraImageProcessing::WhiteBalanceMode>();
|
qRegisterMetaType<QCameraImageProcessing::WhiteBalanceMode>();
|
||||||
|
qRegisterMetaType<QCameraImageProcessing::ColorFilter>();
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_CONSTRUCTOR_FUNCTION(qRegisterCameraImageProcessingMetaTypes)
|
Q_CONSTRUCTOR_FUNCTION(qRegisterCameraImageProcessingMetaTypes)
|
||||||
@@ -317,5 +318,63 @@ void QCameraImageProcessing::setDenoisingLevel(qreal level)
|
|||||||
\value WhiteBalanceVendor Base value for vendor defined white balance modes.
|
\value WhiteBalanceVendor Base value for vendor defined white balance modes.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\enum QCameraImageProcessing::Filter
|
||||||
|
|
||||||
|
\value ColorFilterNone No filter is applied to images.
|
||||||
|
\value ColorFilterGrayscale A grayscale filter.
|
||||||
|
\value ColorFilterNegative A negative filter.
|
||||||
|
\value ColorFilterSolarize A solarize filter.
|
||||||
|
\value ColorFilterSepia A sepia filter.
|
||||||
|
\value ColorFilterPosterize A posterize filter.
|
||||||
|
\value ColorFilterWhiteboard A whiteboard filter.
|
||||||
|
\value ColorFilterBlackboard A blackboard filter.
|
||||||
|
\value ColorFilterAqua An aqua filter.
|
||||||
|
\value ColorFilterVendor The base value for vendor defined filters.
|
||||||
|
|
||||||
|
\since 5.5
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Returns the color filter which will be applied to image data captured by the camera.
|
||||||
|
|
||||||
|
\since 5.5
|
||||||
|
*/
|
||||||
|
|
||||||
|
QCameraImageProcessing::ColorFilter QCameraImageProcessing::colorFilter() const
|
||||||
|
{
|
||||||
|
return d_func()->imageControl->parameter(QCameraImageProcessingControl::ColorFilter)
|
||||||
|
.value<QCameraImageProcessing::ColorFilter>();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Sets the color \a filter which will be applied to image data captured by the camera.
|
||||||
|
|
||||||
|
\since 5.5
|
||||||
|
*/
|
||||||
|
|
||||||
|
void QCameraImageProcessing::setColorFilter(QCameraImageProcessing::ColorFilter filter)
|
||||||
|
{
|
||||||
|
d_func()->imageControl->setParameter(
|
||||||
|
QCameraImageProcessingControl::ColorFilter,
|
||||||
|
QVariant::fromValue<QCameraImageProcessing::ColorFilter>(filter));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Returns true if a color \a filter is supported.
|
||||||
|
|
||||||
|
\since 5.5
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool QCameraImageProcessing::isColorFilterSupported(QCameraImageProcessing::ColorFilter filter) const
|
||||||
|
{
|
||||||
|
return d_func()->imageControl->isParameterValueSupported(
|
||||||
|
QCameraImageProcessingControl::ColorFilter,
|
||||||
|
QVariant::fromValue<QCameraImageProcessing::ColorFilter>(filter));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#include "moc_qcameraimageprocessing.cpp"
|
#include "moc_qcameraimageprocessing.cpp"
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ class QCameraImageProcessingPrivate;
|
|||||||
class Q_MULTIMEDIA_EXPORT QCameraImageProcessing : public QObject
|
class Q_MULTIMEDIA_EXPORT QCameraImageProcessing : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_ENUMS(WhiteBalanceMode)
|
Q_ENUMS(WhiteBalanceMode ColorFilter)
|
||||||
public:
|
public:
|
||||||
enum WhiteBalanceMode {
|
enum WhiteBalanceMode {
|
||||||
WhiteBalanceAuto = 0,
|
WhiteBalanceAuto = 0,
|
||||||
@@ -69,6 +69,19 @@ public:
|
|||||||
WhiteBalanceVendor = 1000
|
WhiteBalanceVendor = 1000
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ColorFilter {
|
||||||
|
ColorFilterNone,
|
||||||
|
ColorFilterGrayscale,
|
||||||
|
ColorFilterNegative,
|
||||||
|
ColorFilterSolarize,
|
||||||
|
ColorFilterSepia,
|
||||||
|
ColorFilterPosterize,
|
||||||
|
ColorFilterWhiteboard,
|
||||||
|
ColorFilterBlackboard,
|
||||||
|
ColorFilterAqua,
|
||||||
|
ColorFilterVendor = 1000
|
||||||
|
};
|
||||||
|
|
||||||
bool isAvailable() const;
|
bool isAvailable() const;
|
||||||
|
|
||||||
WhiteBalanceMode whiteBalanceMode() const;
|
WhiteBalanceMode whiteBalanceMode() const;
|
||||||
@@ -90,6 +103,10 @@ public:
|
|||||||
qreal denoisingLevel() const;
|
qreal denoisingLevel() const;
|
||||||
void setDenoisingLevel(qreal value);
|
void setDenoisingLevel(qreal value);
|
||||||
|
|
||||||
|
ColorFilter colorFilter() const;
|
||||||
|
void setColorFilter(ColorFilter filter);
|
||||||
|
bool isColorFilterSupported(ColorFilter filter) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class QCamera;
|
friend class QCamera;
|
||||||
friend class QCameraPrivate;
|
friend class QCameraPrivate;
|
||||||
@@ -104,7 +121,9 @@ private:
|
|||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(QCameraImageProcessing::WhiteBalanceMode)
|
Q_DECLARE_METATYPE(QCameraImageProcessing::WhiteBalanceMode)
|
||||||
|
Q_DECLARE_METATYPE(QCameraImageProcessing::ColorFilter)
|
||||||
|
|
||||||
Q_MEDIA_ENUM_DEBUG(QCameraImageProcessing, WhiteBalanceMode)
|
Q_MEDIA_ENUM_DEBUG(QCameraImageProcessing, WhiteBalanceMode)
|
||||||
|
Q_MEDIA_ENUM_DEBUG(QCameraImageProcessing, ColorFilter)
|
||||||
|
|
||||||
#endif // QCAMERAIMAGEPROCESSING_H
|
#endif // QCAMERAIMAGEPROCESSING_H
|
||||||
|
|||||||
@@ -171,6 +171,8 @@ QCameraImageProcessingControl::~QCameraImageProcessingControl()
|
|||||||
Adjustment of sharpening applied.
|
Adjustment of sharpening applied.
|
||||||
\value DenoisingAdjustment
|
\value DenoisingAdjustment
|
||||||
Adjustment of denoising applied.
|
Adjustment of denoising applied.
|
||||||
|
\value ColorFilter
|
||||||
|
Image filter applied. Since 5.5
|
||||||
\value ExtendedParameter
|
\value ExtendedParameter
|
||||||
The base value for platform specific extended parameters.
|
The base value for platform specific extended parameters.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ public:
|
|||||||
BrightnessAdjustment,
|
BrightnessAdjustment,
|
||||||
SharpeningAdjustment,
|
SharpeningAdjustment,
|
||||||
DenoisingAdjustment,
|
DenoisingAdjustment,
|
||||||
|
ColorFilter,
|
||||||
ExtendedParameter = 1000
|
ExtendedParameter = 1000
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -55,6 +55,30 @@ CameraBinImageProcessing::CameraBinImageProcessing(CameraBinSession *session)
|
|||||||
m_mappedWbValues[GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN] = QCameraImageProcessing::WhiteBalanceTungsten;
|
m_mappedWbValues[GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN] = QCameraImageProcessing::WhiteBalanceTungsten;
|
||||||
m_mappedWbValues[GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT] = QCameraImageProcessing::WhiteBalanceFluorescent;
|
m_mappedWbValues[GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT] = QCameraImageProcessing::WhiteBalanceFluorescent;
|
||||||
unlockWhiteBalance();
|
unlockWhiteBalance();
|
||||||
|
|
||||||
|
#if GST_CHECK_VERSION(1, 0, 0)
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterNone, GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL);
|
||||||
|
if (m_session->photography()) {
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterSepia, GST_PHOTOGRAPHY_COLOR_TONE_MODE_SEPIA);
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterGrayscale, GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRAYSCALE);
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterNegative, GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEGATIVE);
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterSolarize, GST_PHOTOGRAPHY_COLOR_TONE_MODE_SOLARIZE);
|
||||||
|
#if GST_CHECK_VERSION(1, 2, 0)
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterPosterize, GST_PHOTOGRAPHY_COLOR_TONE_MODE_POSTERIZE);
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterWhiteboard, GST_PHOTOGRAPHY_COLOR_TONE_MODE_WHITEBOARD);
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterBlackboard, GST_PHOTOGRAPHY_COLOR_TONE_MODE_BLACKBOARD);
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterAqua, GST_PHOTOGRAPHY_COLOR_TONE_MODE_AQUA);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterNone, GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NORMAL);
|
||||||
|
if (m_session->photography()) {
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterSepia, GST_PHOTOGRAPHY_COLOUR_TONE_MODE_SEPIA);
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterGrayscale, GST_PHOTOGRAPHY_COLOUR_TONE_MODE_GRAYSCALE);
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterNegative, GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NEGATIVE);
|
||||||
|
m_filterMap.insert(QCameraImageProcessing::ColorFilterSolarize, GST_PHOTOGRAPHY_COLOUR_TONE_MODE_SOLARIZE);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
updateColorBalanceValues();
|
updateColorBalanceValues();
|
||||||
@@ -179,6 +203,14 @@ bool CameraBinImageProcessing::isParameterValueSupported(QCameraImageProcessingC
|
|||||||
return qAbs(value.toReal()) <= 1.0;
|
return qAbs(value.toReal()) <= 1.0;
|
||||||
case WhiteBalancePreset:
|
case WhiteBalancePreset:
|
||||||
return isWhiteBalanceModeSupported(value.value<QCameraImageProcessing::WhiteBalanceMode>());
|
return isWhiteBalanceModeSupported(value.value<QCameraImageProcessing::WhiteBalanceMode>());
|
||||||
|
case ColorFilter: {
|
||||||
|
const QCameraImageProcessing::ColorFilter filter = value.value<QCameraImageProcessing::ColorFilter>();
|
||||||
|
#ifdef HAVE_GST_PHOTOGRAPHY
|
||||||
|
return m_filterMap.contains(filter);
|
||||||
|
#else
|
||||||
|
return filter == QCameraImageProcessing::ColorFilterNone;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -189,12 +221,28 @@ bool CameraBinImageProcessing::isParameterValueSupported(QCameraImageProcessingC
|
|||||||
QVariant CameraBinImageProcessing::parameter(
|
QVariant CameraBinImageProcessing::parameter(
|
||||||
QCameraImageProcessingControl::ProcessingParameter parameter) const
|
QCameraImageProcessingControl::ProcessingParameter parameter) const
|
||||||
{
|
{
|
||||||
if (parameter == QCameraImageProcessingControl::WhiteBalancePreset)
|
switch (parameter) {
|
||||||
|
case QCameraImageProcessingControl::WhiteBalancePreset:
|
||||||
return QVariant::fromValue<QCameraImageProcessing::WhiteBalanceMode>(whiteBalanceMode());
|
return QVariant::fromValue<QCameraImageProcessing::WhiteBalanceMode>(whiteBalanceMode());
|
||||||
else if (m_values.contains(parameter))
|
case QCameraImageProcessingControl::ColorFilter:
|
||||||
return m_values.value(parameter);
|
#ifdef HAVE_GST_PHOTOGRAPHY
|
||||||
else
|
if (GstPhotography *photography = m_session->photography()) {
|
||||||
return QVariant();
|
#if GST_CHECK_VERSION(1, 0, 0)
|
||||||
|
GstPhotographyColorToneMode mode = GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL;
|
||||||
|
gst_photography_get_color_tone_mode(photography, &mode);
|
||||||
|
#else
|
||||||
|
GstColourToneMode mode = GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NORMAL;
|
||||||
|
gst_photography_get_colour_tone_mode(photography, &mode);
|
||||||
|
#endif
|
||||||
|
return QVariant::fromValue(m_filterMap.key(mode, QCameraImageProcessing::ColorFilterNone));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return QVariant::fromValue(QCameraImageProcessing::ColorFilterNone);
|
||||||
|
default:
|
||||||
|
return m_values.contains(parameter)
|
||||||
|
? QVariant(m_values.value(parameter))
|
||||||
|
: QVariant();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CameraBinImageProcessing::setParameter(QCameraImageProcessingControl::ProcessingParameter parameter,
|
void CameraBinImageProcessing::setParameter(QCameraImageProcessingControl::ProcessingParameter parameter,
|
||||||
@@ -213,6 +261,21 @@ void CameraBinImageProcessing::setParameter(QCameraImageProcessingControl::Proce
|
|||||||
case WhiteBalancePreset:
|
case WhiteBalancePreset:
|
||||||
setWhiteBalanceMode(value.value<QCameraImageProcessing::WhiteBalanceMode>());
|
setWhiteBalanceMode(value.value<QCameraImageProcessing::WhiteBalanceMode>());
|
||||||
break;
|
break;
|
||||||
|
case QCameraImageProcessingControl::ColorFilter:
|
||||||
|
#ifdef HAVE_GST_PHOTOGRAPHY
|
||||||
|
if (GstPhotography *photography = m_session->photography()) {
|
||||||
|
#if GST_CHECK_VERSION(1, 0, 0)
|
||||||
|
gst_photography_set_color_tone_mode(photography, m_filterMap.value(
|
||||||
|
value.value<QCameraImageProcessing::ColorFilter>(),
|
||||||
|
GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL));
|
||||||
|
#else
|
||||||
|
gst_photography_set_colour_tone_mode(photography, m_filterMap.value(
|
||||||
|
value.value<QCameraImageProcessing::ColorFilter>(),
|
||||||
|
GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NORMAL));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
# include <gst/interfaces/photography.h>
|
# include <gst/interfaces/photography.h>
|
||||||
# if !GST_CHECK_VERSION(1,0,0)
|
# if !GST_CHECK_VERSION(1,0,0)
|
||||||
typedef GstWhiteBalanceMode GstPhotographyWhiteBalanceMode;
|
typedef GstWhiteBalanceMode GstPhotographyWhiteBalanceMode;
|
||||||
|
typedef GstColourToneMode GstPhotographyColorToneMode;
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -82,6 +83,7 @@ private:
|
|||||||
QMap<QCameraImageProcessingControl::ProcessingParameter, int> m_values;
|
QMap<QCameraImageProcessingControl::ProcessingParameter, int> m_values;
|
||||||
#ifdef HAVE_GST_PHOTOGRAPHY
|
#ifdef HAVE_GST_PHOTOGRAPHY
|
||||||
QMap<GstPhotographyWhiteBalanceMode, QCameraImageProcessing::WhiteBalanceMode> m_mappedWbValues;
|
QMap<GstPhotographyWhiteBalanceMode, QCameraImageProcessing::WhiteBalanceMode> m_mappedWbValues;
|
||||||
|
QMap<QCameraImageProcessing::ColorFilter, GstPhotographyColorToneMode> m_filterMap;
|
||||||
#endif
|
#endif
|
||||||
QCameraImageProcessing::WhiteBalanceMode m_whiteBalanceMode;
|
QCameraImageProcessing::WhiteBalanceMode m_whiteBalanceMode;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user