xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/algos/acac/rk_aiq_types_acac_algo_int.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  *  Copyright (c) 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 #ifndef _RK_AIQ_TYPE_ACAC_ALGO_INT_H_
17 #define _RK_AIQ_TYPE_ACAC_ALGO_INT_H_
18 
19 #include <stdint.h>
20 
21 #include "acac/rk_aiq_types_acac_algo.h"
22 #include "common/rk_aiq_comm.h"
23 #include "iq_parser_v2/cac_head.h"
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #define RKCAC_STRENGTH_TABLE_LEN 22
30 #define RKAIQ_CAC_MAX_ISO_CNT    14
31 
32 typedef enum rkaiq_cac_api_op_mode_e {
33     RKAIQ_CAC_API_OPMODE_INVALID = 0,
34     RKAIQ_CAC_API_OPMODE_AUTO    = 1,
35     RKAIQ_CAC_API_OPMODE_MANUAL  = 2,
36 } rkaiq_cac_api_op_mode_t;
37 
38 typedef CalibDbV2_Cac_SettingPara_t rkaiq_cac_v10_persist_params_t;
39 typedef CalibDbV2_Cac_SettingPara_t rkaiq_cac_v11_persist_params_t;
40 typedef CalibV2_Cac_V03_SettingByIso_t rkaiq_cac_v03_param_selected_t;
41 typedef CalibV2_Cac_V10_SettingByIso_t rkaiq_cac_v10_param_selected_t;
42 typedef CalibV2_Cac_V11_SettingByIso_t rkaiq_cac_v11_param_selected_t;
43 
44 typedef struct rkaiq_cac_v03_api_attr_s {
45     rk_aiq_uapi_sync_t sync;
46     bool enable;
47     rkaiq_cac_api_op_mode_t op_mode;
48     uint8_t iso_cnt;
49     rkaiq_cac_v03_param_selected_t auto_params[RKAIQ_CAC_MAX_ISO_CNT];
50     rkaiq_cac_v03_param_selected_t manual_param;
51 } rkaiq_cac_v03_api_attr_t;
52 
53 typedef struct rkaiq_cac_v10_api_attr_s {
54     rk_aiq_uapi_sync_t sync;
55     bool enable;
56     rkaiq_cac_api_op_mode_t op_mode;
57     uint8_t iso_cnt;
58     rkaiq_cac_v10_persist_params_t persist_params;
59     rkaiq_cac_v10_param_selected_t auto_params[RKAIQ_CAC_MAX_ISO_CNT];
60     rkaiq_cac_v10_param_selected_t manual_param;
61 } rkaiq_cac_v10_api_attr_t;
62 
63 typedef struct rkaiq_cac_v11_api_attr_s {
64     rk_aiq_uapi_sync_t sync;
65     bool enable;
66     rkaiq_cac_api_op_mode_t op_mode;
67     uint8_t iso_cnt;
68     rkaiq_cac_v11_persist_params_t persist_params;
69     rkaiq_cac_v11_param_selected_t auto_params[RKAIQ_CAC_MAX_ISO_CNT];
70     rkaiq_cac_v11_param_selected_t manual_param;
71 } rkaiq_cac_v11_api_attr_t;
72 
73 #ifdef __cplusplus
74 }
75 #endif
76 
77 #endif
78