1 /*
2  * rk_aiq_uapi_camgroup_a3dlut_int.h
3  *
4  *  Copyright (c) 2021 Rockchip Corporation
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19 #ifndef _RK_AIQ_UAPIV2_CAMGROUP_AWB_INT_H_
20 #define _RK_AIQ_UAPIV2_CAMGROUP_AWB_INT_H_
21 
22 #include "base/xcam_common.h"
23 #include "rk_aiq_algo_des.h"
24 #include "awb/rk_aiq_types_awb_algo_int.h"
25 
26 // need_sync means the implementation should consider
27 // the thread synchronization
28 // if called by RkAiqAwbHandleInt, the sync has been done
29 // in framework. And if called by user app directly,
30 // sync should be done in inner. now we just need implement
31 // the case of need_sync == false; need_sync is for future usage.
32 
33 
34 XCamReturn
35 rk_aiq_uapiV2_camgroup_awbV21_SetAttrib(RkAiqAlgoContext *ctx,
36                           const rk_aiq_uapiV2_wbV21_attrib_t &attr,
37                           bool need_sync);
38 XCamReturn
39 rk_aiq_uapiV2_camgroup_awbV21_GetAttrib(RkAiqAlgoContext *ctx,
40                           rk_aiq_uapiV2_wbV21_attrib_t *attr);
41 
42 XCamReturn
43 rk_aiq_uapiV2_camgroup_awb_SetMwbMode(RkAiqAlgoContext *ctx,
44                           const rk_aiq_wb_op_mode_t &mode,
45                           bool need_sync);
46 
47 XCamReturn
48 rk_aiq_uapiV2_camgroup_awb_GetMwbMode(RkAiqAlgoContext *ctx,
49                           rk_aiq_wb_op_mode_t *mode);
50 
51 XCamReturn
52 rk_aiq_uapiV2_camgroup_awb_SetMwbAttrib(RkAiqAlgoContext *ctx,
53                           const rk_aiq_wb_mwb_attrib_t &attr,
54                           bool need_sync);
55 
56 XCamReturn
57 rk_aiq_uapiV2_camgroup_awb_GetMwbAttrib(RkAiqAlgoContext *ctx,
58                           rk_aiq_wb_mwb_attrib_t *attr);
59 
60 XCamReturn
61 rk_aiq_uapiV2_camgroup_awbV21_SetAwbAttrib(RkAiqAlgoContext *ctx,
62                           const rk_aiq_uapiV2_wbV21_awb_attrib_t &attr,
63                           bool need_sync);
64 
65 XCamReturn
66 rk_aiq_uapiV2_camgroup_awbV21_GetAwbAttrib(RkAiqAlgoContext *ctx,
67                           rk_aiq_uapiV2_wbV21_awb_attrib_t *attr);
68 
69 XCamReturn
70 rk_aiq_uapiV2_camgroup_awb_SetAwbGainAdjust(RkAiqAlgoContext *ctx,
71                           const rk_aiq_uapiV2_wb_awb_wbGainAdjust_t &wbGainAdjust,
72                           bool need_sync);
73 XCamReturn
74 rk_aiq_uapiV2_camgroup_awb_GetAwbGainAdjust(RkAiqAlgoContext *ctx,
75                            rk_aiq_uapiV2_wb_awb_wbGainAdjust_t *wbGainAdjust);
76 
77 XCamReturn
78 rk_aiq_uapiV2_camgroup_awb_SetAwbGainOffset(RkAiqAlgoContext *ctx,
79                           CalibDbV2_Awb_gain_offset_cfg_t wbGainOffset,
80                           bool need_sync);
81 XCamReturn
82 rk_aiq_uapiV2_camgroup_awb_GetAwbGainOffset(RkAiqAlgoContext *ctx,
83                           CalibDbV2_Awb_gain_offset_cfg_t *wbGainOffset);
84 XCamReturn
85 rk_aiq_uapiV2_camgroup_awb_GetCCT(const RkAiqAlgoContext *ctx,
86                        rk_aiq_wb_cct_t *cct );
87 
88 XCamReturn
89 rk_aiq_uapiV2_camgroup_awb_SetAwbMultiwindow(RkAiqAlgoContext *ctx,
90                          const CalibDbV2_Awb_Mul_Win_t  &multiWindow,
91                          bool need_sync);
92 XCamReturn
93 rk_aiq_uapiV2_camgroup_awb_GetAwbMultiwindow(RkAiqAlgoContext *ctx,
94                          CalibDbV2_Awb_Mul_Win_t  *multiWindow);
95 
96 XCamReturn
97 rk_aiq_uapiV2_camgroup_awb_QueryWBInfo(const RkAiqAlgoContext *ctx,
98                             rk_aiq_wb_querry_info_t *wb_querry_info );
99 XCamReturn
100 rk_aiq_uapiV2_camgroup_awb_Lock(RkAiqAlgoContext *ctx);
101 
102 XCamReturn
103 rk_aiq_uapiV2_camgroup_awb_Unlock(const RkAiqAlgoContext *ctx);
104 XCamReturn
105 rk_aiq_uapiV2_camgroup_awb_GetAlgoStat(const RkAiqAlgoContext *ctx,
106                             rk_tool_awb_stat_res_full_t *awb_stat_algo );
107 XCamReturn
108 rk_aiq_uapiV2_camgroup_awb_GetStrategyResult(const RkAiqAlgoContext *ctx,
109                             rk_tool_awb_strategy_result_t *awb_strategy_result);
110 XCamReturn
111 rk_aiq_uapiV2_camgroup_awbV32_SetAwbMultiwindow(RkAiqAlgoContext *ctx,
112                          const rk_aiq_uapiV2_wbV32_awb_mulWindow_t  &multiWindow,
113                          bool need_sync);
114 XCamReturn
115 rk_aiq_uapiV2_camgroup_awbV32_GetAwbMultiwindow(RkAiqAlgoContext *ctx,
116                          rk_aiq_uapiV2_wbV32_awb_mulWindow_t  *multiWindow);
117 XCamReturn
118 rk_aiq_uapiV2_camgroup_awbV32_SetAwbAttrib(RkAiqAlgoContext *ctx,
119                           const rk_aiq_uapiV2_wbV32_awb_attrib_t &attr,
120                           bool need_sync);
121 XCamReturn
122 rk_aiq_uapiV2_camgroup_awbV32_GetAwbAttrib(RkAiqAlgoContext *ctx,
123                           rk_aiq_uapiV2_wbV32_awb_attrib_t *attr);
124 XCamReturn
125 rk_aiq_uapiV2_camgroup_awbV32_SetAttrib(RkAiqAlgoContext *ctx,
126                           const rk_aiq_uapiV2_wbV32_attrib_t &attr,
127                           bool need_sync);
128 XCamReturn
129 rk_aiq_uapiV2_camgroup_awbV32_GetAttrib(RkAiqAlgoContext *ctx,
130                           rk_aiq_uapiV2_wbV32_attrib_t *attr);
131 
132 #endif
133 
134