diff options
Diffstat (limited to 'camera/OMXCameraAdapter/OMXCameraAdapter.cpp')
-rw-r--r-- | camera/OMXCameraAdapter/OMXCameraAdapter.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp index df6140d..7825e00 100644 --- a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp +++ b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp @@ -2796,6 +2796,7 @@ OMX_ERRORTYPE OMXCameraAdapter::SignalEvent(OMX_IN OMX_HANDLETYPE hComponent, { Mutex::Autolock lock(mEventLock); TIUTILS::Message *msg; + bool eventSignalled = false; LOG_FUNCTION_NAME; @@ -2829,6 +2830,19 @@ OMX_ERRORTYPE OMXCameraAdapter::SignalEvent(OMX_IN OMX_HANDLETYPE hComponent, CAMHAL_LOGDA("Event queue empty!!!"); } + // Special handling for any unregistered events + if (!eventSignalled) { + // Handling for focus callback + if ((nData2 == OMX_IndexConfigCommonFocusStatus) && + (eEvent == (OMX_EVENTTYPE) OMX_EventIndexSettingChanged)) { + TIUTILS::Message msg; + msg.command = OMXCallbackHandler::CAMERA_FOCUS_STATUS; + msg.arg1 = NULL; + msg.arg2 = NULL; + mOMXCallbackHandler->put(&msg); + } + } + LOG_FUNCTION_NAME_EXIT; return OMX_ErrorNone; @@ -3435,6 +3449,11 @@ bool OMXCameraAdapter::OMXCallbackHandler::Handler() ( OMX_BUFFERHEADERTYPE *) msg.arg2); break; } + case OMXCallbackHandler::CAMERA_FOCUS_STATUS: + { + mCameraAdapter->handleFocusCallback(); + break; + } case CommandHandler::COMMAND_EXIT: { CAMHAL_LOGDA("Exiting OMX callback handler"); |