xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/algos/agamma/rk_aiq_uapi_agamma_int.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #include "rk_aiq_uapi_agamma_int.h"
2 #include "agamma/rk_aiq_types_agamma_algo_prvt.h"
3 
4 #if RKAIQ_HAVE_GAMMA_V10
rk_aiq_uapi_agamma_v10_SetAttrib(RkAiqAlgoContext * ctx,const rk_aiq_gamma_v10_attr_t * attr_v10,bool need_sync)5 XCamReturn rk_aiq_uapi_agamma_v10_SetAttrib(RkAiqAlgoContext* ctx,
6                                             const rk_aiq_gamma_v10_attr_t* attr_v10,
7                                             bool need_sync) {
8     LOG1_AGAMMA("ENTER: %s \n", __func__);
9     AgammaHandle_t *gamma_handle = (AgammaHandle_t *)ctx;
10     XCamReturn ret = XCAM_RETURN_NO_ERROR;
11 
12     gamma_handle->agammaAttrV10.mode = attr_v10->mode;
13     if (attr_v10->mode == RK_AIQ_GAMMA_MODE_MANUAL) {
14         memcpy(&gamma_handle->agammaAttrV10.stManual, &attr_v10->stManual,
15                sizeof(AgammaApiManualV10_t));
16         gamma_handle->ifReCalcStManual = true;
17     }
18     if (attr_v10->mode == RK_AIQ_GAMMA_MODE_AUTO) {
19         memcpy(&gamma_handle->agammaAttrV10.stAuto, &attr_v10->stAuto,
20                sizeof(CalibDbV2_gamma_v10_t));
21         gamma_handle->ifReCalcStAuto = true;
22     }
23 
24     LOG1_AGAMMA("EXIT: %s \n", __func__);
25     return ret;
26 }
27 
rk_aiq_uapi_agamma_v10_GetAttrib(const RkAiqAlgoContext * ctx,rk_aiq_gamma_v10_attr_t * attr_v10)28 XCamReturn rk_aiq_uapi_agamma_v10_GetAttrib(const RkAiqAlgoContext* ctx,
29                                             rk_aiq_gamma_v10_attr_t* attr_v10) {
30     LOG1_AGAMMA("ENTER: %s \n", __func__);
31     AgammaHandle_t* gamma_handle = (AgammaHandle_t*)ctx;
32 
33     attr_v10->mode = gamma_handle->agammaAttrV10.mode;
34     memcpy(&attr_v10->stManual, &gamma_handle->agammaAttrV10.stManual,
35            sizeof(AgammaApiManualV10_t));
36     memcpy(&attr_v10->stAuto, &gamma_handle->agammaAttrV10.stAuto, sizeof(CalibDbV2_gamma_v10_t));
37 
38     LOG1_AGAMMA("EXIT: %s \n", __func__);
39     return XCAM_RETURN_NO_ERROR;
40 }
41 #endif
42 
43 #if RKAIQ_HAVE_GAMMA_V11
rk_aiq_uapi_agamma_v11_SetAttrib(RkAiqAlgoContext * ctx,const rk_aiq_gamma_v11_attr_t * attr_v11,bool need_sync)44 XCamReturn rk_aiq_uapi_agamma_v11_SetAttrib(RkAiqAlgoContext* ctx,
45                                             const rk_aiq_gamma_v11_attr_t* attr_v11,
46                                             bool need_sync) {
47     LOG1_AGAMMA("ENTER: %s \n", __func__);
48     AgammaHandle_t* gamma_handle = (AgammaHandle_t*)ctx;
49     XCamReturn ret               = XCAM_RETURN_NO_ERROR;
50 
51     gamma_handle->agammaAttrV11.mode = attr_v11->mode;
52     if (attr_v11->mode == RK_AIQ_GAMMA_MODE_MANUAL) {
53         memcpy(&gamma_handle->agammaAttrV11.stManual, &attr_v11->stManual,
54                sizeof(AgammaApiManualV11_t));
55         gamma_handle->ifReCalcStManual = true;
56     }
57     if (attr_v11->mode == RK_AIQ_GAMMA_MODE_AUTO) {
58         memcpy(&gamma_handle->agammaAttrV11.stAuto, &attr_v11->stAuto,
59                sizeof(CalibDbV2_gamma_v11_t));
60         gamma_handle->ifReCalcStAuto = true;
61     }
62 
63     LOG1_AGAMMA("EXIT: %s \n", __func__);
64     return ret;
65 }
66 
rk_aiq_uapi_agamma_v11_GetAttrib(const RkAiqAlgoContext * ctx,rk_aiq_gamma_v11_attr_t * attr_v11)67 XCamReturn rk_aiq_uapi_agamma_v11_GetAttrib(const RkAiqAlgoContext* ctx,
68                                             rk_aiq_gamma_v11_attr_t* attr_v11) {
69     LOG1_AGAMMA("ENTER: %s \n", __func__);
70     AgammaHandle_t* gamma_handle = (AgammaHandle_t*)ctx;
71 
72     attr_v11->mode = gamma_handle->agammaAttrV11.mode;
73     memcpy(&attr_v11->stManual, &gamma_handle->agammaAttrV11.stManual,
74            sizeof(AgammaApiManualV11_t));
75     memcpy(&attr_v11->stAuto, &gamma_handle->agammaAttrV11.stAuto, sizeof(CalibDbV2_gamma_v11_t));
76 
77     LOG1_AGAMMA("EXIT: %s \n", __func__);
78     return XCAM_RETURN_NO_ERROR;
79 }
80 #endif
81