1 #include "rk_aiq_uapi_adrc_int.h"
2 #include "adrc/rk_aiq_types_adrc_algo_prvt.h"
3 #if RKAIQ_HAVE_DRC_V10
4 #include "adrc/rk_aiq_adrc_algo_v10.h"
5 #endif
6 #if RKAIQ_HAVE_DRC_V11
7 #include "adrc/rk_aiq_adrc_algo_v11.h"
8 #endif
9 #if RKAIQ_HAVE_DRC_V12 || RKAIQ_HAVE_DRC_V12_LITE
10 #include "adrc/rk_aiq_adrc_algo_v12.h"
11 #endif
12
13 #if RKAIQ_HAVE_DRC_V10
rk_aiq_uapi_adrc_v10_SetAttrib(RkAiqAlgoContext * ctx,const drcAttrV10_t * attr,bool need_sync)14 XCamReturn rk_aiq_uapi_adrc_v10_SetAttrib(RkAiqAlgoContext* ctx, const drcAttrV10_t* attr,
15 bool need_sync) {
16 LOG1_ATMO("ENTER: %s \n", __func__);
17 AdrcContext_t* pAdrcCtx = (AdrcContext_t*)(ctx);
18 XCamReturn ret = XCAM_RETURN_NO_ERROR;
19
20 pAdrcCtx->drcAttrV10.opMode = attr->opMode;
21 if (attr->opMode == DRC_OPMODE_AUTO) {
22 memcpy(&pAdrcCtx->drcAttrV10.stAuto, &attr->stAuto, sizeof(CalibDbV2_drc_V10_t));
23 pAdrcCtx->ifReCalcStAuto = true;
24 }
25 if (attr->opMode == DRC_OPMODE_MANUAL) {
26 memcpy(&pAdrcCtx->drcAttrV10.stManual, &attr->stManual, sizeof(mdrcAttr_V10_t));
27 pAdrcCtx->ifReCalcStManual = true;
28 }
29
30 LOG1_ATMO("EXIT: %s \n", __func__);
31 return ret;
32 }
33
rk_aiq_uapi_adrc_v10_GetAttrib(RkAiqAlgoContext * ctx,drcAttrV10_t * attr)34 XCamReturn rk_aiq_uapi_adrc_v10_GetAttrib(RkAiqAlgoContext* ctx, drcAttrV10_t* attr) {
35 LOG1_ATMO("ENTER: %s \n", __func__);
36 XCamReturn ret = XCAM_RETURN_NO_ERROR;
37
38 AdrcContext_t* pAdrcCtx = (AdrcContext_t*)ctx;
39
40 attr->opMode = pAdrcCtx->drcAttrV10.opMode;
41 memcpy(&attr->stAuto, &pAdrcCtx->drcAttrV10.stAuto, sizeof(CalibDbV2_drc_V10_t));
42 memcpy(&attr->stManual, &pAdrcCtx->drcAttrV10.stManual, sizeof(mdrcAttr_V10_t));
43 // drc info
44 AdrcV10Params2Api(pAdrcCtx, &attr->Info);
45
46 LOG1_ATMO("EXIT: %s \n", __func__);
47 return XCAM_RETURN_NO_ERROR;
48 }
49 #endif
50 #if RKAIQ_HAVE_DRC_V11
rk_aiq_uapi_adrc_v11_SetAttrib(RkAiqAlgoContext * ctx,const drcAttrV11_t * attr,bool need_sync)51 XCamReturn rk_aiq_uapi_adrc_v11_SetAttrib(RkAiqAlgoContext* ctx, const drcAttrV11_t* attr,
52 bool need_sync) {
53 LOG1_ATMO("ENTER: %s \n", __func__);
54 AdrcContext_t* pAdrcCtx = (AdrcContext_t*)(ctx);
55 XCamReturn ret = XCAM_RETURN_NO_ERROR;
56
57 pAdrcCtx->drcAttrV11.opMode = attr->opMode;
58 if (attr->opMode == DRC_OPMODE_AUTO) {
59 memcpy(&pAdrcCtx->drcAttrV11.stAuto, &attr->stAuto, sizeof(CalibDbV2_drc_V11_t));
60 pAdrcCtx->ifReCalcStAuto = true;
61 }
62 if (attr->opMode == DRC_OPMODE_MANUAL) {
63 memcpy(&pAdrcCtx->drcAttrV11.stManual, &attr->stManual, sizeof(mdrcAttr_V11_t));
64 pAdrcCtx->ifReCalcStManual = true;
65 }
66
67 LOG1_ATMO("EXIT: %s \n", __func__);
68 return ret;
69 }
70
rk_aiq_uapi_adrc_v11_GetAttrib(RkAiqAlgoContext * ctx,drcAttrV11_t * attr)71 XCamReturn rk_aiq_uapi_adrc_v11_GetAttrib(RkAiqAlgoContext* ctx, drcAttrV11_t* attr) {
72 LOG1_ATMO("ENTER: %s \n", __func__);
73 XCamReturn ret = XCAM_RETURN_NO_ERROR;
74
75 AdrcContext_t* pAdrcCtx = (AdrcContext_t*)ctx;
76
77 attr->opMode = pAdrcCtx->drcAttrV11.opMode;
78 memcpy(&attr->stAuto, &pAdrcCtx->drcAttrV11.stAuto, sizeof(CalibDbV2_drc_V11_t));
79 memcpy(&attr->stManual, &pAdrcCtx->drcAttrV11.stManual, sizeof(mdrcAttr_V11_t));
80 // drc info
81 AdrcV11Params2Api(pAdrcCtx, &attr->Info);
82
83 LOG1_ATMO("EXIT: %s \n", __func__);
84 return XCAM_RETURN_NO_ERROR;
85 }
86 #endif
87 #if RKAIQ_HAVE_DRC_V12
rk_aiq_uapi_adrc_v12_SetAttrib(RkAiqAlgoContext * ctx,const drcAttrV12_t * attr,bool need_sync)88 XCamReturn rk_aiq_uapi_adrc_v12_SetAttrib(RkAiqAlgoContext* ctx, const drcAttrV12_t* attr,
89 bool need_sync) {
90 LOG1_ATMO("ENTER: %s \n", __func__);
91 AdrcContext_t* pAdrcCtx = (AdrcContext_t*)(ctx);
92 XCamReturn ret = XCAM_RETURN_NO_ERROR;
93
94 pAdrcCtx->drcAttrV12.opMode = attr->opMode;
95 if (attr->opMode == DRC_OPMODE_AUTO) {
96 memcpy(&pAdrcCtx->drcAttrV12.stAuto, &attr->stAuto, sizeof(CalibDbV2_drc_V12_t));
97 AdrcV12ClipStAutoParams(pAdrcCtx);
98 pAdrcCtx->ifReCalcStAuto = true;
99 }
100 if (attr->opMode == DRC_OPMODE_MANUAL) {
101 memcpy(&pAdrcCtx->drcAttrV12.stManual, &attr->stManual, sizeof(mdrcAttr_V12_t));
102 pAdrcCtx->ifReCalcStManual = true;
103 }
104
105 LOG1_ATMO("EXIT: %s \n", __func__);
106 return ret;
107 }
108
rk_aiq_uapi_adrc_v12_GetAttrib(RkAiqAlgoContext * ctx,drcAttrV12_t * attr)109 XCamReturn rk_aiq_uapi_adrc_v12_GetAttrib(RkAiqAlgoContext* ctx, drcAttrV12_t* attr) {
110 LOG1_ATMO("ENTER: %s \n", __func__);
111 XCamReturn ret = XCAM_RETURN_NO_ERROR;
112
113 AdrcContext_t* pAdrcCtx = (AdrcContext_t*)ctx;
114
115 attr->opMode = pAdrcCtx->drcAttrV12.opMode;
116 memcpy(&attr->stAuto, &pAdrcCtx->drcAttrV12.stAuto, sizeof(CalibDbV2_drc_V12_t));
117 memcpy(&attr->stManual, &pAdrcCtx->drcAttrV12.stManual, sizeof(mdrcAttr_V12_t));
118 // drc info
119 AdrcV12Params2Api(pAdrcCtx, &attr->Info);
120
121 LOG1_ATMO("EXIT: %s \n", __func__);
122 return XCAM_RETURN_NO_ERROR;
123 }
124 #endif
125 #if RKAIQ_HAVE_DRC_V12_LITE
rk_aiq_uapi_adrc_v12_lite_SetAttrib(RkAiqAlgoContext * ctx,const drcAttrV12Lite_t * attr,bool need_sync)126 XCamReturn rk_aiq_uapi_adrc_v12_lite_SetAttrib(RkAiqAlgoContext* ctx, const drcAttrV12Lite_t* attr,
127 bool need_sync) {
128 LOG1_ATMO("ENTER: %s \n", __func__);
129 AdrcContext_t* pAdrcCtx = (AdrcContext_t*)(ctx);
130 XCamReturn ret = XCAM_RETURN_NO_ERROR;
131
132 pAdrcCtx->drcAttrV12.opMode = attr->opMode;
133 if (attr->opMode == DRC_OPMODE_AUTO) {
134 memcpy(&pAdrcCtx->drcAttrV12.stAuto, &attr->stAuto, sizeof(CalibDbV2_drc_v12_lite_t));
135 AdrcV12ClipStAutoParams(pAdrcCtx);
136 pAdrcCtx->ifReCalcStAuto = true;
137 }
138 if (attr->opMode == DRC_OPMODE_MANUAL) {
139 memcpy(&pAdrcCtx->drcAttrV12.stManual, &attr->stManual, sizeof(mdrcAttr_v12_lite_t));
140 pAdrcCtx->ifReCalcStManual = true;
141 }
142
143 LOG1_ATMO("EXIT: %s \n", __func__);
144 return ret;
145 }
146
rk_aiq_uapi_adrc_v12_lite_GetAttrib(RkAiqAlgoContext * ctx,drcAttrV12Lite_t * attr)147 XCamReturn rk_aiq_uapi_adrc_v12_lite_GetAttrib(RkAiqAlgoContext* ctx, drcAttrV12Lite_t* attr) {
148 LOG1_ATMO("ENTER: %s \n", __func__);
149 XCamReturn ret = XCAM_RETURN_NO_ERROR;
150
151 AdrcContext_t* pAdrcCtx = (AdrcContext_t*)ctx;
152
153 attr->opMode = pAdrcCtx->drcAttrV12.opMode;
154 memcpy(&attr->stAuto, &pAdrcCtx->drcAttrV12.stAuto, sizeof(CalibDbV2_drc_v12_lite_t));
155 memcpy(&attr->stManual, &pAdrcCtx->drcAttrV12.stManual, sizeof(mdrcAttr_v12_lite_t));
156 // drc info
157 AdrcV12LiteParams2Api(pAdrcCtx, &attr->Info);
158
159 LOG1_ATMO("EXIT: %s \n", __func__);
160 return XCAM_RETURN_NO_ERROR;
161 }
162 #endif
163