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