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 #include "rk_aiq_user_api_asharp.h"
17
18 #include "algo_handlers/RkAiqAsharpHandle.h"
19
20 RKAIQ_BEGIN_DECLARE
21
22 #ifdef RK_SIMULATOR_HW
23 #define CHECK_USER_API_ENABLE
24 #endif
25
26 #if RKAIQ_HAVE_SHARP_V1
27
28 XCamReturn
rk_aiq_user_api_asharp_SetAttrib(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_sharp_attrib_t * attr)29 rk_aiq_user_api_asharp_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_attrib_t *attr)
30 {
31 CHECK_USER_API_ENABLE2(sys_ctx);
32 CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_ASHARP);
33 RKAIQ_API_SMART_LOCK(sys_ctx);
34 RkAiqAsharpHandleInt* algo_handle =
35 algoHandle<RkAiqAsharpHandleInt>(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_api_asharp_GetAttrib(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_sharp_attrib_t * attr)45 rk_aiq_user_api_asharp_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_attrib_t *attr)
46 {
47 RKAIQ_API_SMART_LOCK(sys_ctx);
48 RkAiqAsharpHandleInt* algo_handle =
49 algoHandle<RkAiqAsharpHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_ASHARP);
50
51 if (algo_handle) {
52 return algo_handle->getAttrib(attr);
53 }
54
55 return XCAM_RETURN_NO_ERROR;
56 }
57
58 XCamReturn
rk_aiq_user_api_asharp_SetIQPara(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_sharp_IQpara_t * para)59 rk_aiq_user_api_asharp_SetIQPara(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_IQpara_t *para)
60 {
61 RKAIQ_API_SMART_LOCK(sys_ctx);
62 RkAiqAsharpHandleInt* algo_handle =
63 algoHandle<RkAiqAsharpHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_ASHARP);
64
65 if (algo_handle) {
66 return algo_handle->setIQPara(para);
67 }
68
69 return XCAM_RETURN_NO_ERROR;
70 }
71
72 XCamReturn
rk_aiq_user_api_asharp_GetIQPara(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_sharp_IQpara_t * para)73 rk_aiq_user_api_asharp_GetIQPara(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_IQpara_t *para)
74 {
75 RKAIQ_API_SMART_LOCK(sys_ctx);
76 RkAiqAsharpHandleInt* algo_handle =
77 algoHandle<RkAiqAsharpHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_ASHARP);
78
79 if (algo_handle) {
80 return algo_handle->getIQPara(para);
81 }
82
83 return XCAM_RETURN_NO_ERROR;
84 }
85
86
87 XCamReturn
rk_aiq_user_api_asharp_SetStrength(const rk_aiq_sys_ctx_t * sys_ctx,float fPercent)88 rk_aiq_user_api_asharp_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float fPercent)
89 {
90 RKAIQ_API_SMART_LOCK(sys_ctx);
91 RkAiqAsharpHandleInt* algo_handle =
92 algoHandle<RkAiqAsharpHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_ASHARP);
93
94 if (algo_handle) {
95 return algo_handle->setStrength(fPercent);
96 }
97
98 return XCAM_RETURN_NO_ERROR;
99 }
100
101 XCamReturn
rk_aiq_user_api_asharp_GetStrength(const rk_aiq_sys_ctx_t * sys_ctx,float * pPercent)102 rk_aiq_user_api_asharp_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float *pPercent)
103 {
104 RKAIQ_API_SMART_LOCK(sys_ctx);
105 RkAiqAsharpHandleInt* algo_handle =
106 algoHandle<RkAiqAsharpHandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_ASHARP);
107
108 if (algo_handle) {
109 return algo_handle->getStrength(pPercent);
110 }
111
112 return XCAM_RETURN_NO_ERROR;
113 }
114 #else
115 XCamReturn
116 rk_aiq_user_api_asharp_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_attrib_t *attr)
117 {
118 return XCAM_RETURN_ERROR_UNKNOWN;
119 }
120
121 XCamReturn
122 rk_aiq_user_api_asharp_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_attrib_t *attr)
123 {
124 return XCAM_RETURN_ERROR_UNKNOWN;
125 }
126
127 XCamReturn
128 rk_aiq_user_api_asharp_SetIQPara(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_IQpara_t *para)
129 {
130 return XCAM_RETURN_ERROR_UNKNOWN;
131 }
132
133 XCamReturn
134 rk_aiq_user_api_asharp_GetIQPara(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_sharp_IQpara_t *para)
135 {
136 return XCAM_RETURN_ERROR_UNKNOWN;
137 }
138
139 XCamReturn
140 rk_aiq_user_api_asharp_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float fPercent)
141 {
142 return XCAM_RETURN_ERROR_UNKNOWN;
143 }
144
145 XCamReturn
146 rk_aiq_user_api_asharp_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float *pPercent)
147 {
148 return XCAM_RETURN_ERROR_UNKNOWN;
149 }
150
151
152 #endif
153 RKAIQ_END_DECLARE
154