xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/uAPI2/rk_aiq_user_api2_af.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * Copyright (c) 2019-2022 Rockchip Eletronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 #include "uAPI2/rk_aiq_user_api2_af.h"
18 
19 #include "algo_handlers/RkAiqAfHandle.h"
20 #include "base/xcam_common.h"
21 
22 RKAIQ_BEGIN_DECLARE
23 
24 #ifdef RK_SIMULATOR_HW
25 #define CHECK_USER_API_ENABLE
26 #endif
27 
28 #if RKAIQ_HAVE_AF
29 
30 XCamReturn
rk_aiq_user_api2_af_SetAttrib(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_af_attrib_t * attr)31 rk_aiq_user_api2_af_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_attrib_t *attr)
32 {
33     CHECK_USER_API_ENABLE2(sys_ctx);
34     CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AF);
35     RKAIQ_API_SMART_LOCK(sys_ctx);
36     RkAiqAfHandleInt* algo_handle =
37         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
38 
39     if (algo_handle) {
40         return algo_handle->setAttrib(attr);
41     }
42 
43     return XCAM_RETURN_NO_ERROR;
44 }
45 
46 XCamReturn
rk_aiq_user_api2_af_GetAttrib(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_af_attrib_t * attr)47 rk_aiq_user_api2_af_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_attrib_t *attr)
48 {
49     RKAIQ_API_SMART_LOCK(sys_ctx);
50     RkAiqAfHandleInt* algo_handle =
51         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
52 
53     if (algo_handle) {
54         return algo_handle->getAttrib(attr);
55     }
56 
57     return XCAM_RETURN_NO_ERROR;
58 }
59 
60 #else
61 
62 XCamReturn
63 rk_aiq_user_api2_af_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_attrib_t *attr)
64 {
65     return XCAM_RETURN_ERROR_UNKNOWN;
66 }
67 
68 XCamReturn
69 rk_aiq_user_api2_af_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_attrib_t *attr)
70 {
71     return XCAM_RETURN_ERROR_UNKNOWN;
72 }
73 
74 #endif
75 
76 #if RKAIQ_HAVE_AF_V20 || RKAIQ_HAVE_AF_V30 || RKAIQ_HAVE_AF_V31 || RKAIQ_HAVE_AF_V32_LITE
77 
78 XCamReturn
rk_aiq_user_api2_af_Lock(const rk_aiq_sys_ctx_t * sys_ctx)79 rk_aiq_user_api2_af_Lock(const rk_aiq_sys_ctx_t* sys_ctx)
80 {
81     RKAIQ_API_SMART_LOCK(sys_ctx);
82     RkAiqAfHandleInt* algo_handle =
83         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
84 
85     if (algo_handle) {
86         return algo_handle->lock();
87     }
88 
89     return XCAM_RETURN_NO_ERROR;
90 }
91 
92 XCamReturn
rk_aiq_user_api2_af_Unlock(const rk_aiq_sys_ctx_t * sys_ctx)93 rk_aiq_user_api2_af_Unlock(const rk_aiq_sys_ctx_t* sys_ctx)
94 {
95     RKAIQ_API_SMART_LOCK(sys_ctx);
96     RkAiqAfHandleInt* algo_handle =
97         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
98 
99     if (algo_handle) {
100         return algo_handle->unlock();
101     }
102 
103     return XCAM_RETURN_NO_ERROR;
104 }
105 
106 XCamReturn
rk_aiq_user_api2_af_Oneshot(const rk_aiq_sys_ctx_t * sys_ctx)107 rk_aiq_user_api2_af_Oneshot(const rk_aiq_sys_ctx_t* sys_ctx)
108 {
109     RKAIQ_API_SMART_LOCK(sys_ctx);
110     RkAiqAfHandleInt* algo_handle =
111         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
112 
113     if (algo_handle) {
114         return algo_handle->Oneshot();
115     }
116 
117     return XCAM_RETURN_NO_ERROR;
118 }
119 
120 XCamReturn
rk_aiq_user_api2_af_ManualTriger(const rk_aiq_sys_ctx_t * sys_ctx)121 rk_aiq_user_api2_af_ManualTriger(const rk_aiq_sys_ctx_t* sys_ctx)
122 {
123     RKAIQ_API_SMART_LOCK(sys_ctx);
124     RkAiqAfHandleInt* algo_handle =
125         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
126 
127     if (algo_handle) {
128         return algo_handle->ManualTriger();
129     }
130 
131     return XCAM_RETURN_NO_ERROR;
132 }
133 
134 XCamReturn
rk_aiq_user_api2_af_Tracking(const rk_aiq_sys_ctx_t * sys_ctx)135 rk_aiq_user_api2_af_Tracking(const rk_aiq_sys_ctx_t* sys_ctx)
136 {
137     RKAIQ_API_SMART_LOCK(sys_ctx);
138     RkAiqAfHandleInt* algo_handle =
139         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
140 
141     if (algo_handle) {
142         return algo_handle->Tracking();
143     }
144 
145     return XCAM_RETURN_NO_ERROR;
146 }
147 
148 XCamReturn
rk_aiq_user_api2_af_SetZoomIndex(const rk_aiq_sys_ctx_t * sys_ctx,int index)149 rk_aiq_user_api2_af_SetZoomIndex(const rk_aiq_sys_ctx_t* sys_ctx, int index)
150 {
151     RKAIQ_API_SMART_LOCK(sys_ctx);
152     CamCalibDbV2Context_t calibdbv2_ctx =
153         RkAiqCalibDbV2::toDefaultCalibDb(sys_ctx->_calibDbProj);
154     CalibDbV2_Af_ZoomFocusTbl_t *zoomfocus_tbl;
155     int focal_length_len;
156     RkAiqAfHandleInt* algo_handle =
157         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
158 
159     if (CHECK_ISP_HW_V32()) {
160         CalibDbV2_AFV31_t *af_v31 =
161             (CalibDbV2_AFV31_t*)(CALIBDBV2_GET_MODULE_PTR((&calibdbv2_ctx), af_v31));
162         zoomfocus_tbl = (CalibDbV2_Af_ZoomFocusTbl_t*)(&af_v31->TuningPara.zoomfocus_tbl);
163     } else if (CHECK_ISP_HW_V30()) {
164         CalibDbV2_AFV30_t *af_v30 =
165             (CalibDbV2_AFV30_t*)(CALIBDBV2_GET_MODULE_PTR((&calibdbv2_ctx), af_v30));
166         zoomfocus_tbl = (CalibDbV2_Af_ZoomFocusTbl_t*)(&af_v30->TuningPara.zoomfocus_tbl);
167     } else if (CHECK_ISP_HW_V20() || CHECK_ISP_HW_V21()) {
168         CalibDbV2_AF_t *af =
169             (CalibDbV2_AF_t*)CALIBDBV2_GET_MODULE_PTR((&calibdbv2_ctx), af);
170         zoomfocus_tbl = (CalibDbV2_Af_ZoomFocusTbl_t*)(&af->TuningPara.zoomfocus_tbl);
171     } else {
172         CalibDbV2_AFV32_t *af_v32 =
173             (CalibDbV2_AFV32_t*)(CALIBDBV2_GET_MODULE_PTR((&calibdbv2_ctx), af_v32));
174         zoomfocus_tbl = (CalibDbV2_Af_ZoomFocusTbl_t*)(&af_v32->TuningPara.zoomfocus_tbl);
175     }
176     focal_length_len = zoomfocus_tbl->focal_length_len;
177 
178     if (index < 0)
179         index = 0;
180     else if (index >= focal_length_len)
181         index = focal_length_len - 1;
182 
183     if (algo_handle) {
184         return algo_handle->setZoomIndex(index);
185     }
186 
187     return XCAM_RETURN_NO_ERROR;
188 }
189 
190 XCamReturn
rk_aiq_user_api2_af_EndZoomChg(const rk_aiq_sys_ctx_t * sys_ctx)191 rk_aiq_user_api2_af_EndZoomChg(const rk_aiq_sys_ctx_t* sys_ctx)
192 {
193     RKAIQ_API_SMART_LOCK(sys_ctx);
194     RkAiqAfHandleInt* algo_handle =
195         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
196 
197     if (algo_handle) {
198         return algo_handle->endZoomChg();
199     }
200 
201     return XCAM_RETURN_NO_ERROR;
202 }
203 
204 XCamReturn
rk_aiq_user_api2_af_GetZoomIndex(const rk_aiq_sys_ctx_t * sys_ctx,int * index)205 rk_aiq_user_api2_af_GetZoomIndex(const rk_aiq_sys_ctx_t* sys_ctx, int *index)
206 {
207     RKAIQ_API_SMART_LOCK(sys_ctx);
208     RkAiqAfHandleInt* algo_handle =
209         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
210 
211     if (algo_handle) {
212         return algo_handle->getZoomIndex(index);
213     }
214 
215     return XCAM_RETURN_NO_ERROR;
216 }
217 
218 XCamReturn
rk_aiq_user_api2_af_StartZoomCalib(const rk_aiq_sys_ctx_t * sys_ctx)219 rk_aiq_user_api2_af_StartZoomCalib(const rk_aiq_sys_ctx_t* sys_ctx)
220 {
221     RKAIQ_API_SMART_LOCK(sys_ctx);
222     RkAiqAfHandleInt* algo_handle =
223         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
224 
225     if (algo_handle) {
226         return algo_handle->startZoomCalib();
227     }
228 
229     return XCAM_RETURN_NO_ERROR;
230 }
231 
232 XCamReturn
rk_aiq_user_api2_af_resetZoom(const rk_aiq_sys_ctx_t * sys_ctx)233 rk_aiq_user_api2_af_resetZoom(const rk_aiq_sys_ctx_t* sys_ctx)
234 {
235     RKAIQ_API_SMART_LOCK(sys_ctx);
236     RkAiqAfHandleInt* algo_handle =
237         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
238 
239     if (algo_handle) {
240         return algo_handle->resetZoom();
241     }
242 
243     return XCAM_RETURN_NO_ERROR;
244 }
245 
246 XCamReturn
rk_aiq_user_api2_af_SetVcmCfg(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_lens_vcmcfg * cfg)247 rk_aiq_user_api2_af_SetVcmCfg(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_lens_vcmcfg* cfg)
248 {
249     RKAIQ_API_SMART_LOCK(sys_ctx);
250     XCamReturn ret = XCAM_RETURN_NO_ERROR;
251     ret = sys_ctx->_camHw->setLensVcmCfg(*cfg);
252 
253     return ret;
254 }
255 
256 XCamReturn
rk_aiq_user_api2_af_GetVcmCfg(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_lens_vcmcfg * cfg)257 rk_aiq_user_api2_af_GetVcmCfg(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_lens_vcmcfg* cfg)
258 {
259     RKAIQ_API_SMART_LOCK(sys_ctx);
260     XCamReturn ret = XCAM_RETURN_NO_ERROR;
261     ret = sys_ctx->_camHw->getLensVcmCfg(*cfg);
262 
263     return ret;
264 }
265 
266 XCamReturn
rk_aiq_user_api2_af_GetSearchPath(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_af_sec_path_t * path)267 rk_aiq_user_api2_af_GetSearchPath(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_sec_path_t* path)
268 {
269     RKAIQ_API_SMART_LOCK(sys_ctx);
270     RkAiqAfHandleInt* algo_handle =
271         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
272 
273     if (algo_handle) {
274         return algo_handle->GetSearchPath(path);
275     }
276 
277     return XCAM_RETURN_NO_ERROR;
278 }
279 
280 XCamReturn
rk_aiq_user_api2_af_GetSearchResult(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_af_result_t * result)281 rk_aiq_user_api2_af_GetSearchResult(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_result_t* result)
282 {
283     RkAiqAfHandleInt* algo_handle =
284         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
285 
286     if (algo_handle) {
287         return algo_handle->GetSearchResult(result);
288     }
289 
290     return XCAM_RETURN_NO_ERROR;
291 }
292 
293 XCamReturn
rk_aiq_user_api2_af_GetZoomRange(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_af_zoomrange * range)294 rk_aiq_user_api2_af_GetZoomRange(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_zoomrange* range)
295 {
296     RKAIQ_API_SMART_LOCK(sys_ctx);
297     XCamReturn ret = XCAM_RETURN_NO_ERROR;
298     CamCalibDbV2Context_t calibdbv2_ctx =
299         RkAiqCalibDbV2::toDefaultCalibDb(sys_ctx->_calibDbProj);
300     CalibDbV2_Af_ZoomFocusTbl_t *zoomfocus_tbl;
301     int focal_length_len;
302 
303     if (CHECK_ISP_HW_V32()) {
304         CalibDbV2_AFV31_t *af_v31 =
305             (CalibDbV2_AFV31_t*)(CALIBDBV2_GET_MODULE_PTR((&calibdbv2_ctx), af_v31));
306         zoomfocus_tbl = (CalibDbV2_Af_ZoomFocusTbl_t*)(&af_v31->TuningPara.zoomfocus_tbl);
307     } else if (CHECK_ISP_HW_V30()) {
308         CalibDbV2_AFV30_t *af_v30 =
309             (CalibDbV2_AFV30_t*)(CALIBDBV2_GET_MODULE_PTR((&calibdbv2_ctx), af_v30));
310         zoomfocus_tbl = (CalibDbV2_Af_ZoomFocusTbl_t*)(&af_v30->TuningPara.zoomfocus_tbl);
311     } else if (CHECK_ISP_HW_V20() || CHECK_ISP_HW_V21()) {
312         CalibDbV2_AF_t *af =
313             (CalibDbV2_AF_t*)CALIBDBV2_GET_MODULE_PTR((&calibdbv2_ctx), af);
314         zoomfocus_tbl = (CalibDbV2_Af_ZoomFocusTbl_t*)(&af->TuningPara.zoomfocus_tbl);
315     } else {
316         CalibDbV2_AFV32_t *af_v32 =
317             (CalibDbV2_AFV32_t*)(CALIBDBV2_GET_MODULE_PTR((&calibdbv2_ctx), af_v32));
318         zoomfocus_tbl = (CalibDbV2_Af_ZoomFocusTbl_t*)(&af_v32->TuningPara.zoomfocus_tbl);
319     }
320     focal_length_len = zoomfocus_tbl->focal_length_len;
321 
322     if (focal_length_len > 1) {
323         range->min_fl = zoomfocus_tbl->focal_length[0];
324         range->max_fl = zoomfocus_tbl->focal_length[focal_length_len - 1];
325         range->min_pos = 0;
326         range->max_pos = focal_length_len - 1;
327     } else {
328         ret = XCAM_RETURN_ERROR_FAILED;
329     }
330 
331     return ret;
332 }
333 
334 XCamReturn
rk_aiq_user_api2_af_GetFocusRange(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_af_focusrange * range)335 rk_aiq_user_api2_af_GetFocusRange(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_focusrange* range)
336 {
337     RKAIQ_API_SMART_LOCK(sys_ctx);
338     RkAiqAfHandleInt* algo_handle =
339         algoHandle<RkAiqAfHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AF);
340 
341     if (algo_handle) {
342         return algo_handle->GetFocusRange(range);
343     }
344 
345     return XCAM_RETURN_NO_ERROR;
346 }
347 
348 XCamReturn
rk_aiq_user_api2_af_FocusCorrection(const rk_aiq_sys_ctx_t * sys_ctx)349 rk_aiq_user_api2_af_FocusCorrection(const rk_aiq_sys_ctx_t* sys_ctx)
350 {
351     RKAIQ_API_SMART_LOCK(sys_ctx);
352     XCamReturn ret = XCAM_RETURN_NO_ERROR;
353     ret = sys_ctx->_camHw->FocusCorrection();
354 
355     return ret;
356 }
357 
358 XCamReturn
rk_aiq_user_api2_af_ZoomCorrection(const rk_aiq_sys_ctx_t * sys_ctx)359 rk_aiq_user_api2_af_ZoomCorrection(const rk_aiq_sys_ctx_t* sys_ctx)
360 {
361     RKAIQ_API_SMART_LOCK(sys_ctx);
362     XCamReturn ret = XCAM_RETURN_NO_ERROR;
363     ret = sys_ctx->_camHw->ZoomCorrection();
364 
365     return ret;
366 }
367 
368 XCamReturn
rk_aiq_user_api2_af_setAngleZ(const rk_aiq_sys_ctx_t * sys_ctx,float angleZ)369 rk_aiq_user_api2_af_setAngleZ(const rk_aiq_sys_ctx_t* sys_ctx, float angleZ)
370 {
371     RKAIQ_API_SMART_LOCK(sys_ctx);
372     XCamReturn ret = XCAM_RETURN_NO_ERROR;
373     ret = sys_ctx->_camHw->setAngleZ(angleZ);
374 
375     return ret;
376 }
377 
378 #else
379 
380 XCamReturn
rk_aiq_user_api2_af_Lock(const rk_aiq_sys_ctx_t * sys_ctx)381 rk_aiq_user_api2_af_Lock(const rk_aiq_sys_ctx_t* sys_ctx)
382 {
383     return XCAM_RETURN_ERROR_UNKNOWN;
384 }
385 
386 XCamReturn
rk_aiq_user_api2_af_Unlock(const rk_aiq_sys_ctx_t * sys_ctx)387 rk_aiq_user_api2_af_Unlock(const rk_aiq_sys_ctx_t* sys_ctx)
388 {
389     return XCAM_RETURN_ERROR_UNKNOWN;
390 }
391 
392 XCamReturn
rk_aiq_user_api2_af_Oneshot(const rk_aiq_sys_ctx_t * sys_ctx)393 rk_aiq_user_api2_af_Oneshot(const rk_aiq_sys_ctx_t* sys_ctx)
394 {
395     return XCAM_RETURN_ERROR_UNKNOWN;
396 }
397 
398 XCamReturn
rk_aiq_user_api2_af_ManualTriger(const rk_aiq_sys_ctx_t * sys_ctx)399 rk_aiq_user_api2_af_ManualTriger(const rk_aiq_sys_ctx_t* sys_ctx)
400 {
401     return XCAM_RETURN_ERROR_UNKNOWN;
402 }
403 
404 XCamReturn
rk_aiq_user_api2_af_Tracking(const rk_aiq_sys_ctx_t * sys_ctx)405 rk_aiq_user_api2_af_Tracking(const rk_aiq_sys_ctx_t* sys_ctx)
406 {
407     return XCAM_RETURN_ERROR_UNKNOWN;
408 }
409 
410 XCamReturn
rk_aiq_user_api2_af_SetZoomIndex(const rk_aiq_sys_ctx_t * sys_ctx,int index)411 rk_aiq_user_api2_af_SetZoomIndex(const rk_aiq_sys_ctx_t* sys_ctx, int index)
412 {
413     return XCAM_RETURN_ERROR_UNKNOWN;
414 }
415 
416 XCamReturn
rk_aiq_user_api2_af_EndZoomChg(const rk_aiq_sys_ctx_t * sys_ctx)417 rk_aiq_user_api2_af_EndZoomChg(const rk_aiq_sys_ctx_t* sys_ctx)
418 {
419     return XCAM_RETURN_ERROR_UNKNOWN;
420 }
421 
422 XCamReturn
rk_aiq_user_api2_af_GetZoomIndex(const rk_aiq_sys_ctx_t * sys_ctx,int * index)423 rk_aiq_user_api2_af_GetZoomIndex(const rk_aiq_sys_ctx_t* sys_ctx, int *index)
424 {
425     return XCAM_RETURN_ERROR_UNKNOWN;
426 }
427 
428 XCamReturn
rk_aiq_user_api2_af_StartZoomCalib(const rk_aiq_sys_ctx_t * sys_ctx)429 rk_aiq_user_api2_af_StartZoomCalib(const rk_aiq_sys_ctx_t* sys_ctx)
430 {
431     return XCAM_RETURN_ERROR_UNKNOWN;
432 }
433 
434 XCamReturn
rk_aiq_user_api2_af_resetZoom(const rk_aiq_sys_ctx_t * sys_ctx)435 rk_aiq_user_api2_af_resetZoom(const rk_aiq_sys_ctx_t* sys_ctx)
436 {
437     return XCAM_RETURN_ERROR_UNKNOWN;
438 }
439 
440 XCamReturn
rk_aiq_user_api2_af_SetVcmCfg(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_lens_vcmcfg * cfg)441 rk_aiq_user_api2_af_SetVcmCfg(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_lens_vcmcfg* cfg)
442 {
443     return XCAM_RETURN_ERROR_UNKNOWN;
444 }
445 
446 XCamReturn
rk_aiq_user_api2_af_GetVcmCfg(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_lens_vcmcfg * cfg)447 rk_aiq_user_api2_af_GetVcmCfg(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_lens_vcmcfg* cfg)
448 {
449     return XCAM_RETURN_ERROR_UNKNOWN;
450 }
451 
452 XCamReturn
rk_aiq_user_api2_af_GetSearchPath(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_af_sec_path_t * path)453 rk_aiq_user_api2_af_GetSearchPath(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_sec_path_t* path)
454 {
455     return XCAM_RETURN_ERROR_UNKNOWN;
456 }
457 
458 XCamReturn
rk_aiq_user_api2_af_GetSearchResult(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_af_result_t * result)459 rk_aiq_user_api2_af_GetSearchResult(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_result_t* result)
460 {
461     return XCAM_RETURN_ERROR_UNKNOWN;
462 }
463 
464 XCamReturn
rk_aiq_user_api2_af_GetZoomRange(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_af_zoomrange * range)465 rk_aiq_user_api2_af_GetZoomRange(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_zoomrange* range)
466 {
467     return XCAM_RETURN_ERROR_UNKNOWN;
468 }
469 
470 XCamReturn
rk_aiq_user_api2_af_GetFocusRange(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_af_focusrange * range)471 rk_aiq_user_api2_af_GetFocusRange(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_focusrange* range)
472 {
473     return XCAM_RETURN_ERROR_UNKNOWN;
474 }
475 
476 XCamReturn
rk_aiq_user_api2_af_FocusCorrection(const rk_aiq_sys_ctx_t * sys_ctx)477 rk_aiq_user_api2_af_FocusCorrection(const rk_aiq_sys_ctx_t* sys_ctx)
478 {
479     return XCAM_RETURN_ERROR_UNKNOWN;
480 }
481 
482 XCamReturn
rk_aiq_user_api2_af_ZoomCorrection(const rk_aiq_sys_ctx_t * sys_ctx)483 rk_aiq_user_api2_af_ZoomCorrection(const rk_aiq_sys_ctx_t* sys_ctx)
484 {
485     return XCAM_RETURN_ERROR_UNKNOWN;
486 }
487 
488 XCamReturn
rk_aiq_user_api2_af_setAngleZ(const rk_aiq_sys_ctx_t * sys_ctx,float angleZ)489 rk_aiq_user_api2_af_setAngleZ(const rk_aiq_sys_ctx_t* sys_ctx, float angleZ)
490 {
491     return XCAM_RETURN_ERROR_UNKNOWN;
492 }
493 
494 #endif
495 
496 RKAIQ_END_DECLARE
497