summaryrefslogtreecommitdiffstats
path: root/camera/AppCallbackNotifier.cpp
diff options
context:
space:
mode:
authorTyler Luu <tluu@ti.com>2012-01-31 13:36:22 -0600
committerIliyan Malchev <malchev@google.com>2012-02-01 14:47:16 -0800
commit057f4fd59ec05ded909e9eb9a3363d9ea345b0ca (patch)
tree8687455a958ce799dfb7237f11d70a3c12b28038 /camera/AppCallbackNotifier.cpp
parenta6e104aadf560de4e33291c8e85f79acc8fb46c9 (diff)
downloadhardware_ti_omap4xxx-057f4fd59ec05ded909e9eb9a3363d9ea345b0ca.zip
hardware_ti_omap4xxx-057f4fd59ec05ded909e9eb9a3363d9ea345b0ca.tar.gz
hardware_ti_omap4xxx-057f4fd59ec05ded909e9eb9a3363d9ea345b0ca.tar.bz2
CameraHal: Implementation for CAF status callbacks
1. Remove internal handling of CAMERA_MSG_FOCUS. Before we were enabling CAMERA_MSG_FOCUS only when application calls autoFocus(). No longer needed since the CAMERA_MSG_FOCUS can come just during preview now. 2. Add handling of unregistered focus callbacks. Since OMXCamera will send callbacks even when we are not waiting for one, add some handling. Signed-off-by: Tyler Luu <tluu@ti.com> Change-Id: I457e67b33b2561dd0b1ce3863ce807a8c27f79f6 Conflicts: camera/OMXCameraAdapter/OMXFocus.cpp
Diffstat (limited to 'camera/AppCallbackNotifier.cpp')
-rw-r--r--camera/AppCallbackNotifier.cpp31
1 files changed, 22 insertions, 9 deletions
diff --git a/camera/AppCallbackNotifier.cpp b/camera/AppCallbackNotifier.cpp
index 58cb9a7..4489b1f 100644
--- a/camera/AppCallbackNotifier.cpp
+++ b/camera/AppCallbackNotifier.cpp
@@ -353,24 +353,37 @@ void AppCallbackNotifier::notifyEvent()
case CameraHalEvent::EVENT_FOCUS_LOCKED:
case CameraHalEvent::EVENT_FOCUS_ERROR:
-
focusEvtData = &evt->mEventData->focusEvent;
- if ( ( focusEvtData->focusLocked ) &&
- ( NULL != mCameraHal ) &&
- ( NULL != mNotifyCb ) &&
- ( mCameraHal->msgTypeEnabled(CAMERA_MSG_FOCUS) ) )
+ if ( ( focusEvtData->focusStatus == CameraHalEvent::FOCUS_STATUS_SUCCESS ) &&
+ ( NULL != mCameraHal ) &&
+ ( NULL != mNotifyCb ) &&
+ ( mCameraHal->msgTypeEnabled(CAMERA_MSG_FOCUS) ) )
{
mCameraHal->disableMsgType(CAMERA_MSG_FOCUS);
mNotifyCb(CAMERA_MSG_FOCUS, true, 0, mCallbackCookie);
}
- else if ( focusEvtData->focusError &&
- ( NULL != mCameraHal ) &&
- ( NULL != mNotifyCb ) &&
- ( mCameraHal->msgTypeEnabled(CAMERA_MSG_FOCUS) ) )
+ else if ( ( focusEvtData->focusStatus == CameraHalEvent::FOCUS_STATUS_FAIL ) &&
+ ( NULL != mCameraHal ) &&
+ ( NULL != mNotifyCb ) &&
+ ( mCameraHal->msgTypeEnabled(CAMERA_MSG_FOCUS) ) )
{
mCameraHal->disableMsgType(CAMERA_MSG_FOCUS);
mNotifyCb(CAMERA_MSG_FOCUS, false, 0, mCallbackCookie);
}
+ else if ( ( focusEvtData->focusStatus == CameraHalEvent::FOCUS_STATUS_PENDING ) &&
+ ( NULL != mCameraHal ) &&
+ ( NULL != mNotifyCb ) &&
+ ( mCameraHal->msgTypeEnabled(CAMERA_MSG_FOCUS_MOVE) ) )
+ {
+ mNotifyCb(CAMERA_MSG_FOCUS_MOVE, true, 0, mCallbackCookie);
+ }
+ else if ( ( focusEvtData->focusStatus == CameraHalEvent::FOCUS_STATUS_DONE ) &&
+ ( NULL != mCameraHal ) &&
+ ( NULL != mNotifyCb ) &&
+ ( mCameraHal->msgTypeEnabled(CAMERA_MSG_FOCUS_MOVE) ) )
+ {
+ mNotifyCb(CAMERA_MSG_FOCUS_MOVE, false, 0, mCallbackCookie);
+ }
break;