xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/common/rk_aiq.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  *  Copyright (c) 2019 Rockchip Corporation
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 
18 #ifndef _RK_AIQ_H_
19 #define _RK_AIQ_H_
20 
21 #include "base/xcam_common.h"
22 #include "rk_aiq_types.h"
23 #ifdef ANDROID_OS
24 #include <functional>
25 #endif
26 
27 XCAM_BEGIN_DECLARE
28 
29 //typedef struct rk_aiq_static_metas_s {
30 //} rk_aiq_static_metas_t;
31 
32 typedef enum rk_aiq_status_e {
33     RK_AIQ_STATUS_VICAP_READY = 1,
34     RK_AIQ_STATUS_VICAP_RESET,
35     RK_AIQ_STATUS_VICAP_WITH_MULTI_CAM_RESET,
36 } rk_aiq_status_t;
37 
38 typedef struct rk_aiq_metas_s {
39     uint32_t frame_id;
40 } rk_aiq_metas_t;
41 
42 typedef struct rk_aiq_multi_cam_s {
43     int multi_cam_id[8];
44     int cam_count;
45 } rk_aiq_multi_cam_t;
46 
47 typedef struct rk_aiq_hwevt_s {
48     int cam_id;
49     int aiq_status;
50     void* ctx;
51     rk_aiq_multi_cam_t multi_cam;
52 } rk_aiq_hwevt_t;
53 
54 typedef enum rk_aiq_err_code {
55     UNKNOWN,
56 } rk_aiq_err_code_e;
57 
58 typedef struct rk_aiq_err_msg_s {
59     int err_code;
60 } rk_aiq_err_msg_t;
61 
62 typedef struct rk_aiq_ver_info_s{
63     char aiq_ver[16];
64     char iq_parser_ver[16];
65     uint32_t iq_parser_magic_code;
66     char awb_algo_ver[16];
67     char ae_algo_ver[16];
68     char af_algo_ver[16];
69     char ahdr_algo_ver[16];
70 } rk_aiq_ver_info_t;
71 
72 typedef XCamReturn (*rk_aiq_error_cb)(rk_aiq_err_msg_t* err_msg);
73 #ifdef ANDROID_OS
74 typedef std::function<XCamReturn(rk_aiq_metas_t* metas)> rk_aiq_metas_cb;
75 #else
76 typedef XCamReturn (*rk_aiq_metas_cb)(rk_aiq_metas_t* metas);
77 #endif
78 typedef XCamReturn (*rk_aiq_hwevt_cb)(rk_aiq_hwevt_t* hwevt);
79 
80 typedef enum rk_aiq_cam_type_e {
81     RK_AIQ_CAM_TYPE_SINGLE,
82     RK_AIQ_CAM_TYPE_GROUP,
83 } rk_aiq_cam_type_t;
84 
85 typedef struct rk_aiq_iq_buffer_info_s {
86     void *addr;
87     size_t len;
88 } rk_aiq_iq_buffer_info_t;
89 
90 typedef enum rk_aiq_prd_type_e {
91     RK_AIQ_PRD_TYPE_NORMAL,
92     RK_AIQ_PRD_TYPE_TB_BATIPC,
93     RK_AIQ_PRD_TYPE_TB_DOORLOCK,
94 } rk_aiq_prd_type_t;
95 
96 typedef struct rk_aiq_tb_info_s {
97     uint16_t magic;
98     bool is_pre_aiq;
99     uint8_t prd_type;
100 } rk_aiq_tb_info_t;
101 
102 XCAM_END_DECLARE
103 
104 #endif
105