status_t OMXCameraAdapter::cancelAutoFocus() { status_t ret = NO_ERROR; OMX_ERRORTYPE eError = OMX_ErrorNone; OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE focusMode; LOG_FUNCTION_NAME; ret = getFocusMode(focusMode); if ( NO_ERROR != ret ) { return ret; } //Stop the AF only for modes other than CAF or Inifinity if ( ( focusMode.eFocusControl != OMX_IMAGE_FocusControlAuto ) && ( focusMode.eFocusControl != ( OMX_IMAGE_FOCUSCONTROLTYPE ) OMX_IMAGE_FocusControlAutoInfinity ) ) { stopAutoFocus(); } else if (focusMode.eFocusControl == OMX_IMAGE_FocusControlAuto) { // This re-enabling of CAF doesn't seem to // be needed any more. // re-apply CAF after unlocking and canceling // mPending3Asettings |= SetFocus; } // If the apps call #cancelAutoFocus()}, the face callbacks will also resume. pauseFaceDetection(false); LOG_FUNCTION_NAME_EXIT; return ret; }
void Observer::deserialize( co::DataIStream& is, const uint64_t dirtyBits ) { Super::deserialize( is, dirtyBits ); if( dirtyBits & ( DIRTY_EYE_POSITION | DIRTY_HEAD )) _updateEyes(); if( dirtyBits & DIRTY_FOCUS || ( (dirtyBits & DIRTY_HEAD) && getFocusMode() != FOCUSMODE_FIXED )) { _updateViews(); } if( dirtyBits & DIRTY_HEAD ) getHeadMatrix().inverse( _inverseHeadMatrix ); }