summaryrefslogtreecommitdiffstats
path: root/camera/OMXCameraAdapter/OMXZoom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'camera/OMXCameraAdapter/OMXZoom.cpp')
-rw-r--r--camera/OMXCameraAdapter/OMXZoom.cpp289
1 files changed, 0 insertions, 289 deletions
diff --git a/camera/OMXCameraAdapter/OMXZoom.cpp b/camera/OMXCameraAdapter/OMXZoom.cpp
deleted file mode 100644
index 11c8f75..0000000
--- a/camera/OMXCameraAdapter/OMXZoom.cpp
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (C) Texas Instruments - http://www.ti.com/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
-* @file OMXZoom.cpp
-*
-* This file contains functionality for handling zoom configurations.
-*
-*/
-
-#include "CameraHal.h"
-#include "OMXCameraAdapter.h"
-
-namespace Ti {
-namespace Camera {
-
-const int32_t OMXCameraAdapter::ZOOM_STEPS [ZOOM_STAGES] = {
- 65536, 68157, 70124, 72745,
- 75366, 77988, 80609, 83231,
- 86508, 89784, 92406, 95683,
- 99615, 102892, 106168, 110100,
- 114033, 117965, 122552, 126484,
- 131072, 135660, 140247, 145490,
- 150733, 155976, 161219, 167117,
- 173015, 178913, 185467, 192020,
- 198574, 205783, 212992, 220201,
- 228065, 236585, 244449, 252969,
- 262144, 271319, 281149, 290980,
- 300810, 311951, 322437, 334234,
- 346030, 357827, 370934, 384041,
- 397148, 411566, 425984, 441057,
- 456131, 472515, 488899, 506593,
- 524288 };
-
-
-status_t OMXCameraAdapter::setParametersZoom(const android::CameraParameters &params,
- BaseCameraAdapter::AdapterState state)
-{
- status_t ret = NO_ERROR;
- android::AutoMutex lock(mZoomLock);
-
- LOG_FUNCTION_NAME;
-
- //Immediate zoom should not be avaialable while smooth zoom is running
- if ( ( ZOOM_ACTIVE & state ) != ZOOM_ACTIVE )
- {
- int zoom = params.getInt(android::CameraParameters::KEY_ZOOM);
- if (( zoom >= 0 ) && ( zoom < mMaxZoomSupported )) {
- mTargetZoomIdx = zoom;
-
- //Immediate zoom should be applied instantly ( CTS requirement )
- mCurrentZoomIdx = mTargetZoomIdx;
- if(!mZoomUpdating) {
- doZoom(mCurrentZoomIdx);
- mZoomUpdating = true;
- } else {
- mZoomUpdate = true;
- }
-
- CAMHAL_LOGDB("Zoom by App %d", zoom);
- }
- }
-
- LOG_FUNCTION_NAME_EXIT;
-
- return ret;
-}
-
-status_t OMXCameraAdapter::doZoom(int index)
-{
- status_t ret = NO_ERROR;
- OMX_ERRORTYPE eError = OMX_ErrorNone;
- OMX_CONFIG_SCALEFACTORTYPE zoomControl;
-
- LOG_FUNCTION_NAME;
-
- if ( OMX_StateInvalid == mComponentState )
- {
- CAMHAL_LOGEA("OMX component is in invalid state");
- ret = -1;
- }
-
- if (( 0 > index) || ((mMaxZoomSupported - 1 ) < index )) {
- CAMHAL_LOGEB("Zoom index %d out of range", index);
- ret = -EINVAL;
- }
-
- if (mPreviousZoomIndx == (unsigned int)index )
- {
- return NO_ERROR;
- }
-
- if ( NO_ERROR == ret )
- {
- OMX_INIT_STRUCT_PTR (&zoomControl, OMX_CONFIG_SCALEFACTORTYPE);
- zoomControl.nPortIndex = OMX_ALL;
- zoomControl.xHeight = ZOOM_STEPS[index];
- zoomControl.xWidth = ZOOM_STEPS[index];
-
- eError = OMX_SetConfig(mCameraAdapterParameters.mHandleComp,
- OMX_IndexConfigCommonDigitalZoom,
- &zoomControl);
- if ( OMX_ErrorNone != eError )
- {
- CAMHAL_LOGEB("Error while applying digital zoom 0x%x", eError);
- ret = -1;
- }
- else
- {
- CAMHAL_LOGDA("Digital zoom applied successfully");
- mPreviousZoomIndx = index;
- }
- }
-
- LOG_FUNCTION_NAME_EXIT;
-
- return ret;
-}
-
-status_t OMXCameraAdapter::advanceZoom()
-{
- status_t ret = NO_ERROR;
- AdapterState state;
- android::AutoMutex lock(mZoomLock);
-
- BaseCameraAdapter::getState(state);
-
- if ( mReturnZoomStatus )
- {
- mCurrentZoomIdx +=mZoomInc;
- mTargetZoomIdx = mCurrentZoomIdx;
- mReturnZoomStatus = false;
- ret = doZoom(mCurrentZoomIdx);
- notifyZoomSubscribers(mCurrentZoomIdx, true);
- }
- else if ( mCurrentZoomIdx != mTargetZoomIdx )
- {
- if ( ZOOM_ACTIVE & state )
- {
- if ( mCurrentZoomIdx < mTargetZoomIdx )
- {
- mZoomInc = 1;
- }
- else
- {
- mZoomInc = -1;
- }
-
- mCurrentZoomIdx += mZoomInc;
- }
- else
- {
- mCurrentZoomIdx = mTargetZoomIdx;
- }
-
- ret = doZoom(mCurrentZoomIdx);
-
- if ( ZOOM_ACTIVE & state )
- {
- if ( mCurrentZoomIdx == mTargetZoomIdx )
- {
- CAMHAL_LOGDB("[Goal Reached] Smooth Zoom notify currentIdx = %d, targetIdx = %d",
- mCurrentZoomIdx,
- mTargetZoomIdx);
-
- if ( NO_ERROR == ret )
- {
-
- ret = BaseCameraAdapter::setState(CAMERA_STOP_SMOOTH_ZOOM);
-
- if ( NO_ERROR == ret )
- {
- ret = BaseCameraAdapter::commitState();
- }
- else
- {
- ret |= BaseCameraAdapter::rollbackState();
- }
-
- }
- mReturnZoomStatus = false;
- notifyZoomSubscribers(mCurrentZoomIdx, true);
- }
- else
- {
- CAMHAL_LOGDB("[Advancing] Smooth Zoom notify currentIdx = %d, targetIdx = %d",
- mCurrentZoomIdx,
- mTargetZoomIdx);
- notifyZoomSubscribers(mCurrentZoomIdx, false);
- }
- }
- }
- else if ( (mCurrentZoomIdx == mTargetZoomIdx ) &&
- ( ZOOM_ACTIVE & state ) )
- {
- ret = BaseCameraAdapter::setState(CameraAdapter::CAMERA_STOP_SMOOTH_ZOOM);
-
- if ( NO_ERROR == ret )
- {
- ret = BaseCameraAdapter::commitState();
- }
- else
- {
- ret |= BaseCameraAdapter::rollbackState();
- }
-
- }
-
- if(mZoomUpdate) {
- doZoom(mTargetZoomIdx);
- mZoomUpdate = false;
- mZoomUpdating = true;
- } else {
- mZoomUpdating = false;
- }
-
- return ret;
-}
-
-status_t OMXCameraAdapter::startSmoothZoom(int targetIdx)
-{
- status_t ret = NO_ERROR;
-
- LOG_FUNCTION_NAME;
-
- android::AutoMutex lock(mZoomLock);
-
- CAMHAL_LOGDB("Start smooth zoom target = %d, mCurrentIdx = %d",
- targetIdx,
- mCurrentZoomIdx);
-
- if (( targetIdx >= 0 ) && ( targetIdx < mMaxZoomSupported )) {
- mTargetZoomIdx = targetIdx;
- mZoomParameterIdx = mCurrentZoomIdx;
- mReturnZoomStatus = false;
- } else {
- CAMHAL_LOGEB("Smooth value out of range %d!", targetIdx);
- ret = -EINVAL;
- }
-
- LOG_FUNCTION_NAME_EXIT;
-
- return ret;
-}
-
-status_t OMXCameraAdapter::stopSmoothZoom()
-{
- status_t ret = NO_ERROR;
- android::AutoMutex lock(mZoomLock);
-
- LOG_FUNCTION_NAME;
-
- if ( mTargetZoomIdx != mCurrentZoomIdx )
- {
- if ( mCurrentZoomIdx < mTargetZoomIdx )
- {
- mZoomInc = 1;
- }
- else
- {
- mZoomInc = -1;
- }
- mReturnZoomStatus = true;
- mReturnZoomStatus = true;
- CAMHAL_LOGDB("Stop smooth zoom mCurrentZoomIdx = %d, mTargetZoomIdx = %d",
- mCurrentZoomIdx,
- mTargetZoomIdx);
- }
-
- LOG_FUNCTION_NAME_EXIT;
-
- return ret;
-}
-
-} // namespace Camera
-} // namespace Ti