xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/uAPI/rk_aiq_user_api_ae.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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