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
|
||||
}
|
||||
|
||||
have_gst_photography {
|
||||
config_gstreamer_photography {
|
||||
DEFINES += HAVE_GST_PHOTOGRAPHY
|
||||
|
||||
HEADERS += \
|
||||
|
||||
@@ -58,6 +58,8 @@ CameraBinFocus::CameraBinFocus(CameraBinSession *session)
|
||||
m_focusStatus(QCamera::Unlocked),
|
||||
m_focusZoneStatus(QCameraFocusZone::Selected)
|
||||
{
|
||||
gst_photography_set_focus_mode(m_session->photography(), GST_PHOTOGRAPHY_FOCUS_MODE_AUTO);
|
||||
|
||||
connect(m_session, SIGNAL(stateChanged(QCamera::State)),
|
||||
this, SLOT(_q_handleCameraStateChange(QCamera::State)));
|
||||
}
|
||||
@@ -73,15 +75,50 @@ QCameraFocus::FocusModes CameraBinFocus::focusMode() const
|
||||
|
||||
void CameraBinFocus::setFocusMode(QCameraFocus::FocusModes mode)
|
||||
{
|
||||
if (isFocusModeSupported(mode)) {
|
||||
m_focusMode = mode;
|
||||
GstFocusMode photographyMode;
|
||||
|
||||
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
|
||||
{
|
||||
switch (mode) {
|
||||
case QCameraFocus::AutoFocus:
|
||||
case QCameraFocus::HyperfocalFocus:
|
||||
case QCameraFocus::InfinityFocus:
|
||||
case QCameraFocus::ContinuousFocus:
|
||||
case QCameraFocus::MacroFocus:
|
||||
return true;
|
||||
default:
|
||||
return mode & QCameraFocus::AutoFocus;
|
||||
}
|
||||
}
|
||||
|
||||
QCameraFocus::FocusPointMode CameraBinFocus::focusPointMode() const
|
||||
{
|
||||
|
||||
@@ -188,7 +188,9 @@ bool CameraBinImageProcessing::isParameterValueSupported(QCameraImageProcessingC
|
||||
QVariant CameraBinImageProcessing::parameter(
|
||||
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);
|
||||
else
|
||||
return QVariant();
|
||||
|
||||
Reference in New Issue
Block a user