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