/****************************************************************************** * * Copyright 2019, Fuzhou Rockchip Electronics Co.Ltd . All rights reserved. * No part of this work may be reproduced, modified, distributed, transmitted, * transcribed, or translated into any language or computer format, in any form * or by any means without written permission of: * Fuzhou Rockchip Electronics Co.Ltd . * * *****************************************************************************/ #include "base/xcam_common.h" #include "rk_aiq_user_api_ae.h" #include "algo_handlers/RkAiqAeHandle.h" RKAIQ_BEGIN_DECLARE #ifdef RK_SIMULATOR_HW #define CHECK_USER_API_ENABLE #endif XCamReturn rk_aiq_user_api_ae_setExpSwAttr ( const rk_aiq_sys_ctx_t* sys_ctx, const Uapi_ExpSwAttr_t expSwAttr ) { XCamReturn ret = XCAM_RETURN_NO_ERROR; CHECK_USER_API_ENABLE2(sys_ctx); CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE); RKAIQ_API_SMART_LOCK(sys_ctx); RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->setExpSwAttr(expSwAttr); } return (ret); } XCamReturn rk_aiq_user_api_ae_getExpSwAttr ( const rk_aiq_sys_ctx_t* sys_ctx, Uapi_ExpSwAttr_t* pExpSwAttr ) { RKAIQ_API_SMART_LOCK(sys_ctx); XCamReturn ret = XCAM_RETURN_NO_ERROR; RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->getExpSwAttr(pExpSwAttr); } return (ret); } XCamReturn rk_aiq_user_api_ae_setLinAeRouteAttr ( const rk_aiq_sys_ctx_t* sys_ctx, const Uapi_LinAeRouteAttr_t linAeRouteAttr ) { XCamReturn ret = XCAM_RETURN_NO_ERROR; CHECK_USER_API_ENABLE2(sys_ctx); CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE); RKAIQ_API_SMART_LOCK(sys_ctx); RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->setLinAeRouteAttr(linAeRouteAttr); } return(ret); } XCamReturn rk_aiq_user_api_ae_getLinAeRouteAttr ( const rk_aiq_sys_ctx_t* sys_ctx, Uapi_LinAeRouteAttr_t* pLinAeRouteAttr ) { RKAIQ_API_SMART_LOCK(sys_ctx); XCamReturn ret = XCAM_RETURN_NO_ERROR; RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->getLinAeRouteAttr(pLinAeRouteAttr); } return(ret); } XCamReturn rk_aiq_user_api_ae_setHdrAeRouteAttr ( const rk_aiq_sys_ctx_t* sys_ctx, const Uapi_HdrAeRouteAttr_t hdrAeRouteAttr ) { XCamReturn ret = XCAM_RETURN_NO_ERROR; CHECK_USER_API_ENABLE2(sys_ctx); CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE); RKAIQ_API_SMART_LOCK(sys_ctx); RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->setHdrAeRouteAttr(hdrAeRouteAttr); } return(ret); } XCamReturn rk_aiq_user_api_ae_getHdrAeRouteAttr ( const rk_aiq_sys_ctx_t* sys_ctx, Uapi_HdrAeRouteAttr_t* pHdrAeRouteAttr ) { RKAIQ_API_SMART_LOCK(sys_ctx); XCamReturn ret = XCAM_RETURN_NO_ERROR; RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->getHdrAeRouteAttr(pHdrAeRouteAttr); } return(ret); } XCamReturn rk_aiq_user_api_ae_setLinExpAttr ( const rk_aiq_sys_ctx_t* sys_ctx, const Uapi_LinExpAttr_t linExpAttr ) { XCamReturn ret = XCAM_RETURN_NO_ERROR; CHECK_USER_API_ENABLE2(sys_ctx); CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE); RKAIQ_API_SMART_LOCK(sys_ctx); RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->setLinExpAttr(linExpAttr); } return(ret); } XCamReturn rk_aiq_user_api_ae_getLinExpAttr ( const rk_aiq_sys_ctx_t* sys_ctx, Uapi_LinExpAttr_t* pLinExpAttr ) { RKAIQ_API_SMART_LOCK(sys_ctx); XCamReturn ret = XCAM_RETURN_NO_ERROR; RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->getLinExpAttr(pLinExpAttr); } return(ret); } XCamReturn rk_aiq_user_api_ae_setHdrExpAttr ( const rk_aiq_sys_ctx_t* sys_ctx, const Uapi_HdrExpAttr_t hdrExpAttr ) { XCamReturn ret = XCAM_RETURN_NO_ERROR; CHECK_USER_API_ENABLE2(sys_ctx); CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE); RKAIQ_API_SMART_LOCK(sys_ctx); RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->setHdrExpAttr(hdrExpAttr); } return(ret); } XCamReturn rk_aiq_user_api_ae_getHdrExpAttr ( const rk_aiq_sys_ctx_t* sys_ctx, Uapi_HdrExpAttr_t* pHdrExpAttr ) { RKAIQ_API_SMART_LOCK(sys_ctx); XCamReturn ret = XCAM_RETURN_NO_ERROR; RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->getHdrExpAttr(pHdrExpAttr); } return(ret); } XCamReturn rk_aiq_user_api_ae_queryExpResInfo ( const rk_aiq_sys_ctx_t* sys_ctx, Uapi_ExpQueryInfo_t* pExpResInfo ) { RKAIQ_API_SMART_LOCK(sys_ctx); XCamReturn ret = XCAM_RETURN_NO_ERROR; RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->queryExpInfo(pExpResInfo); } return(ret); } XCamReturn rk_aiq_user_api_ae_setExpWinAttr ( const rk_aiq_sys_ctx_t* sys_ctx, const Uapi_ExpWin_t ExpWin ) { XCamReturn ret = XCAM_RETURN_NO_ERROR; CHECK_USER_API_ENABLE2(sys_ctx); CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE); RKAIQ_API_SMART_LOCK(sys_ctx); RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->setExpWinAttr(ExpWin); } return(ret); } XCamReturn rk_aiq_user_api_ae_getExpWinAttr ( const rk_aiq_sys_ctx_t* sys_ctx, Uapi_ExpWin_t* pExpWin ) { RKAIQ_API_SMART_LOCK(sys_ctx); XCamReturn ret = XCAM_RETURN_NO_ERROR; RkAiqAeHandleInt* algo_handle = algoHandle(sys_ctx, RK_AIQ_ALGO_TYPE_AE); if (algo_handle) { return algo_handle->getExpWinAttr(pExpWin); } return(ret); } RKAIQ_END_DECLARE