xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/algos/adehaze/rk_aiq_uapi_adehaze_int.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #include "rk_aiq_uapi_adehaze_int.h"
2 #include "rk_aiq_types_adehaze_algo_prvt.h"
3 #include "xcam_log.h"
4 
5 #if RKAIQ_HAVE_DEHAZE_V10
rk_aiq_uapi_adehaze_v10_SetAttrib(RkAiqAlgoContext * ctx,adehaze_sw_v10_t * attr,bool need_sync)6 XCamReturn rk_aiq_uapi_adehaze_v10_SetAttrib(RkAiqAlgoContext* ctx, adehaze_sw_v10_t* attr,
7                                              bool need_sync) {
8     XCamReturn ret = XCAM_RETURN_NO_ERROR;
9     AdehazeHandle_t* pAdehazeHandle = (AdehazeHandle_t*)ctx;
10 
11     // AdehazeHandle->AdehazeAtrrV10.mode = attr->mode;
12     // if(attr->mode == DEHAZE_API_MANUAL)
13     //    memcpy(&AdehazeHandle->AdehazeAtrrV10.stManual, &attr->stManual,
14     //    sizeof(mDehazeAttrV11_t));
15     // if(attr->mode == DEHAZE_API_AUTO)
16     //    memcpy(&AdehazeHandle->AdehazeAtrrV10.stAuto, &attr->stAuto,
17     //    sizeof(CalibDbV2_dehaze_v10_t));
18 
19     return ret;
20 }
21 
rk_aiq_uapi_adehaze_v10_GetAttrib(RkAiqAlgoContext * ctx,adehaze_sw_v10_t * attr)22 XCamReturn rk_aiq_uapi_adehaze_v10_GetAttrib(RkAiqAlgoContext* ctx, adehaze_sw_v10_t* attr) {
23     XCamReturn ret                 = XCAM_RETURN_NO_ERROR;
24     AdehazeHandle_t* pAdehazeHandle = (AdehazeHandle_t*)ctx;
25 
26     // attr->mode = AdehazeHandle->AdehazeAtrrV10.mode;
27     // memcpy(&attr->stManual, &AdehazeHandle->AdehazeAtrrV10.stManual, sizeof(mDehazeAttrV11_t));
28     // memcpy(&attr->stAuto, &AdehazeHandle->AdehazeAtrrV10.stAuto, sizeof(CalibDbV2_dehaze_v10_t));
29 
30     return ret;
31 }
32 #endif
33 #if RKAIQ_HAVE_DEHAZE_V11 || RKAIQ_HAVE_DEHAZE_V11_DUO
rk_aiq_uapi_adehaze_v11_SetAttrib(RkAiqAlgoContext * ctx,adehaze_sw_v11_t * attr,bool need_sync)34 XCamReturn rk_aiq_uapi_adehaze_v11_SetAttrib(RkAiqAlgoContext* ctx, adehaze_sw_v11_t* attr,
35                                              bool need_sync) {
36     XCamReturn ret                 = XCAM_RETURN_NO_ERROR;
37     AdehazeHandle_t* pAdehazeHandle = (AdehazeHandle_t*)ctx;
38 
39 #if RKAIQ_HAVE_DEHAZE_V11
40     pAdehazeHandle->AdehazeAtrrV11.mode = attr->mode;
41     if (attr->mode == DEHAZE_API_MANUAL) {
42         memcpy(&pAdehazeHandle->AdehazeAtrrV11.stManual, &attr->stManual, sizeof(mDehazeAttrV11_t));
43         pAdehazeHandle->ifReCalcStManual = true;
44     }
45     if (attr->mode == DEHAZE_API_AUTO) {
46         memcpy(&pAdehazeHandle->AdehazeAtrrV11.stAuto, &attr->stAuto,
47                sizeof(CalibDbV2_dehaze_v11_t));
48         pAdehazeHandle->ifReCalcStAuto = true;
49     }
50 
51     if (attr->Info.updateMDehazeStrth) {
52         pAdehazeHandle->AdehazeAtrrV11.Info.MDehazeStrth = attr->Info.MDehazeStrth;
53         attr->Info.updateMDehazeStrth                    = false;
54     }
55     if (attr->Info.updateMEnhanceStrth) {
56         pAdehazeHandle->AdehazeAtrrV11.Info.MEnhanceStrth = attr->Info.MEnhanceStrth;
57         attr->Info.updateMEnhanceStrth                    = false;
58     }
59     if (attr->Info.updateMEnhanceChromeStrth) {
60         pAdehazeHandle->AdehazeAtrrV11.Info.MEnhanceChromeStrth = attr->Info.MEnhanceChromeStrth;
61         attr->Info.updateMEnhanceChromeStrth                    = false;
62     }
63 #endif
64 #if RKAIQ_HAVE_DEHAZE_V11_DUO
65     pAdehazeHandle->AdehazeAtrrV11duo.mode = attr->mode;
66     if (attr->mode == DEHAZE_API_MANUAL) {
67         memcpy(&pAdehazeHandle->AdehazeAtrrV11duo.stManual, &attr->stManual,
68                sizeof(mDehazeAttrV11_t));
69         pAdehazeHandle->ifReCalcStManual = true;
70     }
71     if (attr->mode == DEHAZE_API_AUTO) {
72         memcpy(&pAdehazeHandle->AdehazeAtrrV11duo.stAuto, &attr->stAuto,
73                sizeof(CalibDbV2_dehaze_v11_t));
74         pAdehazeHandle->ifReCalcStAuto = true;
75     }
76 
77     if (attr->Info.updateMDehazeStrth) {
78         pAdehazeHandle->AdehazeAtrrV11duo.Info.MDehazeStrth = attr->Info.MDehazeStrth;
79         attr->Info.updateMDehazeStrth                       = false;
80     }
81     if (attr->Info.updateMEnhanceStrth) {
82         pAdehazeHandle->AdehazeAtrrV11duo.Info.MEnhanceStrth = attr->Info.MEnhanceStrth;
83         attr->Info.updateMEnhanceStrth                       = false;
84     }
85     if (attr->Info.updateMEnhanceChromeStrth) {
86         pAdehazeHandle->AdehazeAtrrV11duo.Info.MEnhanceChromeStrth = attr->Info.MEnhanceChromeStrth;
87         attr->Info.updateMEnhanceChromeStrth                       = false;
88     }
89 #endif
90     return ret;
91 }
92 
rk_aiq_uapi_adehaze_v11_GetAttrib(RkAiqAlgoContext * ctx,adehaze_sw_v11_t * attr)93 XCamReturn rk_aiq_uapi_adehaze_v11_GetAttrib(RkAiqAlgoContext* ctx, adehaze_sw_v11_t* attr) {
94     XCamReturn ret = XCAM_RETURN_NO_ERROR;
95     AdehazeHandle_t* pAdehazeHandle = (AdehazeHandle_t*)ctx;
96 
97 #if RKAIQ_HAVE_DEHAZE_V11
98     attr->mode = pAdehazeHandle->AdehazeAtrrV11.mode;
99     memcpy(&attr->stManual, &pAdehazeHandle->AdehazeAtrrV11.stManual, sizeof(mDehazeAttrV11_t));
100     memcpy(&attr->stAuto, &pAdehazeHandle->AdehazeAtrrV11.stAuto, sizeof(CalibDbV2_dehaze_v11_t));
101     // get info
102     attr->Info.EnvLv = pAdehazeHandle->CurrDataV11.EnvLv;
103     attr->Info.ISO   = pAdehazeHandle->CurrDataV11.ISO;
104 #endif
105 #if RKAIQ_HAVE_DEHAZE_V11_DUO
106     attr->mode = pAdehazeHandle->AdehazeAtrrV11duo.mode;
107     memcpy(&attr->stManual, &pAdehazeHandle->AdehazeAtrrV11duo.stManual, sizeof(mDehazeAttrV11_t));
108     memcpy(&attr->stAuto, &pAdehazeHandle->AdehazeAtrrV11duo.stAuto,
109            sizeof(CalibDbV2_dehaze_v11_t));
110     // get info
111     attr->Info.EnvLv = pAdehazeHandle->CurrDataV11duo.EnvLv;
112     attr->Info.ISO   = pAdehazeHandle->CurrDataV11duo.ISO;
113 #endif
114 
115     return ret;
116 }
117 #endif
118 #if RKAIQ_HAVE_DEHAZE_V12
rk_aiq_uapi_adehaze_v12_SetAttrib(RkAiqAlgoContext * ctx,adehaze_sw_v12_t * attr,bool need_sync)119 XCamReturn rk_aiq_uapi_adehaze_v12_SetAttrib(RkAiqAlgoContext* ctx, adehaze_sw_v12_t* attr,
120                                              bool need_sync) {
121     XCamReturn ret                 = XCAM_RETURN_NO_ERROR;
122     AdehazeHandle_t* pAdehazeHandle = (AdehazeHandle_t*)ctx;
123 
124     pAdehazeHandle->AdehazeAtrrV12.mode = attr->mode;
125     if (attr->mode == DEHAZE_API_MANUAL) {
126         memcpy(&pAdehazeHandle->AdehazeAtrrV12.stManual, &attr->stManual, sizeof(mDehazeAttrV12_t));
127         pAdehazeHandle->ifReCalcStManual = true;
128     }
129     if (attr->mode == DEHAZE_API_AUTO) {
130         memcpy(&pAdehazeHandle->AdehazeAtrrV12.stAuto, &attr->stAuto,
131                sizeof(CalibDbV2_dehaze_v12_t));
132         pAdehazeHandle->ifReCalcStAuto = true;
133     }
134 
135     if (attr->Info.updateMDehazeStrth) {
136         pAdehazeHandle->AdehazeAtrrV12.Info.MDehazeStrth = attr->Info.MDehazeStrth;
137         attr->Info.updateMDehazeStrth                    = false;
138     }
139     if (attr->Info.updateMEnhanceStrth) {
140         pAdehazeHandle->AdehazeAtrrV12.Info.MEnhanceStrth = attr->Info.MEnhanceStrth;
141         attr->Info.updateMEnhanceStrth                    = false;
142     }
143     if (attr->Info.updateMEnhanceChromeStrth) {
144         pAdehazeHandle->AdehazeAtrrV12.Info.MEnhanceChromeStrth = attr->Info.MEnhanceChromeStrth;
145         attr->Info.updateMEnhanceChromeStrth                    = false;
146     }
147 
148     return ret;
149 }
150 
rk_aiq_uapi_adehaze_v12_GetAttrib(RkAiqAlgoContext * ctx,adehaze_sw_v12_t * attr)151 XCamReturn rk_aiq_uapi_adehaze_v12_GetAttrib(RkAiqAlgoContext* ctx, adehaze_sw_v12_t* attr) {
152     XCamReturn ret                 = XCAM_RETURN_NO_ERROR;
153     AdehazeHandle_t* pAdehazeHandle = (AdehazeHandle_t*)ctx;
154 
155     attr->mode = pAdehazeHandle->AdehazeAtrrV12.mode;
156     memcpy(&attr->stManual, &pAdehazeHandle->AdehazeAtrrV12.stManual, sizeof(mDehazeAttrV12_t));
157     memcpy(&attr->stAuto, &pAdehazeHandle->AdehazeAtrrV12.stAuto, sizeof(CalibDbV2_dehaze_v12_t));
158     // get info
159     attr->Info.EnvLv = pAdehazeHandle->CurrDataV12.EnvLv;
160     attr->Info.ISO   = pAdehazeHandle->CurrDataV12.ISO;
161 
162     return ret;
163 }
164 
165 #endif
166