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