xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/uAPI2/rk_aiq_user_api2_asharp_v3.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * Copyright (c) 2019-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  */
17 #include "uAPI2/rk_aiq_user_api2_asharp_v3.h"
18 
19 #include "algo_handlers/RkAiqAsharpV3Handle.h"
20 
21 RKAIQ_BEGIN_DECLARE
22 
23 #ifdef RK_SIMULATOR_HW
24 #define CHECK_USER_API_ENABLE
25 #endif
26 
27 #if RKAIQ_HAVE_SHARP_V3
28 
29 XCamReturn
rk_aiq_user_api2_asharpV3_SetAttrib(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_sharp_attrib_v3_t * attr)30 rk_aiq_user_api2_asharpV3_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_attrib_v3_t* attr)
31 {
32     CHECK_USER_API_ENABLE2(sys_ctx);
33     CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_ASHARP);
34     RkAiqAsharpV3HandleInt* algo_handle =
35         algoHandle<RkAiqAsharpV3HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_ASHARP);
36 
37     if (algo_handle) {
38         return algo_handle->setAttrib(attr);
39     }
40 
41     return XCAM_RETURN_NO_ERROR;
42 }
43 
44 XCamReturn
rk_aiq_user_api2_asharpV3_GetAttrib(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_sharp_attrib_v3_t * attr)45 rk_aiq_user_api2_asharpV3_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_attrib_v3_t* attr)
46 {
47     RkAiqAsharpV3HandleInt* algo_handle =
48         algoHandle<RkAiqAsharpV3HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_ASHARP);
49 
50     if (algo_handle) {
51         return algo_handle->getAttrib(attr);
52     }
53 
54     return XCAM_RETURN_NO_ERROR;
55 }
56 
57 XCamReturn
rk_aiq_user_api2_asharpV3_SetStrength(const rk_aiq_sys_ctx_t * sys_ctx,float fPercnt)58 rk_aiq_user_api2_asharpV3_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float fPercnt)
59 {
60     XCamReturn ret = XCAM_RETURN_NO_ERROR;
61     RKAIQ_API_SMART_LOCK(sys_ctx);
62 
63 
64     RkAiqAsharpV3HandleInt* algo_handle =
65         algoHandle<RkAiqAsharpV3HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_ASHARP);
66     if (algo_handle) {
67         ret = algo_handle->setStrength(fPercnt);
68     }
69 
70 
71     return ret;
72 }
73 
74 
75 XCamReturn
rk_aiq_user_api2_asharpV3_GetStrength(const rk_aiq_sys_ctx_t * sys_ctx,float * pPercnt)76 rk_aiq_user_api2_asharpV3_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float *pPercnt)
77 {
78     XCamReturn ret = XCAM_RETURN_NO_ERROR;
79     RKAIQ_API_SMART_LOCK(sys_ctx);
80 
81 
82     RkAiqAsharpV3HandleInt* algo_handle =
83         algoHandle<RkAiqAsharpV3HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_ASHARP);
84     if (algo_handle) {
85         ret = algo_handle->getStrength(pPercnt);
86     }
87 
88     return ret;
89 }
90 #else
91 
92 XCamReturn
93 rk_aiq_user_api2_asharpV3_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_attrib_v3_t* attr)
94 {
95     return XCAM_RETURN_ERROR_UNKNOWN;
96 }
97 
98 XCamReturn
99 rk_aiq_user_api2_asharpV3_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_attrib_v3_t* attr)
100 {
101     return XCAM_RETURN_ERROR_UNKNOWN;
102 }
103 
104 XCamReturn
105 rk_aiq_user_api2_asharpV3_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float fPercnt)
106 {
107     return XCAM_RETURN_ERROR_UNKNOWN;
108 }
109 
110 XCamReturn
111 rk_aiq_user_api2_asharpV3_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float *pPercnt)
112 {
113     return XCAM_RETURN_ERROR_UNKNOWN;
114 }
115 
116 #endif
117 
118 
119 RKAIQ_END_DECLARE
120