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 "uAPI2/rk_aiq_user_api2_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 XCamReturn
rk_aiq_user_api2_aynrV2_SetAttrib(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_ynr_attrib_v2_t * attr)30 rk_aiq_user_api2_aynrV2_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_ynr_attrib_v2_t* attr)
31 {
32 CHECK_USER_API_ENABLE2(sys_ctx);
33 CHECK_USER_API_ENABLE(RK_AIQ_ALGO_TYPE_AYNR);
34 RkAiqAynrV2HandleInt* algo_handle =
35 algoHandle<RkAiqAynrV2HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AYNR);
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_aynrV2_GetAttrib(const rk_aiq_sys_ctx_t * sys_ctx,rk_aiq_ynr_attrib_v2_t * attr)45 rk_aiq_user_api2_aynrV2_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_ynr_attrib_v2_t* attr)
46 {
47 RkAiqAynrV2HandleInt* algo_handle =
48 algoHandle<RkAiqAynrV2HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AYNR);
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_aynrV2_SetStrength(const rk_aiq_sys_ctx_t * sys_ctx,float fPercnt)58 rk_aiq_user_api2_aynrV2_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 RkAiqAynrV2HandleInt* algo_handle =
64 algoHandle<RkAiqAynrV2HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AYNR);
65 if (algo_handle) {
66 ret = algo_handle->setStrength(fPercnt);
67 }
68
69 return ret;
70 }
71
72
73 XCamReturn
rk_aiq_user_api2_aynrV2_GetStrength(const rk_aiq_sys_ctx_t * sys_ctx,float * pPercnt)74 rk_aiq_user_api2_aynrV2_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float *pPercnt)
75 {
76 XCamReturn ret = XCAM_RETURN_NO_ERROR;
77 RKAIQ_API_SMART_LOCK(sys_ctx);
78
79 RkAiqAynrV2HandleInt* algo_handle =
80 algoHandle<RkAiqAynrV2HandleInt>(sys_ctx, RK_AIQ_ALGO_TYPE_AYNR);
81 if (algo_handle) {
82 ret = algo_handle->getStrength(pPercnt);
83 }
84
85 return ret;
86 }
87 #else
88 XCamReturn
89 rk_aiq_user_api2_aynrV2_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_ynr_attrib_v2_t* attr) {
90 return XCAM_RETURN_ERROR_UNKNOWN;
91 }
92
93 XCamReturn
94 rk_aiq_user_api2_aynrV2_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_ynr_attrib_v2_t* attr) {
95 return XCAM_RETURN_ERROR_UNKNOWN;
96 }
97
98 XCamReturn
99 rk_aiq_user_api2_aynrV2_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float fPercnt) {
100 return XCAM_RETURN_ERROR_UNKNOWN;
101 }
102
103 XCamReturn
104 rk_aiq_user_api2_aynrV2_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx, float *pPercnt) {
105 return XCAM_RETURN_ERROR_UNKNOWN;
106 }
107
108 #endif
109
110
111 RKAIQ_END_DECLARE
112