Camera2: add lock/unlock CAF to handle autoFocus in CAF mode
Add lock/unlock CAF to handle auto focus in CAF mode, since Android
Camera API has special requirement for autoFocus in CAF mode which
need focus to be locked.
Change-Id: I9d4258eba152d79c1c38d6fac1cbbdc7df0e78d4
diff --git a/QCamera2/HAL/QCameraStateMachine.cpp b/QCamera2/HAL/QCameraStateMachine.cpp
index 00a58b9..3fc050d 100644
--- a/QCamera2/HAL/QCameraStateMachine.cpp
+++ b/QCamera2/HAL/QCameraStateMachine.cpp
@@ -501,7 +501,6 @@
}
break;
case QCAMERA_SM_EVT_CANCEL_PICTURE:
- case QCAMERA_SM_EVT_STOP_AUTO_FOCUS:
{
// no op needed here
ALOGD("%s: No ops for evt(%d) in state(%d)", __func__, evt, m_state);
@@ -511,6 +510,15 @@
m_parent->signalAPIResult(&result);
}
break;
+ case QCAMERA_SM_EVT_STOP_AUTO_FOCUS:
+ {
+ rc = m_parent->cancelAutoFocus();
+ result.status = rc;
+ result.request_api = evt;
+ result.result_type = QCAMERA_API_RESULT_TYPE_DEF;
+ m_parent->signalAPIResult(&result);
+ }
+ break;
case QCAMERA_SM_EVT_REG_FACE_IMAGE:
{
int32_t faceID = 0;
@@ -1023,7 +1031,7 @@
break;
case QCAMERA_SM_EVT_PREPARE_SNAPSHOT:
{
- rc = m_parent->prepareHardwareForSnapshot();
+ rc = m_parent->prepareHardwareForSnapshot(FALSE);
if (rc == NO_ERROR) {
// Do not signal API result in this case.
// Need to wait for snapshot done in metadta.