xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/uAPI2/rk_aiq_user_api2_aynr_v2.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 #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