1 /* 2 * Copyright (c) 2019 Rockchip Corporation 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 */ 17 18 #ifndef _RK_AIQ_H_ 19 #define _RK_AIQ_H_ 20 21 #include "base/xcam_common.h" 22 #include "rk_aiq_types.h" 23 #ifdef ANDROID_OS 24 #include <functional> 25 #endif 26 27 XCAM_BEGIN_DECLARE 28 29 //typedef struct rk_aiq_static_metas_s { 30 //} rk_aiq_static_metas_t; 31 32 typedef enum rk_aiq_status_e { 33 RK_AIQ_STATUS_VICAP_READY = 1, 34 RK_AIQ_STATUS_VICAP_RESET, 35 RK_AIQ_STATUS_VICAP_WITH_MULTI_CAM_RESET, 36 } rk_aiq_status_t; 37 38 typedef struct rk_aiq_metas_s { 39 uint32_t frame_id; 40 } rk_aiq_metas_t; 41 42 typedef struct rk_aiq_multi_cam_s { 43 int multi_cam_id[8]; 44 int cam_count; 45 } rk_aiq_multi_cam_t; 46 47 typedef struct rk_aiq_hwevt_s { 48 int cam_id; 49 int aiq_status; 50 void* ctx; 51 rk_aiq_multi_cam_t multi_cam; 52 } rk_aiq_hwevt_t; 53 54 typedef enum rk_aiq_err_code { 55 UNKNOWN, 56 } rk_aiq_err_code_e; 57 58 typedef struct rk_aiq_err_msg_s { 59 int err_code; 60 } rk_aiq_err_msg_t; 61 62 typedef struct rk_aiq_ver_info_s{ 63 char aiq_ver[16]; 64 char iq_parser_ver[16]; 65 uint32_t iq_parser_magic_code; 66 char awb_algo_ver[16]; 67 char ae_algo_ver[16]; 68 char af_algo_ver[16]; 69 char ahdr_algo_ver[16]; 70 } rk_aiq_ver_info_t; 71 72 typedef XCamReturn (*rk_aiq_error_cb)(rk_aiq_err_msg_t* err_msg); 73 #ifdef ANDROID_OS 74 typedef std::function<XCamReturn(rk_aiq_metas_t* metas)> rk_aiq_metas_cb; 75 #else 76 typedef XCamReturn (*rk_aiq_metas_cb)(rk_aiq_metas_t* metas); 77 #endif 78 typedef XCamReturn (*rk_aiq_hwevt_cb)(rk_aiq_hwevt_t* hwevt); 79 80 typedef enum rk_aiq_cam_type_e { 81 RK_AIQ_CAM_TYPE_SINGLE, 82 RK_AIQ_CAM_TYPE_GROUP, 83 } rk_aiq_cam_type_t; 84 85 typedef struct rk_aiq_iq_buffer_info_s { 86 void *addr; 87 size_t len; 88 } rk_aiq_iq_buffer_info_t; 89 90 typedef enum rk_aiq_prd_type_e { 91 RK_AIQ_PRD_TYPE_NORMAL, 92 RK_AIQ_PRD_TYPE_TB_BATIPC, 93 RK_AIQ_PRD_TYPE_TB_DOORLOCK, 94 } rk_aiq_prd_type_t; 95 96 typedef struct rk_aiq_tb_info_s { 97 uint16_t magic; 98 bool is_pre_aiq; 99 uint8_t prd_type; 100 } rk_aiq_tb_info_t; 101 102 XCAM_END_DECLARE 103 104 #endif 105