1 #ifndef __CAC_HEAD_H__ 2 #define __CAC_HEAD_H__ 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #include <stdint.h> 9 10 #define RKCAC_PSF_RADIUS_X 3 11 #define RKCAC_PSF_RADIUS_Y 2 12 #define RKCAC_STRENGTH_TABLE_LEN 22 13 #define RKCAC_SQRT_TABLE_LEN 25 14 #define RKCAC_MAX_PATH_LEN 255 15 #define RKCAC_MAX_ISO_LEVEL 14 16 17 typedef enum CalibDbV2_Cac_ClipGMode_e { 18 RKAIQ_CAC_CLIP_G_MODE_NONE, 19 RKAIQ_CAC_CLIP_G_MODE_MINIMAL, 20 RKAIQ_CAC_CLIP_G_MODE_AVERAGE, 21 } CalibDbV2_Cac_ClipGMode_t; 22 23 // clang-format off 24 typedef struct CalibDbV2_Cac_V03_SettingByIso_s { 25 // M4_NUMBER_MARK_DESC("iso", "u32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index1") 26 uint32_t iso; 27 // M4_BOOL_DESC("bypass", "0") 28 bool bypass; 29 // M4_BOOL_DESC("AutoHighLightDetect", "0") 30 bool AutoHighLightDetect; 31 // M4_NUMBER_DESC("AutoHighLightOffset", "u8", M4_RANGE(0,127), "0", M4_DIGIT(0), M4_HIDE(0)) 32 uint8_t AutoHighLightOffset; 33 // M4_NUMBER_DESC("FixHighLightBase", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0), M4_HIDE(0)) 34 uint8_t FixHighLightBase; 35 // M4_NUMBER_DESC("YCompensate", "f32", M4_RANGE(0, 1.00), "0.0", M4_DIGIT(2), M4_HIDE(0)) 36 float YCompensate; 37 // M4_NUMBER_DESC("AutoStrengthU", "f32", M4_RANGE(0, 1.00), "0.0", M4_DIGIT(2), M4_HIDE(0)) 38 float AutoStrengthU; 39 // M4_NUMBER_DESC("AutoStrengthV", "f32", M4_RANGE(0, 1.00), "0.0", M4_DIGIT(2), M4_HIDE(0)) 40 float AutoStrengthV; 41 // M4_NUMBER_DESC("GrayStrengthU", "f32", M4_RANGE(0, 1.00), "0.0", M4_DIGIT(2), M4_HIDE(0)) 42 float GrayStrengthU; 43 // M4_NUMBER_DESC("GrayStrengthV", "f32", M4_RANGE(0, 1.00), "0.0", M4_DIGIT(2), M4_HIDE(0)) 44 float GrayStrengthV; 45 } CalibV2_Cac_V03_SettingByIso_t; 46 47 typedef struct CalibDbV2_Cac_V10_SettingByIso_s { 48 // M4_NUMBER_MARK_DESC("iso", "u32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index1") 49 uint32_t iso; 50 // M4_BOOL_DESC("bypass", "0") 51 bool bypass; 52 // M4_NUMBER_DESC("global_strength", "f32", M4_RANGE(0, 16.00), "0.0", M4_DIGIT(4), M4_HIDE(0)) 53 float global_strength; 54 // M4_ARRAY_DESC("strength_table", "f32", M4_SIZE(1,22), M4_RANGE(0.00, 16.00), "1.00", M4_DIGIT(4), M4_DYNAMIC(0)) 55 float strength_table[RKCAC_STRENGTH_TABLE_LEN]; 56 } CalibV2_Cac_V10_SettingByIso_t; 57 58 typedef struct CalibDbV2_Cac_V11_SettingByIso_s { 59 // M4_NUMBER_MARK_DESC("iso", "u32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index1") 60 uint32_t iso; 61 // M4_BOOL_DESC("bypass", "0") 62 bool bypass; 63 // M4_NUMBER_DESC("global_strength", "f32", M4_RANGE(0, 16.00), "0.00", M4_DIGIT(4), M4_HIDE(0)) 64 float global_strength; 65 // M4_ARRAY_DESC("strength_table", "f32", M4_SIZE(1,22), M4_RANGE(0.00, 16.00), "1.00", M4_DIGIT(4), M4_DYNAMIC(0)) 66 float strength_table[RKCAC_STRENGTH_TABLE_LEN]; 67 // M4_ENUM_DESC("clip_g_mode", "CalibDbV2_Cac_ClipGMode_t","RKAIQ_CAC_CLIP_G_MODE_NONE,") 68 CalibDbV2_Cac_ClipGMode_t clip_g_mode; 69 // M4_BOOL_DESC("neg_clip0_enable", "0") 70 bool neg_clip0_enable; 71 // M4_BOOL_DESC("edge_detect_en", "0") 72 bool edge_detect_en; 73 // M4_NUMBER_DESC("flat_thed_b", "f32", M4_RANGE(0,1.00), "0", M4_DIGIT(2),M4_HIDE(0)) 74 float flat_thed_b; 75 // M4_NUMBER_DESC("flat_thed_r", "f32", M4_RANGE(0,1.00), "0", M4_DIGIT(2),M4_HIDE(0)) 76 float flat_thed_r; 77 // M4_NUMBER_DESC("offset_b", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0)) 78 uint32_t offset_b; 79 // M4_NUMBER_DESC("offset_r", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0)) 80 uint32_t offset_r; 81 // M4_BOOL_DESC("expo_det_b_en", "0") 82 bool expo_det_b_en; 83 // M4_BOOL_DESC("expo_det_r_en", "0") 84 bool expo_det_r_en; 85 // M4_NUMBER_DESC("expo_thed_b", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0)) 86 uint32_t expo_thed_b; 87 // M4_NUMBER_DESC("expo_thed_r", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0)) 88 uint32_t expo_thed_r; 89 // M4_NUMBER_DESC("expo_adj_b", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0)) 90 uint32_t expo_adj_b; 91 // M4_NUMBER_DESC("expo_adj_r", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0)) 92 uint32_t expo_adj_r; 93 } CalibV2_Cac_V11_SettingByIso_t; 94 95 typedef struct CalibDbV2_Cac_V03_TuningPara_s { 96 // M4_STRUCT_LIST_DESC("SettingByIso", M4_SIZE(1,14), "normal_ui_style") 97 CalibV2_Cac_V03_SettingByIso_t* SettingByIso; 98 int SettingByIso_len; 99 } CalibDbV2_Cac_V03_TuningPara_t; 100 101 typedef struct CalibDbV2_Cac_V10_TuningPara_s { 102 // M4_STRUCT_LIST_DESC("SettingByIso", M4_SIZE(1,14), "normal_ui_style") 103 CalibV2_Cac_V10_SettingByIso_t* SettingByIso; 104 int SettingByIso_len; 105 } CalibDbV2_Cac_V10_TuningPara_t; 106 107 typedef struct CalibDbV2_Cac_V11_TuningPara_s { 108 // M4_STRUCT_LIST_DESC("SettingByIso", M4_SIZE(1,14), "normal_ui_style") 109 CalibV2_Cac_V11_SettingByIso_t* SettingByIso; 110 int SettingByIso_len; 111 } CalibDbV2_Cac_V11_TuningPara_t; 112 113 typedef struct CalibDbV2_Cac_SettingPara_s { 114 // M4_BOOL_DESC("enable", "0") 115 bool enable; 116 // M4_STRING_DESC("psf_path", M4_SIZE(1,1), M4_RANGE(0, 255), "/etc/iqfiles/cac_map.bin", M4_DYNAMIC(0)) 117 char psf_path[RKCAC_MAX_PATH_LEN]; 118 // M4_NUMBER_DESC("psf_shift_bits", "u8", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0)) 119 uint8_t psf_shift_bits; 120 // M4_BOOL_DESC("center_en", "0") 121 uint8_t center_en; 122 // M4_NUMBER_DESC("center_x", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0)) 123 uint16_t center_x; 124 // M4_NUMBER_DESC("center_y", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0)) 125 uint16_t center_y; 126 } CalibDbV2_Cac_SettingPara_t; 127 128 typedef struct CalibDbV2_Cac_V03_SettingPara_s { 129 // M4_BOOL_DESC("enable", "0") 130 bool enable; 131 } CalibDbV2_Cac_V03_SettingPara_t; 132 133 typedef struct CalibDbV2_Cac_V03_s { 134 // M4_STRUCT_DESC("SettingPara", "normal_ui_style") 135 CalibDbV2_Cac_V03_SettingPara_t SettingPara; 136 // M4_STRUCT_DESC("TuningPara", "normal_ui_style") 137 CalibDbV2_Cac_V03_TuningPara_t TuningPara; 138 } CalibDbV2_Cac_V03_t; 139 140 typedef struct CalibDbV2_Cac_V10_s { 141 // M4_STRUCT_DESC("SettingPara", "normal_ui_style") 142 CalibDbV2_Cac_SettingPara_t SettingPara; 143 // M4_STRUCT_DESC("TuningPara", "normal_ui_style") 144 CalibDbV2_Cac_V10_TuningPara_t TuningPara; 145 } CalibDbV2_Cac_V10_t; 146 147 typedef struct CalibDbV2_Cac_V11_s { 148 // M4_STRUCT_DESC("SettingPara", "normal_ui_style") 149 CalibDbV2_Cac_SettingPara_t SettingPara; 150 // M4_STRUCT_DESC("TuningPara", "normal_ui_style") 151 CalibDbV2_Cac_V11_TuningPara_t TuningPara; 152 } CalibDbV2_Cac_V11_t; 153 154 // clang-format on 155 156 #ifdef __cplusplus 157 } 158 #endif 159 160 #endif 161