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 #ifndef _RK_AIQ_CAMGROUP_ACAC_HANDLE_INT_H_ 17 #define _RK_AIQ_CAMGROUP_ACAC_HANDLE_INT_H_ 18 19 #include <atomic> 20 21 #include "RkAiqCamGroupHandleInt.h" 22 #include "acac/rk_aiq_uapi_acac_int.h" 23 24 namespace RkCam { 25 26 class RkAiqCamGroupAcacHandleInt : public RkAiqCamgroupHandle { 27 public: RkAiqCamGroupAcacHandleInt(RkAiqAlgoDesComm * des,RkAiqCamGroupManager * camGroupMg)28 explicit RkAiqCamGroupAcacHandleInt(RkAiqAlgoDesComm* des, RkAiqCamGroupManager* camGroupMg) 29 : RkAiqCamgroupHandle(des, camGroupMg) { 30 updateAttV03 = false; 31 updateAttV10 = false; 32 updateAttV11 = false; 33 memset(&mCurAttV03, 0, sizeof(rkaiq_cac_v03_api_attr_t)); 34 memset(&mNewAttV03, 0, sizeof(rkaiq_cac_v03_api_attr_t)); 35 memset(&mCurAttV10, 0, sizeof(rkaiq_cac_v10_api_attr_t)); 36 memset(&mNewAttV10, 0, sizeof(rkaiq_cac_v10_api_attr_t)); 37 memset(&mCurAttV11, 0, sizeof(rkaiq_cac_v11_api_attr_t)); 38 memset(&mNewAttV11, 0, sizeof(rkaiq_cac_v11_api_attr_t)); 39 }; ~RkAiqCamGroupAcacHandleInt()40 virtual ~RkAiqCamGroupAcacHandleInt() { RkAiqCamgroupHandle::deInit(); }; 41 virtual XCamReturn updateConfig(bool needSync); 42 XCamReturn setAttribV03(const rkaiq_cac_v03_api_attr_t* att); 43 XCamReturn getAttribV03(rkaiq_cac_v03_api_attr_t* att); 44 XCamReturn setAttribV10(const rkaiq_cac_v10_api_attr_t* att); 45 XCamReturn getAttribV10(rkaiq_cac_v10_api_attr_t* att); 46 XCamReturn setAttribV11(const rkaiq_cac_v11_api_attr_t* att); 47 XCamReturn getAttribV11(rkaiq_cac_v11_api_attr_t* att); 48 49 protected: 50 private: 51 mutable std::atomic<bool> updateAttV03; 52 mutable std::atomic<bool> updateAttV10; 53 mutable std::atomic<bool> updateAttV11; 54 rkaiq_cac_v03_api_attr_t mCurAttV03; 55 rkaiq_cac_v03_api_attr_t mNewAttV03; 56 rkaiq_cac_v10_api_attr_t mCurAttV10; 57 rkaiq_cac_v10_api_attr_t mNewAttV10; 58 rkaiq_cac_v11_api_attr_t mCurAttV11; 59 rkaiq_cac_v11_api_attr_t mNewAttV11; 60 }; 61 62 } // namespace RkCam 63 64 #endif // _RK_AIQ_CAMGROUP_ACAC_HANDLE_INT_H_ 65