xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/algos/alsc/rk_aiq_uapi_alsc_int.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #include "rk_aiq_uapi_alsc_int.h"
2 #include "alsc/rk_aiq_types_alsc_algo_prvt.h"
3 XCamReturn
rk_aiq_uapi_alsc_SetAttrib(RkAiqAlgoContext * ctx,rk_aiq_lsc_attrib_t attr,bool need_sync)4 rk_aiq_uapi_alsc_SetAttrib(RkAiqAlgoContext *ctx,
5                            rk_aiq_lsc_attrib_t attr,
6                            bool need_sync)
7 {
8     alsc_context_t* lsc_contex = (alsc_context_t*)ctx->alsc_para;
9     lsc_contex->mCurAtt = attr;
10     lsc_contex->updateAtt = true;
11     lsc_contex->smartRunRes.forceRunFlag = true;
12 
13     return XCAM_RETURN_NO_ERROR;
14 }
15 
16 XCamReturn
rk_aiq_uapi_alsc_GetAttrib(const RkAiqAlgoContext * ctx,rk_aiq_lsc_attrib_t * attr)17 rk_aiq_uapi_alsc_GetAttrib(const RkAiqAlgoContext *ctx,
18                            rk_aiq_lsc_attrib_t *attr)
19 {
20     alsc_context_t* lsc_contex = (alsc_context_t*)ctx->alsc_para;;
21 
22     // use stManual as current hw params
23     memcpy(lsc_contex->mCurAtt.stManual.lsc_sect_size_x, lsc_contex->lscHwConf.x_size_tbl,
24            sizeof(lsc_contex->mCurAtt.stManual.lsc_sect_size_x));
25     memcpy(lsc_contex->mCurAtt.stManual.lsc_sect_size_y, lsc_contex->lscHwConf.y_size_tbl,
26            sizeof(lsc_contex->mCurAtt.stManual.lsc_sect_size_y));
27     memcpy(lsc_contex->mCurAtt.stManual.r_data_tbl, lsc_contex->lscHwConf.r_data_tbl,
28            sizeof(lsc_contex->mCurAtt.stManual.r_data_tbl));
29     memcpy(lsc_contex->mCurAtt.stManual.gr_data_tbl, lsc_contex->lscHwConf.gr_data_tbl,
30            sizeof(lsc_contex->mCurAtt.stManual.gr_data_tbl));
31     memcpy(lsc_contex->mCurAtt.stManual.gb_data_tbl, lsc_contex->lscHwConf.gb_data_tbl,
32            sizeof(lsc_contex->mCurAtt.stManual.gb_data_tbl));
33     memcpy(lsc_contex->mCurAtt.stManual.b_data_tbl, lsc_contex->lscHwConf.b_data_tbl,
34            sizeof(lsc_contex->mCurAtt.stManual.b_data_tbl));
35 
36     memcpy(attr, &lsc_contex->mCurAtt, sizeof(rk_aiq_lsc_attrib_t));
37 
38     return XCAM_RETURN_NO_ERROR;
39 }
40 
41 XCamReturn
rk_aiq_uapi_alsc_QueryLscInfo(const RkAiqAlgoContext * ctx,rk_aiq_lsc_querry_info_t * lsc_querry_info)42 rk_aiq_uapi_alsc_QueryLscInfo(const RkAiqAlgoContext *ctx,
43                               rk_aiq_lsc_querry_info_t *lsc_querry_info )
44 {
45 
46     alsc_context_t* lsc_contex = (alsc_context_t*)ctx->alsc_para;;
47     memcpy(lsc_querry_info->r_data_tbl, lsc_contex->lscHwConf.r_data_tbl, sizeof(lsc_contex->lscHwConf.r_data_tbl));
48     memcpy(lsc_querry_info->gr_data_tbl, lsc_contex->lscHwConf.gr_data_tbl, sizeof(lsc_contex->lscHwConf.gr_data_tbl));
49     memcpy(lsc_querry_info->gb_data_tbl, lsc_contex->lscHwConf.gb_data_tbl, sizeof(lsc_contex->lscHwConf.gb_data_tbl));
50     memcpy(lsc_querry_info->b_data_tbl, lsc_contex->lscHwConf.b_data_tbl, sizeof(lsc_contex->lscHwConf.b_data_tbl));
51     lsc_querry_info->lsc_en = lsc_contex->lscHwConf.lsc_en;
52 
53     return XCAM_RETURN_NO_ERROR;
54 }
55 
56 
57