Fix configuration of camera settings in camerabin backend.
Enable gstphotography interfaces if the compile check passes, and implement missing pieces of whitebalance and focus configuration. Change-Id: Icd24dfd148204f8d8218176593c3120427a13e1e Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
This commit is contained in:
committed by
The Qt Project
parent
4d3f740795
commit
2ec3645b72
@@ -58,7 +58,7 @@ maemo6 {
|
|||||||
CONFIG += have_gst_photography
|
CONFIG += have_gst_photography
|
||||||
}
|
}
|
||||||
|
|
||||||
have_gst_photography {
|
config_gstreamer_photography {
|
||||||
DEFINES += HAVE_GST_PHOTOGRAPHY
|
DEFINES += HAVE_GST_PHOTOGRAPHY
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
|
|||||||
@@ -58,6 +58,8 @@ CameraBinFocus::CameraBinFocus(CameraBinSession *session)
|
|||||||
m_focusStatus(QCamera::Unlocked),
|
m_focusStatus(QCamera::Unlocked),
|
||||||
m_focusZoneStatus(QCameraFocusZone::Selected)
|
m_focusZoneStatus(QCameraFocusZone::Selected)
|
||||||
{
|
{
|
||||||
|
gst_photography_set_focus_mode(m_session->photography(), GST_PHOTOGRAPHY_FOCUS_MODE_AUTO);
|
||||||
|
|
||||||
connect(m_session, SIGNAL(stateChanged(QCamera::State)),
|
connect(m_session, SIGNAL(stateChanged(QCamera::State)),
|
||||||
this, SLOT(_q_handleCameraStateChange(QCamera::State)));
|
this, SLOT(_q_handleCameraStateChange(QCamera::State)));
|
||||||
}
|
}
|
||||||
@@ -73,14 +75,49 @@ QCameraFocus::FocusModes CameraBinFocus::focusMode() const
|
|||||||
|
|
||||||
void CameraBinFocus::setFocusMode(QCameraFocus::FocusModes mode)
|
void CameraBinFocus::setFocusMode(QCameraFocus::FocusModes mode)
|
||||||
{
|
{
|
||||||
if (isFocusModeSupported(mode)) {
|
GstFocusMode photographyMode;
|
||||||
m_focusMode = mode;
|
|
||||||
|
switch (mode) {
|
||||||
|
case QCameraFocus::AutoFocus:
|
||||||
|
photographyMode = GST_PHOTOGRAPHY_FOCUS_MODE_AUTO;
|
||||||
|
break;
|
||||||
|
case QCameraFocus::HyperfocalFocus:
|
||||||
|
photographyMode = GST_PHOTOGRAPHY_FOCUS_MODE_HYPERFOCAL;
|
||||||
|
break;
|
||||||
|
case QCameraFocus::InfinityFocus:
|
||||||
|
photographyMode = GST_PHOTOGRAPHY_FOCUS_MODE_INFINITY;
|
||||||
|
break;
|
||||||
|
case QCameraFocus::ContinuousFocus:
|
||||||
|
photographyMode = GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_NORMAL;
|
||||||
|
break;
|
||||||
|
case QCameraFocus::MacroFocus:
|
||||||
|
photographyMode = GST_PHOTOGRAPHY_FOCUS_MODE_MACRO;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (mode & QCameraFocus::AutoFocus) {
|
||||||
|
photographyMode = GST_PHOTOGRAPHY_FOCUS_MODE_AUTO;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gst_photography_set_focus_mode(m_session->photography(), photographyMode))
|
||||||
|
m_focusMode = mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CameraBinFocus::isFocusModeSupported(QCameraFocus::FocusModes mode) const
|
bool CameraBinFocus::isFocusModeSupported(QCameraFocus::FocusModes mode) const
|
||||||
{
|
{
|
||||||
|
switch (mode) {
|
||||||
|
case QCameraFocus::AutoFocus:
|
||||||
|
case QCameraFocus::HyperfocalFocus:
|
||||||
|
case QCameraFocus::InfinityFocus:
|
||||||
|
case QCameraFocus::ContinuousFocus:
|
||||||
|
case QCameraFocus::MacroFocus:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
return mode & QCameraFocus::AutoFocus;
|
return mode & QCameraFocus::AutoFocus;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QCameraFocus::FocusPointMode CameraBinFocus::focusPointMode() const
|
QCameraFocus::FocusPointMode CameraBinFocus::focusPointMode() const
|
||||||
|
|||||||
@@ -188,7 +188,9 @@ bool CameraBinImageProcessing::isParameterValueSupported(QCameraImageProcessingC
|
|||||||
QVariant CameraBinImageProcessing::parameter(
|
QVariant CameraBinImageProcessing::parameter(
|
||||||
QCameraImageProcessingControl::ProcessingParameter parameter) const
|
QCameraImageProcessingControl::ProcessingParameter parameter) const
|
||||||
{
|
{
|
||||||
if (m_values.contains(parameter))
|
if (parameter == QCameraImageProcessingControl::WhiteBalancePreset)
|
||||||
|
return QVariant::fromValue<QCameraImageProcessing::WhiteBalanceMode>(whiteBalanceMode());
|
||||||
|
else if (m_values.contains(parameter))
|
||||||
return m_values.value(parameter);
|
return m_values.value(parameter);
|
||||||
else
|
else
|
||||||
return QVariant();
|
return QVariant();
|
||||||
|
|||||||
Reference in New Issue
Block a user