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