void CameraBinFocus::_q_handleCameraStatusChange(QCamera::Status status) { m_cameraStatus = status; if (status == QCamera::ActiveStatus) { if (GstPad *pad = gst_element_get_static_pad(m_session->cameraSource(), "vfsrc")) { if (GstCaps *caps = qt_gst_pad_get_current_caps(pad)) { if (GstStructure *structure = gst_caps_get_structure(caps, 0)) { int width = 0; int height = 0; gst_structure_get_int(structure, "width", &width); gst_structure_get_int(structure, "height", &height); setViewfinderResolution(QSize(width, height)); } gst_caps_unref(caps); } gst_object_unref(GST_OBJECT(pad)); } if (m_focusPointMode == QCameraFocus::FocusPointCustom) { updateRegionOfInterest(m_focusRect); } } else { _q_setFocusStatus(QCamera::Unlocked, QCamera::LockLost); resetFocusPoint(); } }
void CameraBinFocus::_q_handleCameraStateChange(QCamera::State state) { m_cameraState = state; if (state != QCamera::ActiveState) { _q_setFocusStatus(QCamera::Unlocked, QCamera::LockLost); resetFocusPoint(); } else if (m_focusPointMode == QCameraFocus::FocusPointCustom) { updateRegionOfInterest(m_focusRect, 1); } }
void CameraBinFocus::_q_stopFocusing() { gst_photography_set_autofocus(m_session->photography(), FALSE); _q_setFocusStatus(QCamera::Unlocked, QCamera::UserRequest); }
void CameraBinFocus::_q_startFocusing() { _q_setFocusStatus(QCamera::Searching, QCamera::UserRequest); gst_photography_set_autofocus(m_session->photography(), TRUE); }
void CameraBinFocus::_q_handleCameraStateChange(QCamera::State state) { if (state != QCamera::ActiveState) _q_setFocusStatus(QCamera::Unlocked, QCamera::LockLost); }