123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /******************************************************************************
- Copyright (C), 2016, Hisilicon Tech. Co., Ltd.
- ******************************************************************************
- File Name : hi_sns_ctrl.h
- Version : Initial Draft
- Author : Hisilicon multimedia software group
- Created : 2011/01/10
- Description :
- History :
- 1.Date : 2011/01/10
- Author :
- Modification: Created file
- ******************************************************************************/
- #ifndef __HI_SNS_CTRL_H__
- #define __HI_SNS_CTRL_H__
- #include "hi_type.h"
- #include "hi_comm_3a.h"
- #ifdef __cplusplus
- #if __cplusplus
- extern "C" {
- #endif
- #endif /* End of #ifdef __cplusplus */
- typedef struct hiISP_SNS_STATE_S
- {
- HI_BOOL bInit; /* HI_TRUE: Sensor init */
- HI_BOOL bSyncInit; /* HI_TRUE: Sync Reg init */
- HI_U8 u8ImgMode;
- HI_U8 u8Hdr; /* HI_TRUE: HDR enbale */
- WDR_MODE_E enWDRMode;
- ISP_SNS_REGS_INFO_S astRegsInfo[2]; /* [0]: Sensor reg info of cur-frame; [1]: Sensor reg info of pre-frame ; */
- HI_U32 au32FL[2]; /* [0]: FullLines of cur-frame; [1]: Pre FullLines of pre-frame */
- HI_U32 u32FLStd; /* FullLines std */
- HI_U32 au32WDRIntTime[4];
- } ISP_SNS_STATE_S;
- typedef struct hiISP_SNS_OBJ_S
- {
- HI_S32 (*pfnRegisterCallback)(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib, ALG_LIB_S *pstAwbLib);
- HI_S32 (*pfnUnRegisterCallback)(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib, ALG_LIB_S *pstAwbLib);
- HI_S32 (*pfnSetBusInfo)(VI_PIPE ViPipe, ISP_SNS_COMMBUS_U unSNSBusInfo);
- HI_VOID (*pfnStandby)(VI_PIPE ViPipe);
- HI_VOID (*pfnRestart)(VI_PIPE ViPipe);
- HI_S32 (*pfnWriteReg)(VI_PIPE ViPipe, HI_S32 s32Addr, HI_S32 s32Data);
- HI_S32 (*pfnReadReg)(VI_PIPE ViPipe, HI_S32 s32Addr);
- HI_S32 (*pfnSetInit)(VI_PIPE ViPipe, ISP_INIT_ATTR_S *pstInitAttr);
- } ISP_SNS_OBJ_S;
- extern ISP_SNS_OBJ_S stSnsMn34220Obj;
- extern ISP_SNS_OBJ_S stSnsImx377Obj;
- extern ISP_SNS_OBJ_S stSnsImx299Obj;
- extern ISP_SNS_OBJ_S stSnsImx477Obj;
- extern ISP_SNS_OBJ_S stSnsImx299SlvsObj;
- extern ISP_SNS_OBJ_S stSnsImx290Obj;
- extern ISP_SNS_OBJ_S stSnsImx334Obj;
- extern ISP_SNS_OBJ_S stSnsOV2718Obj;
- extern ISP_SNS_OBJ_S stSnsCmv50000Obj;
- extern ISP_SNS_OBJ_S stSnsImx277SlvsObj;
- extern ISP_SNS_OBJ_S stSnsImx117Obj;
- extern ISP_SNS_OBJ_S stSnsImx290SlaveObj;
- extern ISP_SNS_OBJ_S stSnsImx334SlaveObj;
- #define CMOS_CHECK_POINTER(ptr)\
- do {\
- if (HI_NULL == ptr)\
- {\
- ISP_TRACE(HI_DBG_ERR, "Null Pointer!\n");\
- return HI_ERR_ISP_NULL_PTR;\
- }\
- }while(0)
- #define CMOS_CHECK_POINTER_VOID(ptr)\
- do {\
- if (HI_NULL == ptr)\
- {\
- ISP_TRACE(HI_DBG_ERR, "Null Pointer!\n");\
- return;\
- }\
- }while(0)
- #define SENSOR_FREE(ptr)\
- do{\
- if (HI_NULL != ptr)\
- {\
- free(ptr);\
- ptr = HI_NULL;\
- }\
- } while (0)
- #ifdef __cplusplus
- #if __cplusplus
- }
- #endif
- #endif /* End of #ifdef __cplusplus */
- #endif /* __HI_SNS_CTRL_H__ */
|