summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Levin <dendy@ti.com>2012-07-25 16:21:42 -0500
committerDaniel Levin <dendy@ti.com>2012-07-25 16:21:42 -0500
commit39d50eecaa890262e491ad27cceda3f7e67deaed (patch)
tree870c4b69ddfd6e2ede4cf6e0e6fbd9d651a74ebc
parent5853dcae469721a87220cc72c34104e839f880c7 (diff)
parent1ec22866752ed94071f2d8ed2ca2a4bd724bd36c (diff)
downloadhardware_ti_omap4-39d50eecaa890262e491ad27cceda3f7e67deaed.zip
hardware_ti_omap4-39d50eecaa890262e491ad27cceda3f7e67deaed.tar.gz
hardware_ti_omap4-39d50eecaa890262e491ad27cceda3f7e67deaed.tar.bz2
Merge "CameraHal: Implementation for CAF status callbacks" into jb-migration
Change-Id: Ib1a12a16fd0fb2457c2ff9793b3628dbae31c992 Signed-off-by: Daniel Levin <dendy@ti.com>
-rw-r--r--camera/AppCallbackNotifier.cpp44
-rw-r--r--camera/CameraHal.cpp23
-rw-r--r--camera/OMXCameraAdapter/OMXCameraAdapter.cpp1
-rw-r--r--hwc/hwc.c9
-rw-r--r--libstagefrighthw/TIOMXPlugin.cpp2
5 files changed, 53 insertions, 26 deletions
diff --git a/camera/AppCallbackNotifier.cpp b/camera/AppCallbackNotifier.cpp
index 8829b65..44d6a39 100644
--- a/camera/AppCallbackNotifier.cpp
+++ b/camera/AppCallbackNotifier.cpp
@@ -367,20 +367,38 @@ void AppCallbackNotifier::notifyEvent()
case CameraHalEvent::EVENT_FOCUS_LOCKED:
case CameraHalEvent::EVENT_FOCUS_ERROR:
+ if ( mCameraHal && mNotifyCb ) {
+ focusEvtData = &evt->mEventData->focusEvent;
+
+ switch ( focusEvtData->focusStatus ) {
+ case CameraHalEvent::FOCUS_STATUS_SUCCESS:
+ if ( mCameraHal->msgTypeEnabled(CAMERA_MSG_FOCUS) ) {
+ mCameraHal->disableMsgType(CAMERA_MSG_FOCUS);
+ mNotifyCb(CAMERA_MSG_FOCUS, true, 0, mCallbackCookie);
+ }
+ break;
- focusEvtData = &evt->mEventData->focusEvent;
- 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->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);
+ case CameraHalEvent::FOCUS_STATUS_FAIL:
+ if ( mCameraHal->msgTypeEnabled(CAMERA_MSG_FOCUS) ) {
+ mCameraHal->disableMsgType(CAMERA_MSG_FOCUS);
+ mNotifyCb(CAMERA_MSG_FOCUS, false, 0, mCallbackCookie);
+ }
+ break;
+
+#ifdef ANDROID_API_JB_OR_LATER
+ case CameraHalEvent::FOCUS_STATUS_PENDING:
+ if ( mCameraHal->msgTypeEnabled(CAMERA_MSG_FOCUS_MOVE) ) {
+ mNotifyCb(CAMERA_MSG_FOCUS_MOVE, true, 0, mCallbackCookie);
+ }
+ break;
+
+ case CameraHalEvent::FOCUS_STATUS_DONE:
+ if ( mCameraHal->msgTypeEnabled(CAMERA_MSG_FOCUS_MOVE) ) {
+ mNotifyCb(CAMERA_MSG_FOCUS_MOVE, false, 0, mCallbackCookie);
+ }
+ break;
+#endif
+ }
}
break;
diff --git a/camera/CameraHal.cpp b/camera/CameraHal.cpp
index 7ece1a6..9be99c5 100644
--- a/camera/CameraHal.cpp
+++ b/camera/CameraHal.cpp
@@ -3303,14 +3303,27 @@ status_t CameraHal::sendCommand(int32_t cmd, int32_t arg1, int32_t arg2)
return -EINVAL;
}
+ ///////////////////////////////////////////////////////
+ // Following commands do NOT need preview to be started
+ ///////////////////////////////////////////////////////
+
+ switch ( cmd ) {
#ifdef ANDROID_API_JB_OR_LATER
- switch (cmd) {
case CAMERA_CMD_ENABLE_FOCUS_MOVE_MSG:
- return OK;
+ {
+ const bool enable = static_cast<bool>(arg1);
+ android::AutoMutex lock(mLock);
+ if ( enable ) {
+ mMsgEnabled |= CAMERA_MSG_FOCUS_MOVE;
+ } else {
+ mMsgEnabled &= ~CAMERA_MSG_FOCUS_MOVE;
+ }
}
+ return OK;
#endif
+ }
- if ( ( NO_ERROR == ret ) && ( !previewEnabled() )
+ if ( ret == OK && !previewEnabled()
#ifdef OMAP_ENHANCEMENT_VTC
&& (cmd != CAMERA_CMD_PREVIEW_INITIALIZATION)
#endif
@@ -3319,6 +3332,10 @@ status_t CameraHal::sendCommand(int32_t cmd, int32_t arg1, int32_t arg2)
ret = -EINVAL;
}
+ ///////////////////////////////////////////////////////
+ // Following commands NEED preview to be started
+ ///////////////////////////////////////////////////////
+
if ( NO_ERROR == ret )
{
switch(cmd)
diff --git a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
index ec3cb9f..2b7ef30 100644
--- a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
+++ b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
@@ -3120,6 +3120,7 @@ OMX_ERRORTYPE OMXCameraAdapter::SignalEvent(OMX_IN OMX_HANDLETYPE hComponent,
//Signal the semaphore provided
sem->Signal();
free(msg);
+ eventSignalled = true;
break;
}
}
diff --git a/hwc/hwc.c b/hwc/hwc.c
index ab4ce39..4ac3817 100644
--- a/hwc/hwc.c
+++ b/hwc/hwc.c
@@ -1459,15 +1459,6 @@ static int omap4_hwc_set(struct hwc_composer_device *dev, hwc_display_t dpy,
hwc_dev->buffers,
hwc_dev->post2_layers,
dsscomp, sizeof(*dsscomp));
-
- if (!hwc_dev->use_sgx) {
- __u32 crt = 0;
- int err2 = ioctl(hwc_dev->fb_fd, FBIO_WAITFORVSYNC, &crt);
- if (err2) {
- ALOGE("failed to wait for vsync (%d)", errno);
- err = err ? : -errno;
- }
- }
}
hwc_dev->last_ext_ovls = hwc_dev->ext_ovls;
hwc_dev->last_int_ovls = hwc_dev->post2_layers;
diff --git a/libstagefrighthw/TIOMXPlugin.cpp b/libstagefrighthw/TIOMXPlugin.cpp
index de764c6..cff5e90 100644
--- a/libstagefrighthw/TIOMXPlugin.cpp
+++ b/libstagefrighthw/TIOMXPlugin.cpp
@@ -43,7 +43,7 @@ TIOMXPlugin::TIOMXPlugin()
mGetRolesOfComponentHandle(NULL) {
if (mLibHandle != NULL) {
mInit = (InitFunc)dlsym(mLibHandle, "TIOMX_Init");
- mDeinit = (DeinitFunc)dlsym(mLibHandle, "TIOMX_DeInit");
+ mDeinit = (DeinitFunc)dlsym(mLibHandle, "TIOMX_Deinit");
mComponentNameEnum =
(ComponentNameEnumFunc)dlsym(mLibHandle, "TIOMX_ComponentNameEnum");