#ifndef _AET_API_H_ #define _AET_API_H_ #if defined(__KERNEL__) || defined(__FREERTOS) #include "ae_alg.h" #include "ae_ui.h" #include "ae_nnsc.h" #endif #define AE_CFG_NAME_LENGTH 256 #define AE_DTSI_NAME_LENGTH 256 #define AET_ITEM_NNSC_OFFSET 100 /** AE tuning item */ typedef enum _AET_ITEM { AET_ITEM_VERSION = 0,///< data_type: [Get] UINT32 AET_ITEM_SIZE_TAB, ///< data_type: [Get] AET_INFO AET_ITEM_RLD_CONFIG, ///< data_type: [Set] AET_CFG_INFO AET_ITEM_RLD_DTSI, ///< data_type: [Set] AET_DTSI_INFO AET_ITEM_RESERVE_04, AET_ITEM_RESERVE_05, AET_ITEM_RESERVE_06, AET_ITEM_RESERVE_07, AET_ITEM_RESERVE_08, AET_ITEM_RESERVE_09, AET_ITEM_RESERVE_10 = 10, AET_ITEM_EXT_PARAM, AET_ITEM_FREQUENCY, ///< data_type: [Set/Get] AET_FREQUENCY_MODE AET_ITEM_METER, ///< data_type: [Set/Get] AET_METER_MODE AET_ITEM_EV, ///< data_type: [Set/Get] AET_EV_OFFSET AET_ITEM_ISO = 15,///< data_type: [Set/Get] AET_ISO_VALUE AET_ITEM_SKIP_LA, ///< data_type: [Set/Get] AET_SKIP_LA AET_ITEM_LONGEXP, ///< data_type: [Set/Get] AET_LONGEXP_MODE AET_ITEM_LONGEXP_EXPT, ///< data_type: [Set/Get] AET_LONGEXP_EXPT_VALUE AET_ITEM_LONGEXP_ISO, ///< data_type: [Set/Get] AET_LONGEXP_ISO_VALUE AET_ITEM_OPERATION, ///< data_type: [Set/Get] AET_OPERATION AET_ITEM_DCIRIS, ///< data_type: [Set/Get] AET_DCIRIS AET_ITEM_SHDR_HBS, ///< data_type: [Set/Get] AET_SHDR_HBS AET_ITEM_LA_ROI, ///< data_type: [Set/Get] AET_LA_ROI AET_ITEM_AFD_PARAM, ///< data_type: [Set/Get] AET_AFD_PARAM AET_ITEM_AFD_TRIGGER, ///< data_type: [Set/Get] AET_AFD_TRIGGER AET_ITEM_AFD_DETECT_RESULT, ///< data_type: [Set/Get] AET_AFD_DETECT_RESULT AET_ITEM_AFD_UNDERTERMINED_FREQ, ///< data_type: [Set/Get] AET_AFD_UNDETERMINED_FREQ AET_ITEM_STITCH_ID, ///< data_type: [Set/Get] AET_STITCH_ID AET_ITEM_APERTURE_BOUND, ///< data_type: [Set/Get] AET_APERTURE_BOUND AET_ITEM_BASE_ISO = 30,///< data_type: [Set/Get] UINT32 AET_ITEM_BASE_GAIN_RATIO, ///< data_type: [Set/Get] UINT32 AET_ITEM_EXPECT_LUM, ///< data_type: [Set/Get] AET_EXPECT_LUM AET_ITEM_LA_CLAMP, ///< data_type: [Set/Get] AET_LA_CLAMP AET_ITEM_OVER_EXPOSURE, ///< data_type: [Set/Get] AET_OVER_EXPOSURE AET_ITEM_CONVERGENCE = 35,///< data_type: [Set/Get] AET_CONVERGENCE AET_ITEM_CURVE_GEN_MOVIE, ///< data_type: [Set/Get] AET_CURVE_GEN_MOVIE AET_ITEM_METER_WIN, ///< data_type: [Set/Get] AET_METER_WINDOW AET_ITEM_LUM_GAMMA, ///< data_type: [Set/Get] AET_LUM_GAMMA AET_ITEM_SHDR, ///< data_type: [Set/Get] AET_SHDR AET_ITEM_IRIS_CFG = 40,///< data_type: [Set/Get] AET_IRIS_CFG AET_ITEM_CURVE_GEN_PHOTO, ///< data_type: [Set/Get] AET_CURVE_GEN_PHOTO AET_ITEM_MANUAL, ///< data_type: [Set/Get] AET_MANUAL AET_ITEM_STATUS, ///< data_type: [Get] AET_STATUS_INFO AET_ITEM_PRIORITY, ///< data_type: [Set/Get] AET_PRIORITY AET_ITEM_ROI_WIN = 45,///< data_type: [Set/Get] AET_ROI_WIN AET_ITEM_SMART_IR, ///< data_type: [Set/Get] AET_SMART_IR AET_ITEM_EXPT_BOUND, ///< data_type: [Set/Get] AET_EXPT_BOUND AET_ITEM_GAIN_BOUND, ///< data_type: [Set/Get] AET_GAIN_BOUND AET_ITEM_LA_WIN, ///< data_type: [Set/Get] AET_LA_WIN AET_ITEM_RESERVE_50, AET_ITEM_RESERVE_51, AET_ITEM_RESERVE_52, AET_ITEM_RESERVE_53, AET_ITEM_RESERVE_54, AET_ITEM_RESERVE_55, AET_ITEM_RESERVE_56, AET_ITEM_RESERVE_57, AET_ITEM_RESERVE_58, AET_ITEM_RESERVE_59, AET_ITEM_MAX = 60, AET_ITEM_NNSC_EXP_RATIO = AET_ITEM_NNSC_OFFSET,///< data_type: [Set/Get] AET_EXP_RATIO AET_ITEM_NNSC_RESERVE_101, AET_ITEM_NNSC_RESERVE_102, AET_ITEM_NNSC_RESERVE_103, AET_ITEM_NNSC_RESERVE_104, AET_ITEM_NNSC_RESERVE_105, AET_ITEM_NNSC_RESERVE_106, AET_ITEM_NNSC_RESERVE_107, AET_ITEM_NNSC_RESERVE_108, AET_ITEM_NNSC_RESERVE_109, AET_ITEM_NNSC_MAX = 110, ENUM_DUMMY4WORD(AET_ITEM) } AET_ITEM; typedef struct AET_INFO { UINT32 size_tab[AET_ITEM_MAX][2]; } AET_INFO; typedef struct _AET_CFG_INFO { AE_ID id; CHAR path[AE_CFG_NAME_LENGTH]; } AET_CFG_INFO; typedef struct _AET_DTSI_INFO { AE_ID id; CHAR node_path[AE_DTSI_NAME_LENGTH]; CHAR file_path[AE_DTSI_NAME_LENGTH]; UINT8 *buf_addr; } AET_DTSI_INFO; typedef struct _AET_FREQUENCY_MODE { UINT32 id; AE_FREQUENCY mode; } AET_FREQUENCY_MODE; typedef struct _AET_METER_MODE { UINT32 id; AE_METER mode; } AET_METER_MODE; typedef struct _AET_EV_OFFSET { UINT32 id; AE_EV offset; } AET_EV_OFFSET; typedef struct _AET_ISO_VALUE { UINT32 id; AE_ISO value; } AET_ISO_VALUE; typedef struct _AET_LONGEXP_MODE { UINT32 id; AE_CAP_LONGEXP mode; } AET_LONGEXP_MODE; typedef struct _AET_LONGEXP_EXPT_VALUE { UINT32 id; UINT32 value; } AET_LONGEXP_EXPT_VALUE; typedef struct _AET_LONGEXP_ISO_VALUE { UINT32 id; UINT32 value; } AET_LONGEXP_ISO_VALUE; typedef struct _AET_OPERATION { UINT32 id; AE_OPERATION operation; } AET_OPERATION; typedef struct _AET_BASE_ISO { AE_ID id; UINT32 base_iso; } AET_BASE_ISO; typedef struct _AET_BASE_GAIN_RATIO { AE_ID id; UINT32 base_gain_ratio; } AET_BASE_GAIN_RATIO; typedef struct _AET_EXPECT_LUM { AE_ID id; AE_EXPECT_LUM expect_lum; } AET_EXPECT_LUM; typedef struct _AET_LA_CLAMP { AE_ID id; AE_LA_CLAMP la_clamp; } AET_LA_CLAMP; typedef struct _AET_OVER_EXPOSURE { AE_ID id; AE_OVER_EXPOSURE over_exposure; } AET_OVER_EXPOSURE; typedef struct _AET_CONVERGENCE { AE_ID id; AE_CONVERGENCE convergence; } AET_CONVERGENCE; typedef struct _AET_CURVE_GEN_MOVIE { AE_ID id; AE_CURVE_GEN_MOVIE curve_gen_movie; } AET_CURVE_GEN_MOVIE; typedef struct _AET_EXTEND_PARAM { AE_ID id; AE_EXTEND_PARAM ext_param; } AET_EXTEND_PARAM; typedef struct _AET_METER_WINDOW { AE_ID id; AE_METER_WINDOW meter_window; } AET_METER_WINDOW; typedef struct _AET_LUM_GAMMA { AE_ID id; AE_LUM_GAMMA lum_gamma; } AET_LUM_GAMMA; typedef struct _AET_SHDR { AE_ID id; AE_SHDR shdr; } AET_SHDR; typedef struct _AET_IRIS_CFG { AE_ID id; AE_IRIS_CFG iris_cfg; } AET_IRIS_CFG; typedef struct _AET_CURVE_GEN_PHOTO { AE_ID id; AE_CURVE_GEN_PHOTO curve_gen_photo; } AET_CURVE_GEN_PHOTO; typedef struct _AET_MANUAL { AE_ID id; AE_MANUAL manual; } AET_MANUAL; typedef struct _AET_STATUS_INFO { AE_ID id; AE_STATUS_INFO status_info; } AET_STATUS_INFO; typedef struct _AET_PRIORITY { AE_ID id; UINT32 expt; UINT32 iso; UINT32 aperture; } AET_PRIORITY; typedef struct _AET_ROI_WIN { AE_ID id; AE_ROI_WIN roi_win; } AET_ROI_WIN; typedef struct _AET_SMART_IR { AE_ID id; AE_SMART_IR_WEIGHT weight; } AET_SMART_IR; typedef struct _AET_EXPT_BOUND { AE_ID id; AE_BOUNDARY bound; } AET_EXPT_BOUND; typedef struct _AET_GAIN_BOUND { AE_ID id; AE_BOUNDARY bound; } AET_GAIN_BOUND; typedef struct _AET_LA_WIN { AE_ID id; AE_LA_WIN la_win; } AET_LA_WIN; typedef struct _AET_APERTURE_BOUND { AE_ID id; AE_APERTURE_BOUND aperture_bound; } AET_APERTURE_BOUND; typedef struct _AET_STITCH_ID { AE_ID id; UINT32 stitch_id; } AET_STITCH_ID; typedef struct _AET_AFD_TRIGGER { AE_ID id; AE_AFD_TRIGGER afd_trigger_type; } AET_AFD_TRIGGER; typedef struct _AET_AFD_DETECT_RESULT { AE_ID id; UINT32 afd_detect_result; } AET_AFD_DETECT_RESULT; typedef struct _AET_AFD_UNDETERMINED_FREQ { AE_ID id; AE_FLICKER afd_undetermined_freq; } AET_AFD_UNDETERMINED_FREQ; typedef struct _AET_AFD_PARAM { AE_ID id; AE_AFD_PARAM afd_param; } AET_AFD_PARAM; typedef struct _AET_DCIRIS { AE_ID id; } AET_DCIRIS; typedef struct _AET_SHDR_HBS { AE_ID id; AE_SHDR_HBS shdr_hbs; } AET_SHDR_HBS; // Struct of NNSC Parameter typedef struct AET_NNSC_INFO { UINT32 size_tab[AET_ITEM_NNSC_MAX - AET_ITEM_NNSC_OFFSET][2]; } AET_NNSC_INFO; typedef struct _AET_EXP_RATIO { AE_ID id; AE_NNSC_EXP_RATIO ratio; } AET_EXP_RATIO; typedef struct _AET_LA_ROI { AE_ID id; URECT la_roi; } AET_LA_ROI; typedef struct _AET_SKIP_LA { AE_ID id; UINT32 skip_la; } AET_SKIP_LA; #endif