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_aynr_v2.h"
17
18 #if RKAIQ_HAVE_YNR_V2
19 #include "algo_handlers/RkAiqAynrV2Handle.h"
20 #endif
21
22 RKAIQ_BEGIN_DECLARE
23
24 #ifdef RK_SIMULATOR_HW
25 #define CHECK_USER_API_ENABLE
26 #endif
27
28 #if RKAIQ_HAVE_YNR_V2
29
30 XCamReturn
rk_aiq_user_api_aynrV2_SetAttrib(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_ynr_attrib_v2_t * attr)31 rk_aiq_user_api_aynrV2_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_ynr_attrib_v2_t* attr)
32 {
33 CHECK_USER_API_ENABLE2(sys_ctx);
34 CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AYNR);
35 RkAiqAynrV2HandleInt* algo_handle =
36 algoHandle<RkAiqAynrV2HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AYNR);
37
38 if (algo_handle) {
39 return algo_handle->setAttrib(attr);
40 }
41
42 return XCAM_RETURN_NO_ERROR;
43 }
44
45 XCamReturn
rk_aiq_user_api_aynrV2_GetAttrib(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_ynr_attrib_v2_t * attr)46 rk_aiq_user_api_aynrV2_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_ynr_attrib_v2_t* attr)
47 {
48 RkAiqAynrV2HandleInt* algo_handle =
49 algoHandle<RkAiqAynrV2HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AYNR);
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_aynrV2_SetStrength(const rk_aiq_sys_ctx_t * sys_ctx,float fPercnt)59 rk_aiq_user_api_aynrV2_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float fPercnt)
60 {
61 XCamReturn ret = XCAM_RETURN_NO_ERROR;
62 RKAIQ_API_SMART_LOCK(sys_ctx);
63
64 RkAiqAynrV2HandleInt* algo_handle =
65 algoHandle<RkAiqAynrV2HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AYNR);
66 if (algo_handle) {
67 ret = algo_handle->setStrength(fPercnt);
68 }
69
70 return ret;
71 }
72
73
74 XCamReturn
rk_aiq_user_api_aynrV2_GetStrength(const rk_aiq_sys_ctx_t * sys_ctx,float * pPercnt)75 rk_aiq_user_api_aynrV2_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float *pPercnt)
76 {
77 XCamReturn ret = XCAM_RETURN_NO_ERROR;
78 RKAIQ_API_SMART_LOCK(sys_ctx);
79
80 RkAiqAynrV2HandleInt* algo_handle =
81 algoHandle<RkAiqAynrV2HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AYNR);
82 if (algo_handle) {
83 ret = algo_handle->getStrength(pPercnt);
84 }
85
86 return ret;
87 }
88
89 #else
90
91 XCamReturn
92 rk_aiq_user_api_aynrV2_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_ynr_attrib_v2_t* attr) {
93 return XCAM_RETURN_ERROR_UNKNOWN;
94 }
95
96 XCamReturn
97 rk_aiq_user_api_aynrV2_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_ynr_attrib_v2_t* attr) {
98 return XCAM_RETURN_ERROR_UNKNOWN;
99 }
100
101 XCamReturn
102 rk_aiq_user_api_aynrV2_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float fPercnt) {
103 return XCAM_RETURN_ERROR_UNKNOWN;
104 }
105
106 XCamReturn
107 rk_aiq_user_api_aynrV2_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float *pPercnt) {
108 return XCAM_RETURN_ERROR_UNKNOWN;
109 }
110
111 #endif
112
113 RKAIQ_END_DECLARE
114