#include "rk_aiq_uapi_adrc_int.h" #include "adrc/rk_aiq_types_adrc_algo_prvt.h" XCamReturn rk_aiq_uapi_adrc_SetAttrib(RkAiqAlgoContext *ctx, drc_attrib_t attr, bool need_sync) { LOG1_ATMO("ENTER: %s \n", __func__); AdrcContext_t* pAdrcCtx = (AdrcContext_t*)(ctx); XCamReturn ret = XCAM_RETURN_NO_ERROR; pAdrcCtx->drcAttr.opMode = attr.opMode; if(attr.opMode == DRC_OPMODE_MANU) { if(CHECK_ISP_HW_V21()) memcpy(&pAdrcCtx->drcAttr.stManualV21, &attr.stManualV21, sizeof(mdrcAttr_V21_t)); else if(CHECK_ISP_HW_V30()) memcpy(&pAdrcCtx->drcAttr.stManualV30, &attr.stManualV30, sizeof(mdrcAttr_V30_t)); } if(attr.opMode == DRC_OPMODE_DRC_GAIN) memcpy(&pAdrcCtx->drcAttr.stDrcGain, &attr.stDrcGain, sizeof(mDrcGain_t)); if(attr.opMode == DRC_OPMODE_HILIT) memcpy(&pAdrcCtx->drcAttr.stHiLit, &attr.stHiLit, sizeof(mDrcHiLit_t)); if(attr.opMode == DRC_OPMODE_LOCAL_TMO) { if(CHECK_ISP_HW_V21()) memcpy(&pAdrcCtx->drcAttr.stLocalDataV21, &attr.stLocalDataV21, sizeof(mLocalDataV21_t)); else if(CHECK_ISP_HW_V30()) memcpy(&pAdrcCtx->drcAttr.stLocalDataV30, &attr.stLocalDataV30, sizeof(mLocalDataV30_t)); } LOG1_ATMO("EXIT: %s \n", __func__); return ret; } XCamReturn rk_aiq_uapi_adrc_GetAttrib(RkAiqAlgoContext *ctx, drc_attrib_t *attr) { LOG1_ATMO("ENTER: %s \n", __func__); XCamReturn ret = XCAM_RETURN_NO_ERROR; AdrcContext_t* pAdrcCtx = (AdrcContext_t*)ctx; attr->opMode = pAdrcCtx->drcAttr.opMode; memcpy(&attr->Info, &pAdrcCtx->drcAttr.Info, sizeof(DrcInfo_t)); memcpy(&attr->stDrcGain, &pAdrcCtx->drcAttr.stDrcGain, sizeof(mDrcGain_t)); memcpy(&attr->stHiLit, &pAdrcCtx->drcAttr.stHiLit, sizeof(mDrcHiLit_t)); if(CHECK_ISP_HW_V21()) { memcpy(&attr->stManualV21, &pAdrcCtx->drcAttr.stManualV21, sizeof(mdrcAttr_V21_t)); memcpy(&attr->stLocalDataV21, &pAdrcCtx->drcAttr.stLocalDataV21, sizeof(mLocalDataV21_t)); } else if(CHECK_ISP_HW_V30()) { memcpy(&attr->stManualV30, &pAdrcCtx->drcAttr.stManualV30, sizeof(mdrcAttr_V30_t)); memcpy(&attr->stLocalDataV30, &pAdrcCtx->drcAttr.stLocalDataV30, sizeof(mLocalDataV30_t)); } LOG1_ATMO("EXIT: %s \n", __func__); return XCAM_RETURN_NO_ERROR; }