1 #include "rk_aiq_uapi_a3dlut_int.h"
2 #include "a3dlut/rk_aiq_types_a3dlut_algo_prvt.h"
3 XCamReturn
rk_aiq_uapi_a3dlut_SetAttrib(RkAiqAlgoContext * ctx,const rk_aiq_lut3d_attrib_t * attr,bool need_sync)4 rk_aiq_uapi_a3dlut_SetAttrib(RkAiqAlgoContext *ctx,
5 const rk_aiq_lut3d_attrib_t* attr,
6 bool need_sync)
7 {
8
9 alut3d_context_t* alut3d_context = (alut3d_context_t*)ctx->a3dlut_para;
10 alut3d_context->swinfo.invarMode = attr->mode & alut3d_context->mCurAtt.mode;
11 alut3d_context->mCurAtt = *attr;
12 alut3d_context->updateAtt = true;
13
14 return XCAM_RETURN_NO_ERROR;
15 }
16
17 XCamReturn
rk_aiq_uapi_a3dlut_GetAttrib(const RkAiqAlgoContext * ctx,rk_aiq_lut3d_attrib_t * attr)18 rk_aiq_uapi_a3dlut_GetAttrib(const RkAiqAlgoContext *ctx,
19 rk_aiq_lut3d_attrib_t *attr)
20 {
21
22 alut3d_context_t* alut3d_context = (alut3d_context_t*)ctx->a3dlut_para;
23
24 //TODO: use stManual as current params
25 memcpy(alut3d_context->mCurAtt.stManual.look_up_table_r, alut3d_context->lut3d_hw_conf.tbl.look_up_table_r,
26 sizeof(alut3d_context->mCurAtt.stManual.look_up_table_r));
27 memcpy(alut3d_context->mCurAtt.stManual.look_up_table_g, alut3d_context->lut3d_hw_conf.tbl.look_up_table_g,
28 sizeof(alut3d_context->mCurAtt.stManual.look_up_table_g));
29 memcpy(alut3d_context->mCurAtt.stManual.look_up_table_b, alut3d_context->lut3d_hw_conf.tbl.look_up_table_b,
30 sizeof(alut3d_context->mCurAtt.stManual.look_up_table_b));
31
32 memcpy(attr, &alut3d_context->mCurAtt, sizeof(rk_aiq_lut3d_attrib_t));
33
34 return XCAM_RETURN_NO_ERROR;
35 }
36
37 XCamReturn
rk_aiq_uapi_a3dlut_Query3dlutInfo(const RkAiqAlgoContext * ctx,rk_aiq_lut3d_querry_info_t * lut3d_querry_info)38 rk_aiq_uapi_a3dlut_Query3dlutInfo(const RkAiqAlgoContext *ctx,
39 rk_aiq_lut3d_querry_info_t *lut3d_querry_info )
40 {
41
42 alut3d_context_t* alut3d_context = (alut3d_context_t*)ctx->a3dlut_para;
43 memcpy(lut3d_querry_info->look_up_table_b, alut3d_context->lut3d_hw_conf.tbl.look_up_table_b,
44 sizeof(lut3d_querry_info->look_up_table_b));
45 memcpy(lut3d_querry_info->look_up_table_g, alut3d_context->lut3d_hw_conf.tbl.look_up_table_g,
46 sizeof(lut3d_querry_info->look_up_table_g));
47 memcpy(lut3d_querry_info->look_up_table_r, alut3d_context->lut3d_hw_conf.tbl.look_up_table_r,
48 sizeof(lut3d_querry_info->look_up_table_r));
49 lut3d_querry_info->lut3d_en = alut3d_context->lut3d_hw_conf.enable;
50
51 lut3d_querry_info->alpha = 1;
52 memset(lut3d_querry_info->name, 0x0, sizeof(lut3d_querry_info->name));
53 if (lut3d_querry_info->lut3d_en && alut3d_context->mCurAtt.mode == RK_AIQ_LUT3D_MODE_AUTO){
54 lut3d_querry_info->alpha = alut3d_context->restinfo.alpha;
55 strcpy(lut3d_querry_info->name, alut3d_context->restinfo.pLutProfile->name);
56 }
57
58
59 return XCAM_RETURN_NO_ERROR;
60 }
61
62
63