xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/algos/awb/rk_aiq_uapiv2_awb_int.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #ifndef _RK_AIQ_UAPIV2_AWB_INT_H_
2 #define _RK_AIQ_UAPIV2_AWB_INT_H_
3 
4 #include "base/xcam_common.h"
5 #include "rk_aiq_algo_des.h"
6 #include "awb/rk_aiq_types_awb_algo_int.h"
7 
8 // need_sync means the implementation should consider
9 // the thread synchronization
10 // if called by RkAiqAwbHandleInt, the sync has been done
11 // in framework. And if called by user app directly,
12 // sync should be done in inner. now we just need implement
13 // the case of need_sync == false; need_sync is for future usage.
14 
15 XCamReturn
16 rk_aiq_uapiV2_awbV20_SetAttrib(RkAiqAlgoContext *ctx,
17                           const rk_aiq_uapiV2_wbV20_attrib_t &attr,
18                           bool need_sync);
19 
20 XCamReturn
21 rk_aiq_uapiV2_awbV20_GetAttrib(RkAiqAlgoContext *ctx,
22                           rk_aiq_uapiV2_wbV20_attrib_t *attr);
23 
24 XCamReturn
25 rk_aiq_uapiV2_awbV21_SetAttrib(RkAiqAlgoContext *ctx,
26                           const rk_aiq_uapiV2_wbV21_attrib_t &attr,
27                           bool need_sync);
28 XCamReturn
29 rk_aiq_uapiV2_awbV21_GetAttrib(RkAiqAlgoContext *ctx,
30                           rk_aiq_uapiV2_wbV21_attrib_t *attr);
31 
32 XCamReturn
33 rk_aiq_uapiV2_awb_SetMwbMode(RkAiqAlgoContext *ctx,
34                           const rk_aiq_wb_op_mode_t &mode,
35                           bool need_sync);
36 
37 XCamReturn
38 rk_aiq_uapiV2_awb_GetMwbMode(RkAiqAlgoContext *ctx,
39                           rk_aiq_wb_op_mode_t *mode);
40 
41 XCamReturn
42 rk_aiq_uapiV2_awb_SetMwbAttrib(RkAiqAlgoContext *ctx,
43                           const rk_aiq_wb_mwb_attrib_t &attr,
44                           bool need_sync);
45 
46 XCamReturn
47 rk_aiq_uapiV2_awb_GetMwbAttrib(RkAiqAlgoContext *ctx,
48                           rk_aiq_wb_mwb_attrib_t *attr);
49 
50 XCamReturn
51 rk_aiq_uapiV2_awbV20_SetAwbAttrib(RkAiqAlgoContext *ctx,
52                           const rk_aiq_uapiV2_wbV20_awb_attrib_t &attr,
53                           bool need_sync);
54 
55 XCamReturn
56 rk_aiq_uapiV2_awbV20_GetAwbAttrib(RkAiqAlgoContext *ctx,
57                           rk_aiq_uapiV2_wbV20_awb_attrib_t *attr);
58 
59 XCamReturn
60 rk_aiq_uapiV2_awbV21_SetAwbAttrib(RkAiqAlgoContext *ctx,
61                           const rk_aiq_uapiV2_wbV21_awb_attrib_t &attr,
62                           bool need_sync);
63 
64 XCamReturn
65 rk_aiq_uapiV2_awbV21_GetAwbAttrib(RkAiqAlgoContext *ctx,
66                           rk_aiq_uapiV2_wbV21_awb_attrib_t *attr);
67 
68 XCamReturn
69 rk_aiq_uapiV2_awb_SetAwbGainAdjust(RkAiqAlgoContext *ctx,
70                           const rk_aiq_uapiV2_wb_awb_wbGainAdjust_t &wbGainAdjust,
71                           bool need_sync);
72 XCamReturn
73 rk_aiq_uapiV2_awb_GetAwbGainAdjust(RkAiqAlgoContext *ctx,
74                            rk_aiq_uapiV2_wb_awb_wbGainAdjust_t *wbGainAdjust);
75 
76 XCamReturn
77 rk_aiq_uapiV2_awb_SetAwbGainOffset(RkAiqAlgoContext *ctx,
78                           CalibDbV2_Awb_gain_offset_cfg_t wbGainOffset,
79                           bool need_sync);
80 XCamReturn
81 rk_aiq_uapiV2_awb_GetAwbGainOffset(RkAiqAlgoContext *ctx,
82                           CalibDbV2_Awb_gain_offset_cfg_t *wbGainOffset);
83 XCamReturn
84 rk_aiq_uapiV2_awb_GetCCT(const RkAiqAlgoContext *ctx,
85                        rk_aiq_wb_cct_t *cct );
86 
87 XCamReturn
88 rk_aiq_uapiV2_awb_SetAwbMultiwindow(RkAiqAlgoContext *ctx,
89                          const CalibDbV2_Awb_Mul_Win_t  &multiWindow,
90                          bool need_sync);
91 XCamReturn
92 rk_aiq_uapiV2_awb_GetAwbMultiwindow(RkAiqAlgoContext *ctx,
93                          CalibDbV2_Awb_Mul_Win_t  *multiWindow);
94 
95 XCamReturn
96 rk_aiq_uapiV2_awb_QueryWBInfo(const RkAiqAlgoContext *ctx,
97                             rk_aiq_wb_querry_info_t *wb_querry_info );
98 XCamReturn
99 rk_aiq_uapiV2_awb_Lock(RkAiqAlgoContext *ctx);
100 
101 XCamReturn
102 rk_aiq_uapiV2_awb_Unlock(const RkAiqAlgoContext *ctx);
103 
104 XCamReturn
105 rk_aiq_uapiV2_awb_GetAlgoStat(const RkAiqAlgoContext *ctx,rk_tool_awb_stat_res_full_t *awb_stat_algo);
106 
107 XCamReturn
108 rk_aiq_uapiV2_awb_GetStrategyResult(const RkAiqAlgoContext *ctx,rk_tool_awb_strategy_result_t *awb_strategy_result);
109 XCamReturn
110 rk_aiq_uapiV2_awbV32_SetAwbMultiwindow(RkAiqAlgoContext *ctx,
111                          const rk_aiq_uapiV2_wbV32_awb_mulWindow_t  &multiWindow,
112                          bool need_sync);
113 XCamReturn
114 rk_aiq_uapiV2_awbV32_GetAwbMultiwindow(RkAiqAlgoContext *ctx,
115                          rk_aiq_uapiV2_wbV32_awb_mulWindow_t  *multiWindow);
116 XCamReturn
117 rk_aiq_uapiV2_awbV32_SetAwbAttrib(RkAiqAlgoContext *ctx,
118                           const rk_aiq_uapiV2_wbV32_awb_attrib_t &attr,
119                           bool need_sync);
120 XCamReturn
121 rk_aiq_uapiV2_awbV32_GetAwbAttrib(RkAiqAlgoContext *ctx,
122                           rk_aiq_uapiV2_wbV32_awb_attrib_t *attr);
123 
124 XCamReturn
125 rk_aiq_uapiV2_awbV32_SetAttrib(RkAiqAlgoContext *ctx,
126                           const rk_aiq_uapiV2_wbV32_attrib_t &attr,
127                           bool need_sync);
128 XCamReturn
129 rk_aiq_uapiV2_awbV32_GetAttrib(RkAiqAlgoContext *ctx,
130                           rk_aiq_uapiV2_wbV32_attrib_t *attr);
131 XCamReturn
132 rk_aiq_uapiV2_awbV32_GetAwbMultiwindow(RkAiqAlgoContext *ctx,
133                          rk_aiq_uapiV2_wbV32_awb_mulWindow_t  *multiWindow);
134 XCamReturn
135 rk_aiq_uapiV2_awbV32_SetAwbMultiwindow(RkAiqAlgoContext *ctx,
136                          const rk_aiq_uapiV2_wbV32_awb_mulWindow_t  &multiWindow,
137                          bool need_sync);
138 XCamReturn
139 rk_aiq_uapiV2_awb_WriteInput(RkAiqAlgoContext *ctx,
140                           const rk_aiq_uapiV2_awb_wrtIn_attr_t &attr,
141                           bool need_sync);
142 XCamReturn
143 rk_aiq_uapiV2_awb_SetFstFrWbgain(RkAiqAlgoContext *ctx,
144                           const rk_aiq_wb_gain_t &wbgain,
145                           bool need_sync);
146 
147 #endif
148 
149