⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msapi_vd.h

📁 mstar 776 开发的车载dvd
💻 H
字号:
#ifndef MSAPI_VD_H
#define MSAPI_VD_H

#include "Bin_ID.h"
#include "drvvd.h"

/********************************************************************************/
/*      			   Macro					*/
/* ******************************************************************************/

#define VD_INPUT_STABLE_COUNT    25
#define ATV_INPUT_STABLE_COUNT   25

//*************************************************************************
//      	Enums
//*************************************************************************
typedef enum
{
    VD_BIN_SEL_AUTO = BIN_ID_CODE_VD_DSP,
    VD_BIN_SEL_NTSC = BIN_ID_CODE_VD_DSP_NTSC,
    VD_BIN_SEL_PAL  = BIN_ID_CODE_VD_DSP,
} VD_BIN_SEL_TYPE;

//*************************************************************************
//      	Structures
//*************************************************************************

#ifdef MSAPI_VD_C
#define INTERFACE
#else
#define INTERFACE extern
#endif

typedef enum
{
    VD_STATE_NONE,
    VD_STATE_STABLE,
    VD_STATE_UNSTABLE_0,
    VD_STATE_UNSTABLE_1,
    VD_STATE_SET_MODE_SYNC,
    VD_STATE_SET_MODE_NO_SYNC,
} EN_VD_TIMING_MONITOR_STATE;

/********************************************************************************/
/*      			 Function Prototypes     				*/
/********************************************************************************/

INTERFACE void msAPI_VD_BIN_Select (VD_BIN_SEL_TYPE vdBinSel);
INTERFACE void msAPI_VD_Init ( void );
INTERFACE void msAPI_VD_InitVariable();
INTERFACE void msAPI_VD_ChangeSource ( MS_SYS_INFO *penMsSysInfo );
INTERFACE void msAPI_VD_SetRegFromDSP ( void );
INTERFACE U16 msAPI_VD_GetStatus ( void );
INTERFACE BOOLEAN msAPI_VD_IsSyncLock( void );
INTERFACE EN_VD_TIMING_MONITOR_STATE msAPI_VD_TimingMonitor( void );
INTERFACE U16  msAPI_VD_GetWSS( void );

INTERFACE U8 msAPI_VD_GetVideoSystem( U16 u16VideoStatus );
#if 1
INTERFACE U16 msAPI_VD_ChkStatusLoop(void);
#else
INTERFACE U16 msAPI_VD_ChkStatusLoop(U16 u16StableCount, U16 u16MaxCheckTimer);
#endif
INTERFACE U16 msAPI_VD_GetHWHSYNC( void );
INTERFACE U8 msAPI_VD_CheckIsTVSys( void );
INTERFACE void msAPI_VD_ProgramDiffField ( EN_VD_SIGNALTYPE enSignalType, MS_SYS_INFO *penMsSysInfo );
INTERFACE void msAPI_VD_MonitorSignal(MS_SYS_INFO *penMsSysInfo, EN_ASPECT_RATIO_TYPE VideoScreen);
INTERFACE U16 msAPI_VD_GetVTotal(void);
INTERFACE void msAPI_VD_Parameter_Initial(void);

INTERFACE void msAPI_EnableOutputVideo(MS_SYS_INFO *penMsSysInfo);
//LACHESIS_070110
INTERFACE void msAPI_VD_SetBlacklevel( U16 u16Blacklevel );
INTERFACE void msAPI_VD_SetRegister(U16 reg_offset, U8 value, U8 bit_mask);


/* H sensitivity related APIs */
#define msAPI_VD_Hsen_Set_Detect_Win(u8DetectWinBeforeLock, u8DetectWinAfterLock)   MDrv_VD_Hsen_Set_Detect_Win(u8DetectWinBeforeLock, u8DetectWinAfterLock)
#define msAPI_VD_Hsen_Set_Cntr_Before_Lock(u8CntrFail, u8CntrSync)                  MDrv_VD_Hsen_Set_Cntr_Before_Lock(u8CntrFail, u8CntrSync)
#define msAPI_VD_Hsen_Set_Cntr_After_Lock(u8CntrSync)                               MDrv_VD_Hsen_Set_Cntr_After_Lock(u8CntrSync)

/* H/V slice level related APIs */
typedef enum
{
    VD_SLICE_MODE_V_MANUAL = 1,
    VD_SLICE_MODE_H_MANUAL = 2,
} VD_SLICE_MODE_TYPE;

typedef enum
{
    VD_SLICE_LEVEL_2_8 = 0,
    VD_SLICE_LEVEL_4_8 = 1,
    VD_SLICE_LEVEL_5_8 = 2,
    VD_SLICE_LEVEL_6_8 = 3,
} VD_SLICE_LEVEL_TYPE;

#define msAPI_VD_Slice_Set_Mode(u8SliceMode) MDrv_VD_Slice_Set_Mode(u8SliceMode)
#define msAPI_VD_Slice_Set_V_Level(u8VLevel) MDrv_VD_Slice_Set_V_Level(u8VLevel)
#define msAPI_VD_Slice_Set_H_Level(u8HLevel) MDrv_VD_Slice_Set_H_Level(u8HLevel)

/* AGC related APIs */
typedef enum
{
    VD_AGC_MODE_AUTO_0 = 0,
    VD_AGC_MODE_AUTO_1 = 1,
    VD_AGC_MODE_AUTO_2 = 2,
    VD_AGC_MODE_MANUAL = 3,     // manual mode
} VD_AGC_MODE_TYPE;

typedef enum
{
    VD_AGC_COARSE_GAIN_X_0_5 = 0,   // x0.5
    VD_AGC_COARSE_GAIN_X_1   = 1,   // x1
    VD_AGC_COARSE_GAIN_X_2   = 2,   // x2
    VD_AGC_COARSE_GAIN_X_4   = 3,   // x4
} VD_AGC_COARSE_GAIN_TYPE;

typedef U16 VD_AGC_FINE_GAIN_TYPE;      // the value decrease and the gain increase
#define VD_AGC_FINE_GAIN_X_2    0x500   // x2
#define VD_AGC_FINE_GAIN_X_1    0xE00   // x1

#define msAPI_VD_AGC_Set_Mode(u8AgcMode)                MDrv_VD_AGC_Set_Mode(u8AgcMode)
#define msAPI_VD_AGC_Set_Coarse_Gain(u8AgcCoarseGain)   MDrv_VD_AGC_Set_Coarse_Gain(u8AgcCoarseGain)
#define msAPI_VD_AGC_Set_Fine_Gain(u16AgcFineGain)      MDrv_VD_AGC_Set_Fine_Gain(u16AgcFineGain)

/* Color kill level control related APIs */
typedef enum
{
    VD_COLOR_KILL_LEVEL_2_PERCENT = 0x10,
    VD_COLOR_KILL_LEVEL_3_PERCENT = 0x20,
    VD_COLOR_KILL_LEVEL_4_PERCENT = 0x30,
    VD_COLOR_KILL_LEVEL_5_PERCENT = 0x50,
    VD_COLOR_KILL_LEVEL_6_PERCENT = 0x70,
    VD_COLOR_KILL_LEVEL_7_PERCENT = 0x90,
    VD_COLOR_KILL_LEVEL_8_PERCENT = 0xD0,
    VD_COLOR_KILL_LEVEL_9_PERCENT = 0xFF,
} VD_COLOR_KILL_LEVEL_TYPE;

#define msAPI_VD_Color_Kill_Level(u8ColorKillLevel)     MDrv_VD_Color_Kill_Level(u8ColorKillLevel)

#undef INTERFACE

#endif /* MSAPI_VD_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -