1 /******************************************************************************
2 *
3 * Copyright 2019, Fuzhou Rockchip Electronics Co.Ltd . All rights reserved.
4 * No part of this work may be reproduced, modified, distributed, transmitted,
5 * transcribed, or translated into any language or computer format, in any form
6 * or by any means without written permission of:
7 * Fuzhou Rockchip Electronics Co.Ltd .
8 *
9 *
10 *****************************************************************************/
11
12 #include "base/xcam_common.h"
13 #include "rk_aiq_user_api_ae.h"
14 #include "algo_handlers/RkAiqAeHandle.h"
15
16 RKAIQ_BEGIN_DECLARE
17
18 #ifdef RK_SIMULATOR_HW
19 #define CHECK_USER_API_ENABLE
20 #endif
21
22 #if RKAIQ_HAVE_AE_V1
23
rk_aiq_user_api_ae_setExpSwAttr(const rk_aiq_sys_ctx_t * sys_ctx,const Uapi_ExpSwAttr_t expSwAttr)24 XCamReturn rk_aiq_user_api_ae_setExpSwAttr
25 (
26 const rk_aiq_sys_ctx_t* sys_ctx,
27 const Uapi_ExpSwAttr_t expSwAttr
28 ) {
29 XCamReturn ret = XCAM_RETURN_NO_ERROR;
30 CHECK_USER_API_ENABLE2(sys_ctx);
31 CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE);
32 RKAIQ_API_SMART_LOCK(sys_ctx);
33
34 RkAiqAeHandleInt* algo_handle =
35 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
36
37 if (algo_handle) {
38 return algo_handle->setExpSwAttr(expSwAttr);
39 }
40
41 return (ret);
42
43 }
rk_aiq_user_api_ae_getExpSwAttr(const rk_aiq_sys_ctx_t * sys_ctx,Uapi_ExpSwAttr_t * pExpSwAttr)44 XCamReturn rk_aiq_user_api_ae_getExpSwAttr
45 (
46 const rk_aiq_sys_ctx_t* sys_ctx,
47 Uapi_ExpSwAttr_t* pExpSwAttr
48 ) {
49 RKAIQ_API_SMART_LOCK(sys_ctx);
50 XCamReturn ret = XCAM_RETURN_NO_ERROR;
51
52 RkAiqAeHandleInt* algo_handle =
53 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
54
55 if (algo_handle) {
56 return algo_handle->getExpSwAttr(pExpSwAttr);
57 }
58
59 return (ret);
60 }
rk_aiq_user_api_ae_setLinAeRouteAttr(const rk_aiq_sys_ctx_t * sys_ctx,const Uapi_LinAeRouteAttr_t linAeRouteAttr)61 XCamReturn rk_aiq_user_api_ae_setLinAeRouteAttr
62 (
63 const rk_aiq_sys_ctx_t* sys_ctx,
64 const Uapi_LinAeRouteAttr_t linAeRouteAttr
65 ) {
66 XCamReturn ret = XCAM_RETURN_NO_ERROR;
67 CHECK_USER_API_ENABLE2(sys_ctx);
68 CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE);
69 RKAIQ_API_SMART_LOCK(sys_ctx);
70
71 RkAiqAeHandleInt* algo_handle =
72 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
73
74 if (algo_handle) {
75 return algo_handle->setLinAeRouteAttr(linAeRouteAttr);
76 }
77
78 return(ret);
79 }
rk_aiq_user_api_ae_getLinAeRouteAttr(const rk_aiq_sys_ctx_t * sys_ctx,Uapi_LinAeRouteAttr_t * pLinAeRouteAttr)80 XCamReturn rk_aiq_user_api_ae_getLinAeRouteAttr
81 (
82 const rk_aiq_sys_ctx_t* sys_ctx,
83 Uapi_LinAeRouteAttr_t* pLinAeRouteAttr
84 ) {
85 RKAIQ_API_SMART_LOCK(sys_ctx);
86 XCamReturn ret = XCAM_RETURN_NO_ERROR;
87
88 RkAiqAeHandleInt* algo_handle =
89 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
90
91 if (algo_handle) {
92 return algo_handle->getLinAeRouteAttr(pLinAeRouteAttr);
93 }
94
95 return(ret);
96
97 }
rk_aiq_user_api_ae_setHdrAeRouteAttr(const rk_aiq_sys_ctx_t * sys_ctx,const Uapi_HdrAeRouteAttr_t hdrAeRouteAttr)98 XCamReturn rk_aiq_user_api_ae_setHdrAeRouteAttr
99 (
100 const rk_aiq_sys_ctx_t* sys_ctx,
101 const Uapi_HdrAeRouteAttr_t hdrAeRouteAttr
102 ) {
103 XCamReturn ret = XCAM_RETURN_NO_ERROR;
104 CHECK_USER_API_ENABLE2(sys_ctx);
105 CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE);
106 RKAIQ_API_SMART_LOCK(sys_ctx);
107
108 RkAiqAeHandleInt* algo_handle =
109 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
110
111 if (algo_handle) {
112 return algo_handle->setHdrAeRouteAttr(hdrAeRouteAttr);
113 }
114
115 return(ret);
116
117 }
rk_aiq_user_api_ae_getHdrAeRouteAttr(const rk_aiq_sys_ctx_t * sys_ctx,Uapi_HdrAeRouteAttr_t * pHdrAeRouteAttr)118 XCamReturn rk_aiq_user_api_ae_getHdrAeRouteAttr
119 (
120 const rk_aiq_sys_ctx_t* sys_ctx,
121 Uapi_HdrAeRouteAttr_t* pHdrAeRouteAttr
122 ) {
123 RKAIQ_API_SMART_LOCK(sys_ctx);
124 XCamReturn ret = XCAM_RETURN_NO_ERROR;
125
126 RkAiqAeHandleInt* algo_handle =
127 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
128
129 if (algo_handle) {
130 return algo_handle->getHdrAeRouteAttr(pHdrAeRouteAttr);
131 }
132
133 return(ret);
134
135 }
136
rk_aiq_user_api_ae_setLinExpAttr(const rk_aiq_sys_ctx_t * sys_ctx,const Uapi_LinExpAttr_t linExpAttr)137 XCamReturn rk_aiq_user_api_ae_setLinExpAttr
138 (
139 const rk_aiq_sys_ctx_t* sys_ctx,
140 const Uapi_LinExpAttr_t linExpAttr
141 ) {
142 XCamReturn ret = XCAM_RETURN_NO_ERROR;
143 CHECK_USER_API_ENABLE2(sys_ctx);
144 CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE);
145 RKAIQ_API_SMART_LOCK(sys_ctx);
146
147 RkAiqAeHandleInt* algo_handle =
148 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
149
150 if (algo_handle) {
151 return algo_handle->setLinExpAttr(linExpAttr);
152 }
153
154 return(ret);
155
156 }
rk_aiq_user_api_ae_getLinExpAttr(const rk_aiq_sys_ctx_t * sys_ctx,Uapi_LinExpAttr_t * pLinExpAttr)157 XCamReturn rk_aiq_user_api_ae_getLinExpAttr
158 (
159 const rk_aiq_sys_ctx_t* sys_ctx,
160 Uapi_LinExpAttr_t* pLinExpAttr
161 ) {
162 RKAIQ_API_SMART_LOCK(sys_ctx);
163 XCamReturn ret = XCAM_RETURN_NO_ERROR;
164
165 RkAiqAeHandleInt* algo_handle =
166 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
167
168 if (algo_handle) {
169 return algo_handle->getLinExpAttr(pLinExpAttr);
170 }
171
172 return(ret);
173
174 }
rk_aiq_user_api_ae_setHdrExpAttr(const rk_aiq_sys_ctx_t * sys_ctx,const Uapi_HdrExpAttr_t hdrExpAttr)175 XCamReturn rk_aiq_user_api_ae_setHdrExpAttr
176 (
177 const rk_aiq_sys_ctx_t* sys_ctx,
178 const Uapi_HdrExpAttr_t hdrExpAttr
179 ) {
180 XCamReturn ret = XCAM_RETURN_NO_ERROR;
181 CHECK_USER_API_ENABLE2(sys_ctx);
182 CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE);
183 RKAIQ_API_SMART_LOCK(sys_ctx);
184
185 RkAiqAeHandleInt* algo_handle =
186 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
187
188 if (algo_handle) {
189 return algo_handle->setHdrExpAttr(hdrExpAttr);
190 }
191
192 return(ret);
193
194 }
rk_aiq_user_api_ae_getHdrExpAttr(const rk_aiq_sys_ctx_t * sys_ctx,Uapi_HdrExpAttr_t * pHdrExpAttr)195 XCamReturn rk_aiq_user_api_ae_getHdrExpAttr
196 (
197 const rk_aiq_sys_ctx_t* sys_ctx,
198 Uapi_HdrExpAttr_t* pHdrExpAttr
199 ) {
200 RKAIQ_API_SMART_LOCK(sys_ctx);
201 XCamReturn ret = XCAM_RETURN_NO_ERROR;
202
203 RkAiqAeHandleInt* algo_handle =
204 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
205
206 if (algo_handle) {
207 return algo_handle->getHdrExpAttr(pHdrExpAttr);
208 }
209
210 return(ret);
211
212 }
rk_aiq_user_api_ae_queryExpResInfo(const rk_aiq_sys_ctx_t * sys_ctx,Uapi_ExpQueryInfo_t * pExpResInfo)213 XCamReturn rk_aiq_user_api_ae_queryExpResInfo
214 (
215 const rk_aiq_sys_ctx_t* sys_ctx,
216 Uapi_ExpQueryInfo_t* pExpResInfo
217 ) {
218 RKAIQ_API_SMART_LOCK(sys_ctx);
219 XCamReturn ret = XCAM_RETURN_NO_ERROR;
220
221 RkAiqAeHandleInt* algo_handle =
222 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
223
224 if (algo_handle) {
225 return algo_handle->queryExpInfo(pExpResInfo);
226 }
227
228 return(ret);
229
230 }
231
rk_aiq_user_api_ae_setExpWinAttr(const rk_aiq_sys_ctx_t * sys_ctx,const Uapi_ExpWin_t ExpWin)232 XCamReturn rk_aiq_user_api_ae_setExpWinAttr
233 (
234 const rk_aiq_sys_ctx_t* sys_ctx,
235 const Uapi_ExpWin_t ExpWin
236 ) {
237 XCamReturn ret = XCAM_RETURN_NO_ERROR;
238 CHECK_USER_API_ENABLE2(sys_ctx);
239 CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AE);
240 RKAIQ_API_SMART_LOCK(sys_ctx);
241
242 RkAiqAeHandleInt* algo_handle =
243 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
244
245 if (algo_handle) {
246 return algo_handle->setExpWinAttr(ExpWin);
247 }
248
249 return(ret);
250
251 }
rk_aiq_user_api_ae_getExpWinAttr(const rk_aiq_sys_ctx_t * sys_ctx,Uapi_ExpWin_t * pExpWin)252 XCamReturn rk_aiq_user_api_ae_getExpWinAttr
253 (
254 const rk_aiq_sys_ctx_t* sys_ctx,
255 Uapi_ExpWin_t* pExpWin
256 ) {
257 RKAIQ_API_SMART_LOCK(sys_ctx);
258 XCamReturn ret = XCAM_RETURN_NO_ERROR;
259
260 RkAiqAeHandleInt* algo_handle =
261 algoHandle<RkAiqAeHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AE);
262
263 if (algo_handle) {
264 return algo_handle->getExpWinAttr(pExpWin);
265 }
266
267 return(ret);
268
269 }
270
271 #else
272
273 XCamReturn rk_aiq_user_api_ae_setExpSwAttr
274 (
275 const rk_aiq_sys_ctx_t* sys_ctx,
276 const Uapi_ExpSwAttr_t expSwAttr
277 ) {
278 return XCAM_RETURN_ERROR_UNKNOWN;
279 }
280 XCamReturn rk_aiq_user_api_ae_getExpSwAttr
281 (
282 const rk_aiq_sys_ctx_t* sys_ctx,
283 Uapi_ExpSwAttr_t* pExpSwAttr
284 ) {
285 return XCAM_RETURN_ERROR_UNKNOWN;
286 }
287 XCamReturn rk_aiq_user_api_ae_setLinAeRouteAttr
288 (
289 const rk_aiq_sys_ctx_t* sys_ctx,
290 const Uapi_LinAeRouteAttr_t linAeRouteAttr
291 ) {
292 return XCAM_RETURN_ERROR_UNKNOWN;
293 }
294 XCamReturn rk_aiq_user_api_ae_getLinAeRouteAttr
295 (
296 const rk_aiq_sys_ctx_t* sys_ctx,
297 Uapi_LinAeRouteAttr_t* pLinAeRouteAttr
298 ) {
299 return XCAM_RETURN_ERROR_UNKNOWN;
300 }
301 XCamReturn rk_aiq_user_api_ae_setHdrAeRouteAttr
302 (
303 const rk_aiq_sys_ctx_t* sys_ctx,
304 const Uapi_HdrAeRouteAttr_t hdrAeRouteAttr
305 ) {
306 return XCAM_RETURN_ERROR_UNKNOWN;
307 }
308 XCamReturn rk_aiq_user_api_ae_getHdrAeRouteAttr
309 (
310 const rk_aiq_sys_ctx_t* sys_ctx,
311 Uapi_HdrAeRouteAttr_t* pHdrAeRouteAttr
312 ) {
313 return XCAM_RETURN_ERROR_UNKNOWN;
314 }
315
316 XCamReturn rk_aiq_user_api_ae_setLinExpAttr
317 (
318 const rk_aiq_sys_ctx_t* sys_ctx,
319 const Uapi_LinExpAttr_t linExpAttr
320 ) {
321 return XCAM_RETURN_ERROR_UNKNOWN;
322 }
323 XCamReturn rk_aiq_user_api_ae_getLinExpAttr
324 (
325 const rk_aiq_sys_ctx_t* sys_ctx,
326 Uapi_LinExpAttr_t* pLinExpAttr
327 ) {
328 return XCAM_RETURN_ERROR_UNKNOWN;
329 }
330 XCamReturn rk_aiq_user_api_ae_setHdrExpAttr
331 (
332 const rk_aiq_sys_ctx_t* sys_ctx,
333 const Uapi_HdrExpAttr_t hdrExpAttr
334 ) {
335 return XCAM_RETURN_ERROR_UNKNOWN;
336 }
337 XCamReturn rk_aiq_user_api_ae_getHdrExpAttr
338 (
339 const rk_aiq_sys_ctx_t* sys_ctx,
340 Uapi_HdrExpAttr_t* pHdrExpAttr
341 ) {
342 return XCAM_RETURN_ERROR_UNKNOWN;
343 }
344 XCamReturn rk_aiq_user_api_ae_queryExpResInfo
345 (
346 const rk_aiq_sys_ctx_t* sys_ctx,
347 Uapi_ExpQueryInfo_t* pExpResInfo
348 ) {
349 return XCAM_RETURN_ERROR_UNKNOWN;
350 }
351 XCamReturn rk_aiq_user_api_ae_setExpWinAttr
352 (
353 const rk_aiq_sys_ctx_t* sys_ctx,
354 const Uapi_ExpWin_t ExpWin
355 ) {
356 return XCAM_RETURN_ERROR_UNKNOWN;
357 }
358 XCamReturn rk_aiq_user_api_ae_getExpWinAttr
359 (
360 const rk_aiq_sys_ctx_t* sys_ctx,
361 Uapi_ExpWin_t* pExpWin
362 ) {
363 return XCAM_RETURN_ERROR_UNKNOWN;
364 }
365
366 #endif
367
368 RKAIQ_END_DECLARE
369
370