static void camera_set_property(GObject * object, guint prop_id, GValue const* value, GParamSpec * pspec) { switch(prop_id) { case PROP_FOCUS: g_warning("Implement 'focus' for CcCamera"); break; case PROP_MODE: g_warning("Implement 'zoom-mode' for CcCamera"); break; case PROP_ROOT: cc_camera_set_root(CC_CAMERA(object), g_value_get_object(value)); break; case PROP_SCROLL: g_warning("Implement 'scrolled-region' for CcCamera"); break; case PROP_ZOOM: camera_set_zoom(CC_CAMERA(object), g_value_get_double(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; } }
if (result != CAMERA_EOK) return 1.0; return zoomFactor; } void BbCameraZoomControl::zoomTo(qreal optical, qreal digital) { Q_UNUSED(optical) if (m_session->status() != QCamera::ActiveStatus) return; const qreal actualZoom = qBound(m_minimumZoomFactor, digital, m_maximumZoomFactor); const camera_error_t result = camera_set_zoom(m_session->handle(), actualZoom, false); if (result != CAMERA_EOK) { qWarning() << "Unable to change zoom factor:" << result; return; } if (m_requestedZoomFactor != digital) { m_requestedZoomFactor = digital; emit requestedDigitalZoomChanged(m_requestedZoomFactor); } emit currentDigitalZoomChanged(actualZoom); } void BbCameraZoomControl::statusChanged(QCamera::Status status)