1 #ifndef _RK_AIQ_UAPI_ADEBAYER_INT_H_
2 #define _RK_AIQ_UAPI_ADEBAYER_INT_H_
3 
4 #include "base/xcam_common.h"
5 #include "rk_aiq_algo_des.h"
6 #include "rk_aiq_types_adebayer_algo_int.h"
7 //#include "xcam_log.h"
8 
9 typedef struct rk_aiq_uapi_sync_s rk_aiq_uapi_sync_t;
10 
11 //auto params, change with iso
12 typedef struct adebayer_attrib_auto_s {
13     uint8_t     sharp_strength[9];
14     uint8_t     low_freq_thresh;
15     uint8_t     high_freq_thresh;
16 } adebayer_attrib_auto_t;
17 
18 typedef AdebayerSeletedParamV1_t adebayer_attrib_manual_t;
19 
20 typedef struct adebayer_attrib_s {
21     rk_aiq_uapi_sync_t          sync;
22     rk_aiq_debayer_op_mode_t    mode;
23 
24     uint8_t                     enable;
25     adebayer_attrib_manual_t    stManual;
26     adebayer_attrib_auto_t      stAuto;
27 
28 } adebayer_attrib_t;
29 
30 typedef AdebayerSeletedParamV2_t adebayer_attrib_v2_manual_t;
31 typedef CalibDbV2_Debayer_Tuning_t adebayer_attrib_v2_auto_t;
32 
33 typedef struct adebayer_v2_attrib_s {
34     rk_aiq_uapi_sync_t          sync;
35     rk_aiq_debayer_op_mode_t    mode;
36 
37     adebayer_attrib_v2_manual_t    stManual;
38     adebayer_attrib_v2_auto_t      stAuto;
39 
40 } adebayer_v2_attrib_t;
41 
42 typedef AdebayerSeletedParamV2Lite_t adebayer_attrib_v2lite_manual_t;
43 typedef CalibDbV2_Debayer_Tuning_Lite_t adebayer_attrib_v2lite_auto_t;
44 
45 typedef struct adebayer_v2lite_attrib_s {
46     rk_aiq_uapi_sync_t          sync;
47     rk_aiq_debayer_op_mode_t    mode;
48 
49     adebayer_attrib_v2lite_manual_t    stManual;
50     adebayer_attrib_v2lite_auto_t      stAuto;
51 
52 } adebayer_v2lite_attrib_t;
53 
54 // need_sync means the implementation should consider
55 // the thread synchronization
56 // if called by RkAiqAdebayerHandleInt, the sync has been done
57 // in framework. And if called by user app directly,
58 // sync should be done in inner. now we just need implement
59 // the case of need_sync == false; need_sync is for future usage.
60 
61 XCamReturn
62 rk_aiq_uapi_adebayer_SetAttrib
63 (
64     RkAiqAlgoContext* ctx,
65     adebayer_attrib_t attr,
66     bool need_sync
67 );
68 
69 XCamReturn
70 rk_aiq_uapi_adebayer_GetAttrib
71 (
72     RkAiqAlgoContext*  ctx,
73     adebayer_attrib_t* attr
74 );
75 
76 XCamReturn
77 rk_aiq_uapi_adebayer_v2_SetAttrib
78 (
79     RkAiqAlgoContext* ctx,
80     adebayer_v2_attrib_t attr,
81     bool need_sync
82 );
83 
84 XCamReturn
85 rk_aiq_uapi_adebayer_v2_GetAttrib
86 (
87     RkAiqAlgoContext*  ctx,
88     adebayer_v2_attrib_t* attr
89 );
90 
91 XCamReturn
92 rk_aiq_uapi_adebayer_v2lite_SetAttrib
93 (
94     RkAiqAlgoContext* ctx,
95     adebayer_v2lite_attrib_t attr,
96     bool need_sync
97 );
98 
99 XCamReturn
100 rk_aiq_uapi_adebayer_v2lite_GetAttrib
101 (
102     RkAiqAlgoContext*  ctx,
103     adebayer_v2lite_attrib_t* attr
104 );
105 
106 #endif//_RK_AIQ_UAPI_ADEBAYER_INT_H_
107