#include "rk_aiq_uapi_accm_int.h" #include "accm/rk_aiq_types_accm_algo_prvt.h" XCamReturn rk_aiq_uapi_accm_SetAttrib(RkAiqAlgoContext *ctx, rk_aiq_ccm_attrib_t attr, bool need_sync) { accm_context_t* ccm_contex = (accm_context_t*)ctx->accm_para; ccm_contex->mNewAtt = attr; ccm_contex->updateAtt = true; return XCAM_RETURN_NO_ERROR; } XCamReturn rk_aiq_uapi_accm_GetAttrib(const RkAiqAlgoContext *ctx, rk_aiq_ccm_attrib_t *attr) { accm_context_t* ccm_contex = (accm_context_t*)ctx->accm_para; memcpy(attr, &ccm_contex->mCurAtt, sizeof(rk_aiq_ccm_attrib_t)); return XCAM_RETURN_NO_ERROR; } XCamReturn rk_aiq_uapi_accm_QueryCcmInfo(const RkAiqAlgoContext *ctx, rk_aiq_ccm_querry_info_t *ccm_querry_info ) { accm_context_t* ccm_contex = (accm_context_t*)ctx->accm_para; memcpy(ccm_querry_info->alp_y, ccm_contex->ccmHwConf.alp_y, sizeof(ccm_contex->ccmHwConf.alp_y)); memcpy(ccm_querry_info->matrix, ccm_contex->ccmHwConf.matrix, sizeof(ccm_contex->ccmHwConf.matrix)); memcpy(ccm_querry_info->offs, ccm_contex->ccmHwConf.offs, sizeof(ccm_contex->ccmHwConf.offs)); ccm_querry_info->ccm_en = ccm_contex->ccmHwConf.ccmEnable; ccm_querry_info->bound_bit = ccm_contex->ccmHwConf.bound_bit; ccm_querry_info->color_inhibition_level = ccm_contex->accmRest.color_inhibition_level; ccm_querry_info->color_saturation_level = ccm_contex->accmRest.color_saturation_level; ccm_querry_info->finalSat = 0; memset(ccm_querry_info->illumination, 0x0, sizeof(ccm_querry_info->illumination)); memset(ccm_querry_info->ccmname1, 0x0, sizeof(ccm_querry_info->ccmname1)); memset(ccm_querry_info->ccmname2, 0x0, sizeof(ccm_querry_info->ccmname2)); if (ccm_querry_info->ccm_en && ccm_contex->mCurAtt.mode == RK_AIQ_CCM_MODE_AUTO){ ccm_querry_info->finalSat = ccm_contex->accmRest.fSaturation; strcpy(ccm_querry_info->illumination, ccm_contex->accmRest.pCcmProfile1->illumination); strcpy(ccm_querry_info->ccmname1, ccm_contex->accmRest.pCcmProfile1->name); if (ccm_contex->accmRest.pCcmProfile2) strcpy(ccm_querry_info->ccmname2, ccm_contex->accmRest.pCcmProfile2->name); else strcpy(ccm_querry_info->ccmname2, ccm_contex->accmRest.pCcmProfile1->name); } return XCAM_RETURN_NO_ERROR; }