1 /*
2 * rk_aiq_uapi_acac_int.cpp
3 *
4 * Copyright (c) 2021 Rockchip Corporation
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 */
19 #include "algos/acac/rk_aiq_uapi_acac_int.h"
20
21 #include "algos/acac/rk_aiq_types_acac_algo_prvt.h"
22 #include "xcore/base/xcam_common.h"
23
24 using RkCam::CacAlgoAdaptor;
25
26 #if RKAIQ_HAVE_CAC_V03
rk_aiq_uapi_acac_v03_SetAttrib(RkAiqAlgoContext * ctx,const rkaiq_cac_v03_api_attr_t * attr,bool need_sync)27 XCamReturn rk_aiq_uapi_acac_v03_SetAttrib(RkAiqAlgoContext* ctx,
28 const rkaiq_cac_v03_api_attr_t* attr, bool need_sync) {
29 if (ctx == nullptr) {
30 LOGE_ACAC("%s(%d): null pointer\n", __FUNCTION__, __LINE__);
31 return XCAM_RETURN_ERROR_PARAM;
32 }
33
34 auto* cac = static_cast<CacAlgoAdaptor*>(ctx->handle);
35 cac->SetApiAttr(attr);
36
37 return XCAM_RETURN_NO_ERROR;
38 }
39
rk_aiq_uapi_acac_v03_GetAttrib(const RkAiqAlgoContext * ctx,rkaiq_cac_v03_api_attr_t * attr)40 XCamReturn rk_aiq_uapi_acac_v03_GetAttrib(const RkAiqAlgoContext* ctx,
41 rkaiq_cac_v03_api_attr_t* attr) {
42 if (ctx == nullptr) {
43 LOGE_ACAC("%s(%d): null pointer\n", __FUNCTION__, __LINE__);
44 return XCAM_RETURN_ERROR_PARAM;
45 }
46
47 auto* cac = static_cast<CacAlgoAdaptor*>(ctx->handle);
48 cac->GetApiAttr(attr);
49
50 return XCAM_RETURN_NO_ERROR;
51 }
52 #else
rk_aiq_uapi_acac_v03_SetAttrib(RkAiqAlgoContext *,const rkaiq_cac_v03_api_attr_t *,bool)53 XCamReturn rk_aiq_uapi_acac_v03_SetAttrib(RkAiqAlgoContext* /* ctx */,
54 const rkaiq_cac_v03_api_attr_t* /* attr */,
55 bool /* need_sync */) {
56 return XCAM_RETURN_NO_ERROR;
57 }
rk_aiq_uapi_acac_v03_GetAttrib(const RkAiqAlgoContext *,rkaiq_cac_v03_api_attr_t *)58 XCamReturn rk_aiq_uapi_acac_v03_GetAttrib(const RkAiqAlgoContext* /* ctx */,
59 rkaiq_cac_v03_api_attr_t* /* attr */) {
60 return XCAM_RETURN_NO_ERROR;
61 }
62 #endif
63
64 #if RKAIQ_HAVE_CAC_V10
rk_aiq_uapi_acac_v10_SetAttrib(RkAiqAlgoContext * ctx,const rkaiq_cac_v10_api_attr_t * attr,bool need_sync)65 XCamReturn rk_aiq_uapi_acac_v10_SetAttrib(RkAiqAlgoContext* ctx,
66 const rkaiq_cac_v10_api_attr_t* attr, bool need_sync) {
67 if (ctx == nullptr) {
68 LOGE_ACAC("%s(%d): null pointer\n", __FUNCTION__, __LINE__);
69 return XCAM_RETURN_ERROR_PARAM;
70 }
71
72 auto* cac = static_cast<CacAlgoAdaptor*>(ctx->handle);
73 cac->SetApiAttr(attr);
74
75 return XCAM_RETURN_NO_ERROR;
76 }
77
rk_aiq_uapi_acac_v10_GetAttrib(const RkAiqAlgoContext * ctx,rkaiq_cac_v10_api_attr_t * attr)78 XCamReturn rk_aiq_uapi_acac_v10_GetAttrib(const RkAiqAlgoContext* ctx,
79 rkaiq_cac_v10_api_attr_t* attr) {
80 if (ctx == nullptr) {
81 LOGE_ACAC("%s(%d): null pointer\n", __FUNCTION__, __LINE__);
82 return XCAM_RETURN_ERROR_PARAM;
83 }
84
85 auto* cac = static_cast<CacAlgoAdaptor*>(ctx->handle);
86 cac->GetApiAttr(attr);
87
88 return XCAM_RETURN_NO_ERROR;
89 }
90 #else
rk_aiq_uapi_acac_v10_SetAttrib(RkAiqAlgoContext *,const rkaiq_cac_v10_api_attr_t *,bool)91 XCamReturn rk_aiq_uapi_acac_v10_SetAttrib(RkAiqAlgoContext* /* ctx */,
92 const rkaiq_cac_v10_api_attr_t* /* attr */,
93 bool /* need_sync */) {
94 return XCAM_RETURN_NO_ERROR;
95 }
rk_aiq_uapi_acac_v10_GetAttrib(const RkAiqAlgoContext *,rkaiq_cac_v10_api_attr_t *)96 XCamReturn rk_aiq_uapi_acac_v10_GetAttrib(const RkAiqAlgoContext* /* ctx */,
97 rkaiq_cac_v10_api_attr_t* /* attr */) {
98 return XCAM_RETURN_NO_ERROR;
99 }
100 #endif
101
102 #if RKAIQ_HAVE_CAC_V11
rk_aiq_uapi_acac_v11_SetAttrib(RkAiqAlgoContext * ctx,const rkaiq_cac_v11_api_attr_t * attr,bool)103 XCamReturn rk_aiq_uapi_acac_v11_SetAttrib(RkAiqAlgoContext* ctx,
104 const rkaiq_cac_v11_api_attr_t* attr,
105 bool /* need_sync */) {
106 if (ctx == nullptr) {
107 LOGE_ACAC("%s(%d): null pointer\n", __FUNCTION__, __LINE__);
108 return XCAM_RETURN_ERROR_PARAM;
109 }
110
111 auto* cac = static_cast<CacAlgoAdaptor*>(ctx->handle);
112 cac->SetApiAttr(attr);
113
114 return XCAM_RETURN_NO_ERROR;
115 }
116
rk_aiq_uapi_acac_v11_GetAttrib(const RkAiqAlgoContext * ctx,rkaiq_cac_v11_api_attr_t * attr)117 XCamReturn rk_aiq_uapi_acac_v11_GetAttrib(const RkAiqAlgoContext* ctx,
118 rkaiq_cac_v11_api_attr_t* attr) {
119 if (ctx == nullptr) {
120 LOGE_ACAC("%s(%d): null pointer\n", __FUNCTION__, __LINE__);
121 return XCAM_RETURN_ERROR_PARAM;
122 }
123
124 auto* cac = static_cast<CacAlgoAdaptor*>(ctx->handle);
125 cac->GetApiAttr(attr);
126
127 return XCAM_RETURN_NO_ERROR;
128 }
129 #else
rk_aiq_uapi_acac_v11_SetAttrib(RkAiqAlgoContext *,const rkaiq_cac_v11_api_attr_t *,bool)130 XCamReturn rk_aiq_uapi_acac_v11_SetAttrib(RkAiqAlgoContext* /* ctx */,
131 const rkaiq_cac_v11_api_attr_t* /* attr */,
132 bool /* need_sync */) {
133 return XCAM_RETURN_NO_ERROR;
134 }
rk_aiq_uapi_acac_v11_GetAttrib(const RkAiqAlgoContext *,rkaiq_cac_v11_api_attr_t *)135 XCamReturn rk_aiq_uapi_acac_v11_GetAttrib(const RkAiqAlgoContext* /* ctx */,
136 rkaiq_cac_v11_api_attr_t* /* attr */) {
137 return XCAM_RETURN_NO_ERROR;
138 }
139 #endif
140