xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/algos/ablc/rk_aiq_uapi_ablc_int.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #include "rk_aiq_uapi_ablc_int.h"
2 #include "ablc/rk_aiq_types_ablc_algo_prvt.h"
3 
4 
5 XCamReturn
rk_aiq_uapi_ablc_SetAttrib(RkAiqAlgoContext * ctx,rk_aiq_blc_attrib_t * attr,bool need_sync)6 rk_aiq_uapi_ablc_SetAttrib(RkAiqAlgoContext *ctx,
7                            rk_aiq_blc_attrib_t *attr,
8                            bool need_sync)
9 {
10     AblcContext_t* pAblcCtx = (AblcContext_t*)ctx;
11     XCamReturn ret = XCAM_RETURN_NO_ERROR;
12     pAblcCtx->eMode = attr->eMode;
13     if(attr->eMode == ABLC_OP_MODE_MANUAL) {
14         pAblcCtx->stBlc0Manual = attr->stBlc0Manual;
15         pAblcCtx->stBlc1Manual = attr->stBlc1Manual;
16     } else if(attr->eMode == ABLC_OP_MODE_AUTO) {
17         memcpy(&pAblcCtx->stBlc0Params, &attr->stBlc0Auto, sizeof(pAblcCtx->stBlc0Params));
18         memcpy(&pAblcCtx->stBlc1Params, &attr->stBlc1Auto, sizeof(pAblcCtx->stBlc1Params));
19     }
20 
21 
22     pAblcCtx->isReCalculate |= 1;
23     return ret;
24 }
25 
26 XCamReturn
rk_aiq_uapi_ablc_GetAttrib(const RkAiqAlgoContext * ctx,rk_aiq_blc_attrib_t * attr)27 rk_aiq_uapi_ablc_GetAttrib(const RkAiqAlgoContext *ctx,
28                            rk_aiq_blc_attrib_t *attr)
29 {
30 
31     AblcContext_t* pAblcCtx = (AblcContext_t*)ctx;
32     XCamReturn ret = XCAM_RETURN_NO_ERROR;
33 
34     attr->eMode = pAblcCtx->eMode;
35     memcpy(&attr->stBlc0Manual, &pAblcCtx->stBlc0Manual, sizeof(attr->stBlc0Manual));
36     memcpy(&attr->stBlc1Manual, &pAblcCtx->stBlc1Manual, sizeof(attr->stBlc1Manual));
37 
38     memcpy(&attr->stBlc0Auto, &pAblcCtx->stBlc0Params, sizeof(attr->stBlc0Auto));
39     memcpy(&attr->stBlc1Auto, &pAblcCtx->stBlc1Params, sizeof(attr->stBlc1Auto));
40     return ret;
41 }
42 
43 
44 XCamReturn
rk_aiq_uapi_ablc_GetProc(const RkAiqAlgoContext * ctx,AblcProc_t * ProcRes)45 rk_aiq_uapi_ablc_GetProc(const RkAiqAlgoContext *ctx,
46                          AblcProc_t *ProcRes)
47 {
48     AblcContext_t* pAblcCtx = (AblcContext_t*)ctx;
49     XCamReturn ret = XCAM_RETURN_NO_ERROR;
50 
51     *ProcRes = pAblcCtx->ProcRes;
52     return ret;
53 }
54 
55 XCamReturn
rk_aiq_uapi_ablc_GetInfo(const RkAiqAlgoContext * ctx,rk_aiq_ablc_info_t * pInfo)56 rk_aiq_uapi_ablc_GetInfo(const RkAiqAlgoContext *ctx,
57                          rk_aiq_ablc_info_t *pInfo)
58 {
59     AblcContext_t* pAblcCtx = (AblcContext_t*)ctx;
60     XCamReturn ret = XCAM_RETURN_NO_ERROR;
61 
62     pInfo->iso = pAblcCtx->stExpInfo.arIso[pAblcCtx->stExpInfo.hdr_mode];
63     pInfo->expo_info = pAblcCtx->stExpInfo;
64     return ret;
65 }
66 
67 
68