📄 drvanalog_datatype.h
字号:
_1280x768,
_1360x768,
_1366x768,
} EN_PC_768_MODE;
typedef enum
{
_1400x1050,
_1680x1050,
} EN_PC_1050_MODE;
// Auto type
typedef enum
{
AUTO_TUNE_NULL = 0x00,
// Basic auto-tune
AUTO_TUNE_VALID_DATA = _BIT0,
AUTO_TUNE_POSITION = _BIT1,
AUTO_TUNE_FREQ = _BIT2,
AUTO_TUNE_PHASE = _BIT3,
AUTO_TUNE_BASIC = _BIT0 | _BIT1 | _BIT2 | _BIT3,
// Auto-tune RGB Color
AUTO_TUNE_RGB_OFFSET = _BIT4,
AUTO_TUNE_RGB_GAIN = _BIT5,
AUTO_TUNE_RGB_COLOR = _BIT4 | _BIT5,
// Auto-tune YUV Color
AUTO_TUNE_YUV_COLOR = _BIT6,
// Advance auto-tune
AUTO_TUNE_ADVANCE = _BIT0 | _BIT1 | _BIT2 | _BIT3 | _BIT4 | _BIT5
} EN_AUTO_TUNE_TYPE;
///
/// color standard select
typedef enum
{
SIG_NTSC, ///< NTSC
SIG_PAL, ///< PAL
SIG_SECAM, ///< SECAM
SIG_NTSC_443, ///< NTSC 443
SIG_PAL_M, ///< PAL M
SIG_PAL_NC, ///< PAL NC
SIG_NUMS, ///< signal numbers
SIG_NONE = -1
}EN_VD_SIGNALTYPE;
typedef enum
{
NOISE_OFF,
NOISE_WEAK,
NOISE_NORMAL,
NOISE_STRONG,
NOISE_VIDEO_MAX
}EN_NOISE_INDEX_TYPE;
/// Video screen type
#define VIDEOSCREEN_NUM VIDEOSCREEN_NUMS-1
#define PCSCREEN_NUM VIDEOSCREEN_WIDE
///
typedef struct
{
EN_RESOLUTION_TYPE enResolutionIndex; // resolution
U16 u16HorizontalFrequency; // H/V frequency
U16 u16VerticalFrequency;
U16 u16HorizontalStart; // H/V start
U16 u16VerticalStart;
U16 u16HorizontalTotal; // H/V total
U16 u16VerticalTotal;
U8 u8VTotalTolerance; // VTotal tolerance
U8 u8AdcPhase; // ADC phase
U8 u8StatusFlag; // flags
// b0: VSync polarity(1/0 = positive/negative)
// b1: HSync polarity(1/0 = positive/negative)
// b2: Sync polarity care bit
// b4: interlace mode
}MS_PCADC_MODETABLE_TYPE;
/// PC ADC Mode setting type
typedef struct
{
U8 u8ModeIndex; ///< mode index
U16 u16HorizontalStart; ///< horizontal start
U16 u16VerticalStart; ///< vertical start
U16 u16HorizontalTotal; ///< ADC horizontal total
U8 u8Phase; ///< ADC phase
U16 u16DefaultHStart; ///< default horizontal start
U16 u16DefaultVStart;
U16 u16DefaultHTotal; ///< default horizontal total
U8 u8SyncStatus; ///< sync status
U8 u8AutoSign; ///<Auto tune time
}MS_PCADC_MODESETTING_TYPE;
typedef struct
{
U16 u16SRHStart; // H capture start
U16 u16SRVStart; // V capture start
U16 u16HRange; // H capture range
U16 u16VRange; // V capture range
U8 u8HOverscan; // H over scan
U8 u8VOverscan; // V over scan
} MS_VIDEO_CAPTUREWINTABLE_TYPE;
// Define input port type
typedef struct
{
U16 u16H_DisStart;
U16 u16V_DisStart;
U16 u16H_DisEnd;
U16 u16V_DisEnd;
}MS_TUNE_WINDOW_INFO, *PMS_TUNE_WINDOW_INFO;
typedef enum
{
MS_3D_NR_OFF = 0,
MS_3D_NR_LOW = 1,
MS_3D_NR_MID = 2,
MS_3D_NR_HIGH = 3,
}MS_3D_NR_FUNCTION_TYPE;
//============ TIME =========================================================
/// MStar VOP Timing structure
typedef struct
{
U16 u16V_TotalCount; ///< Vertical total count
U16 u16H_TotalCount; ///< Horizontal total count
U16 u16VBlank0_Start; ///< Vertical blank 0 start
U16 u16VBlank0_End; ///< Vertical blank 0 End
U16 u16VBlank1_Start; ///< Vertical blank 1 start
U16 u16VBlank1_End; ///< Vertical blank 1 End
U16 u16TopField_Start; ///< Top field start
U16 u16BottomField_Start; ///< bottom field start
U16 u16HActive_Start; ///< Horizontal disaply start
U8 u8VSync_Offset; ///< Vertical sync offset
BOOLEAN bInterlace; ///< interlace or not
U8 u8Framerate; ///< frame rate
U16 u16H_Freq ; ///< horizontal frequency
U16 u16Num; ///< VOP SYNTHESIZER numerator
U16 u16Den; ///< VOP SYNTHESIZER denumerator
U8 u8MvdFRCType; ///<flag for frame rate convert
U16 u16ExpFrameRate;
U16 u16Width;
U16 u16Height;
} MS_VOP_TIMING;
typedef enum
{
TUNER_SOUND_AUTO,
TUNER_SOUND_BG,
TUNER_SOUND_I,
TUNER_SOUND_DK,
TUNER_SOUND_L,
TUNER_SOUND_LL,
TUNER_SOUND_M,
TUNER_SOUND_NUMS
} EnuTunerSoundSystem;
typedef enum
{
#if (TV_SYSTEM == TV_NTSC)
SOUND_MTS_MONO,
SOUND_MTS_STEREO,
SOUND_MTS_SAP,
#elif ( TV_SYSTEM == TV_PAL )
SOUND_MTS_MONO,
SOUND_MTS_STEREO,
SOUND_MTS_I,
SOUND_MTS_II,
#endif
SOUND_MTS_NUM,
SOUND_MTS_LANG_AB,
SOUND_MTS_NICAM,
SOUND_MTS_AUTO,
SOUND_MTS_NONE
}EN_SOUND_MTS_TYPE;
typedef enum
{
SOUND_SOURCE_MAIN,
SOUND_SOURCE_SUB,
SOUND_SOURCE_NUMS
} EN_SOUND_SOURCE;
///Get sync type
typedef enum
{
GET_SYNC_DIRECTLY, ///< 0:get sync directly
GET_SYNC_STABLE, ///< 1:get sync stable
GET_SYNC_VIRTUAL, ///< 2: get sync virtually
} EN_GET_SYNC_TYPE;
#define VIDEO_POLLING_FLAG_DOMODE_SETTING _BIT0
#define VIDEO_POLLING_FLAG_MUTE _BIT1
#define VIDEO_POLLING_FLAG_MODE_DONE _BIT2
//------------------------------------------------------------------------------
// TvEncoder
//
typedef enum
{
MS_SCALER_DEST_PANEL,
MS_SCALER_DEST_TVENCODER,
}MS_SCALER_DEST_TYPE;
typedef struct
{
U32 PreHScalingRatio;
U32 PreVScalingRatio;
U32 PostHScalingRatio;
U32 PostVScalingRatio;
}MS_TVENCODER_BACKUP_REG, *PMS_TVENCODER_BACKUP_REG;
/// type of input source for TV encoder
typedef enum
{
MS_VE_SRC_MAIN = 0x00, ///< input source is from main window
MS_VE_SRC_SUB = 0x01, ///< input source is from sub window
MS_VE_SRC_SCALER = 0x02, ///< input source is scaler
MS_VE_SRC_NONE = 0x03,
MS_VE_SRC_SCART = 0x04, ///< input source is SCART
MS_VE_SRC_CVBS = 0x05, ///< input source is CVBS
MS_VE_SRC_SVIDEO = 0x06, ///< input source is S-Video
MS_VE_SRC_YPBPR = 0x07, ///< input source is YPbPr
MS_VE_SRC_RGB = 0x08, ///< input source is RGB
MS_VE_SRC_HDMI = 0x09, ///< input source is HDMI
MS_VE_SRC_DC0 = 0x0A, ///< input source is DC0
MS_VE_SRC_DC1 = 0x0B, ///< input source is DC1
}MS_VE_INPUT_SRC_TYPE;
/// definition of video system
typedef enum
{
MS_VE_NTSC, ///< NTSC
MS_VE_NTSC_443, ///< NTSC443
MS_VE_NTSC_J, ///< NTSC_J
MS_VE_PAL_M, ///< PAL_M
MS_VE_PAL_N, ///< PAL_N
MS_VE_PAL_NC, ///< PAL_Nc
MS_VE_PAL, ///< PAL_B
MS_VE_VIDEOSYS_NUM,
}MS_VE_VIDEOSYS;
/// type of output destination for TV encoder
typedef enum
{
MS_VE_DEST_NONE = 0,
MS_VE_DEST_SCART, ///< output destination is SCART
MS_VE_DEST_CVBS, ///< output destination is CVBS
MS_VE_DEST_SVIDEO, ///< output destination is S-Video
MS_VE_DEST_YPBPR, ///< output destination is YPbPr
MS_VE_DEST_NUM,
} MS_VE_OUTPUT_DEST_TYPE;
typedef struct
{
MS_VE_OUTPUT_DEST_TYPE OutputDestType[2]; // output device
MS_VE_INPUT_SRC_TYPE InputSrcType; // input source
MS_VE_VIDEOSYS VideoSystem; // video std of output signal
U8 u8DACType;
MS_TVENCODER_BACKUP_REG BackupReg;
MS_TUNE_WINDOW_INFO TuneWin;
Bool bUse_ADC_BuffOut;
Bool bDEmode;
}MS_TVENCODER_INFO, *PMS_TVENCODER_INFO;
typedef struct
{
U16 u16VideoStatus;
U16 u16LastVideoStatus;
EN_VD_SIGNALTYPE ucVideoSystem;
U8 ucVideoStableCounter;
U8 ucVideoPollingCounter;
U8 u8VideoPollingFlag;
} StuVDInfo;
#if (ENABLE_FPLL_CTL)
/// FPLL control
typedef enum
{
FPLL_STOP, ///< 0:Stop
FPLL_TUNE_LINE_ONLY, ///< 1:Line Only
FPLL_TUNE_CLK_LINE_FOR_PC_YPBPR, ///< 2:CLK Line for YPBPR
FPLL_TUNE_CLK_LINE_FOR_VIDEO, ///< 3: CLK line for Video
FPLL_TUNE_CLK_LINE_FOR_DTV, ///< 4: CLK line for DTV
FPLL_TUNE_SNOW, ///< 5: SNOW
FPLL_TUNE_TYPEMASK = 0x7F, ///< 0x7F: tunning Type mask
FPLL_TUNE_INTERLACE = 0x80, ///< 0x80: interlace
} EnuFpllCtl;
#endif
////
typedef enum
{
SOUND_MODE_STANDARD,
SOUND_MODE_MUSIC,
SOUND_MODE_MOVIE,
SOUND_MODE_SPORTS,
SOUND_MODE_USER,
SOUND_MODE_NUM
} EN_SOUND_MODE;
typedef enum
{
SURROUND_MODE_MOUNTAIN, //0
SURROUND_MODE_CHAMPAIGN, //1
SURROUND_MODE_CITY, //2
SURROUND_MODE_THEATER, //3
SURROUND_MODE_NUM
} EN_SURROUND_TEMP_TYPE;
typedef enum
{
SURROUND_SYSTEM_OFF,
SURROUND_SYSTEM_NUMS,
} EN_SURROUND_SYSTEM_TYPE;
typedef enum
{
AUD_MODE_LR,
AUD_MODE_LL,
AUD_MODE_RR,
AUD_MODE_NUM
} EN_AUD_MODE;
typedef struct
{
U8 Bass;
U8 Treble;
U8 Balance; // Balance is not affected by sound mode.
} stSoundModeSeting;
typedef enum
{
SOUND_AUDIO_LAN_ENGLISH,
SOUND_AUDIO_LAN_FRENCH,
SOUND_AUDIO_LAN_SPANISH,
SOUND_AUDIO_LAN_NUM
} EN_ADUIO_LAN;
typedef struct _SoundSettingType
{
EN_SOUND_MODE SoundMode;
stSoundModeSeting astSoundModeSetting[SOUND_MODE_NUM];
EN_SURROUND_SYSTEM_TYPE enSurroundSystem;
BOOLEAN bEnableAVC;
U8 Volume;
EN_ADUIO_LAN enSoundAudioLan;
EN_AUD_MODE enSoundAudioChannel;
U8 u8HeadPhoneVolume;
WORD soundSettingCS;
} stUserSoundSettingType;
////
// ==============================================================
#define SYS_INPUT_SOURCE_TYPE stSystemInfo.enInputSourceType
// ==============================================================
#ifdef MAPP_PCMODE_C
#define INTERFACE
#else
#define INTERFACE extern
#endif
INTERFACE MS_SYS_INFO stSystemInfo;
INTERFACE MS_DISPLAYWINDOW_TYPE g_SrcInfo;
INTERFACE U8 g_u8CRT_OutTimingSel;
INTERFACE U8 g_u8PreCRT_OutTimingSel;
INTERFACE U8 g_u8MultiHsync;
INTERFACE EN_CRT_SCAN_MODE_TYPE g_CRT_ScanMode;
INTERFACE MS_TVENCODER_INFO g_VEInfo;
INTERFACE U16 g_wHorizontalPeriod; // horizontal period, count by reference clock
INTERFACE U16 g_wVerticalTotal; // vertical total, count by HSync
INTERFACE U8 g_u8CurrentSyncStatus;
INTERFACE U8 g_ucModeDetectPollingCounter; // mode polling counter
INTERFACE U8 g_ucInputTimingStableCounter; // input timing stable counter
INTERFACE U8 g_ucTimingChangeDebounce; // timing change debounce
INTERFACE BOOLEAN g_bInputTimingChange; // input timing change flag
INTERFACE BOOLEAN g_bInputTimingStable; // input timing stable flag
INTERFACE BOOLEAN g_bDoModeSetting; // set mode flag
INTERFACE BOOLEAN g_bUnsupportMode; // unsupport mode
INTERFACE U8 g_u8PcUserModeRamIndex;
INTERFACE MS_PCADC_MODESETTING_TYPE g_PcadcModeSetting;
INTERFACE StuVDInfo g_VdInfo;
#if( ENABLE_DLC )
INTERFACE BOOLEAN g_bEnableDLC;
#endif
#if(ENABLE_NON_LINEAR_SCALING)
INTERFACE U16 g_wNLS_LossPixel;
#endif
#if(ENABLE_SCART_VIDEO)
INTERFACE MS_INPUT_SOURCE_TYPE enOrgInputSourceType;
#define ORG_INPUT_SOURCE_TYPE enOrgInputSourceType
#endif
#if( PANEL_TYPE_SEL == PNL_DAC_CRT )
INTERFACE U8 g_u8CRT_OutVFreq;
#endif
#undef INTERFACE
#define g_DisplayWindowSetting g_SrcInfo
#endif // _DRV_ANALOG_DATATYPE_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -