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

📄 drvanalog_datatype.h

📁 mstar 776 开发的车载dvd
💻 H
📖 第 1 页 / 共 3 页
字号:
    _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 + -