📄 msapi_scaler.h
字号:
#ifndef MSAPI_SCALER_H
#define MSAPI_SCALER_H
#include "board.h"
#include "msapi_mode.h"
/********************************************************************************/
/* Macro */
/* ******************************************************************************/
#define SWRST_MCU _BIT13
#define SWRST_GMC _BIT12
#define SWRST_REG _BIT7
#define SWRST_ADC _BIT6
#define SWRST_DIGITAL _BIT5
#define SWRST_SCALER _BIT4
#define SWRST_DISPLAY _BIT3
#define SWRST_OSD _BIT1
#define SWRST_ALL _BIT0
#define SWRST_DELAY 10
#define MAX_VGA_BRIGHTNESS 0x80
#define MAX_VIDEO_BACKLIGHT 0x7F
//*************************************************************************
// Enums
//*************************************************************************
// free run mode color
typedef enum
{
FREE_RUN_COLOR_BLACK = 0x00,
FREE_RUN_COLOR_WHITE = 0x7F,
FREE_RUN_COLOR_BLUE = 0x03,
FREE_RUN_COLOR_RED = 0xE0,
FREE_RUN_COLOR_GREEN = 0x1C,
} EN_FREERUN_COLOR;
//lachesis_070201
typedef enum
{
TEST_COLOR_OFF,
TEST_COLOR_WHITE,
TEST_COLOR_RED,
TEST_COLOR_GREEN,
TEST_COLOR_BLUE,
TEST_COLOR_BLACK,
//TEST_COLOR_PATT,
TEST_COLOR_NUM,
} EN_TEST_COLOR;
typedef enum
{
Input480i,
Input576i,
Input480p,
Input576p,
Input1080i,
Input720p,
Input1080p
} EN_InputResolution;
typedef enum
{
E_SCREEN_MUTE_INIT,
E_SCREEN_MUTE_BLACK = E_SCREEN_MUTE_INIT,
E_SCREEN_MUTE_TEMPORARY = _BIT0,
E_SCREEN_MUTE_RATING = _BIT1,
E_SCREEN_MUTE_FREERUN = _BIT2,
E_SCREEN_MUTE_INPUT = _BIT3,
E_SCREEN_MUTE_CHANNEL = _BIT4,
E_SCREEN_MUTE_PERMANENT = (E_SCREEN_MUTE_RATING | E_SCREEN_MUTE_FREERUN | E_SCREEN_MUTE_INPUT | E_SCREEN_MUTE_CHANNEL ),
}E_SCREEN_MUTE_STATUS;
typedef enum
{
E_HDMI_STATUS_UNKNOWN,
E_HDMI_STATUS_DVI,
E_HDMI_STATUS_HDMI,
}E_HDMI_STATUS;
typedef enum
{
E_ORIENTATIOM_VERTICAL,
E_ORIENTATIOM_HORIZONTAL,
}E_ORIENTATIOM;
#define DELAY_FOR_REMOVE_SCREENMUTE 20
#define DELAY_FOR_STABLE_CHANCHAN 300
#define DELAY_FOR_STABLE_ASPECT_RATIO 100
#define DELAY_FOR_STABLE_PC_RESOLUTION 300 //may_070406_ResolutionMute
//*************************************************************************
// Structures
//*************************************************************************
#ifdef MSAPI_SCALER_C
#define INTERFACE
#else
#define INTERFACE extern
#endif
/********************************************************************************/
/* Function Prototypes */
/********************************************************************************/
//
// init
//
INTERFACE void msAPI_Scaler_Init(void);
//
// blue & black screen
//
INTERFACE void msAPI_Scaler_SetBlueScreen(BOOLEAN bEnable, U8 u8Color);
INTERFACE void msAPI_Scaler_GenerateBlackVideo(E_SCREEN_MUTE_STATUS eScreenMute, BOOLEAN bMuteEnable, U16 u161ms);
INTERFACE E_SCREEN_MUTE_STATUS msAPI_Scaler_GetBlackVideoInfo( void );
INTERFACE BOOLEAN msAPI_Scaler_IsBlackVideoEnable(void);
//
// source control
//
INTERFACE void msAPI_Scaler_SetInputSource(MS_INPUT_SOURCE_TYPE srcType);
//
// display control
//
INTERFACE void msAPI_Scaler_SetCustomerDisplayWindow(BOOLEAN bEnable, U16 u16HStart, U16 u16VStart, U16 u16HSize, U16 u16VSize);
//
// VD & MVD mode
//
INTERFACE MS_SETMODE_STATUS msAPI_Scaler_VDModeHandler(void);
INTERFACE void msAPI_Scaler_SetVDMode(BOOLEAN bSyncLocked, BOOLEAN bVSync50Hz, EN_ASPECT_RATIO_TYPE enVideoScreen);
INTERFACE void msAPI_Scaler_SetMVDMode(MS_VOP_TIMING* ptiming, EN_ASPECT_RATIO_TYPE enVideoScreen);
//
// PC mode
//
INTERFACE BOOLEAN msAPI_Scaler_SetupMode(U8 u8AspectRatio);
INTERFACE void msAPI_Scaler_SetPcHPosition(U16 u16Position);
INTERFACE void msAPI_Scaler_SetPcVPosition(U16 u16Position);
INTERFACE void msAPI_Scaler_SetPcClock(U16 u16Clock);
INTERFACE void msAPI_Scaler_SetPcPhase(U8 u8Phase);
INTERFACE void msAPI_Scaler_MonitorLPLL(void);
//
// brightness
//
INTERFACE void msAPI_Scaler_SetBrightness ( U8 u8PC, U8 u8PcBrightness );
//For SEC factory mode used
INTERFACE void msAPI_Scaler_SetRGBBrightness ( U8 u8PC,MS_BRIGHTNESS_SETTING stBrightness );
// SSC
#if ENABLE_SSC
INTERFACE void msAPI_Scaler_SetSsc( U8 u8Periodx100Hz, U16 u16Percentx100, BOOLEAN bEnable );
#endif
// sound
INTERFACE void msAPI_Scaler_SetInputSoundSource(MS_SYS_INFO *penMsSysInfo);
// Others
INTERFACE void msAPI_Scaler_SetTestPattern(EN_TEST_COLOR enColorOfPattern,
MS_INPUT_SOURCE_TYPE enInputSourceType,
EN_ASPECT_RATIO_TYPE enVideoScreen);
INTERFACE void msAPI_Scaler_SetBacklight( U8 u8Blacklight );
INTERFACE BOOLEAN msAPI_Scaler_DetectSyncActive(void);
INTERFACE U8 msAPI_Scaler_GetInputStatus ( void );
INTERFACE U16 msAPI_Scaler_GetHorizontalPeriod(void);
INTERFACE U16 msAPI_Scaler_GetHorizontalDE ( void );
INTERFACE U16 msAPI_Scaler_GetVerticalDE ( void );
INTERFACE U16 msAPI_Scaler_GetVerticalTotal(void);
INTERFACE void msAPI_Scaler_SetupMode2 (MS_INPUT_SOURCE_TYPE enInputSourceType, MS_DISPLAYWINDOW_TYPE *pstDisplayWindow);
INTERFACE void msAPI_Scaler_SetTimingAndWindow(MS_INPUT_SOURCE_TYPE enInputSourceType, EN_ASPECT_RATIO_TYPE enVideoScreen);
INTERFACE void msAPI_Scaler_SetSourceType( MS_SYS_INFO *penMsSysInfo );
INTERFACE U16 msAPI_Scaler_CalculateHFreqX10 ( U16 wHPeriod );
INTERFACE U16 msAPI_Scaler_CalculateVFreqX10 ( U16 wHFreq, U16 wVTotal );
INTERFACE void msAPI_Scaler_InitRegInTimingChange(void);
INTERFACE void msAPI_Scaler_SetFilmMode(BOOLEAN bEnable);
#if (MS_VGA_SOG_EN)
INTERFACE void msAPI_Scaler_ProgAnalogInputPort(void);
#endif
#if (ENABLE_SCART_VIDEO)
INTERFACE U8 msAPI_VD_DetectScartSync(void);
#endif
#ifdef BOOT_JPEG_TEST
INTERFACE void msAPI_Scaler_JPEGSetWindow ( MS_VOP_TIMING *ptiming, U8 u8ModeIndex, EN_ASPECT_RATIO_TYPE enVideoScreen1);
#endif
INTERFACE BOOLEAN msAPI_Scaler_IsAspectRatioWide(void);
INTERFACE void msAPI_Scaler_PresentVdDisplay(EN_ASPECT_RATIO_TYPE enVideoScreen);
INTERFACE void msAPI_Scaler_SetFreezeImg(BOOLEAN bEn);
INTERFACE void msAPI_Scaler_FreezeImageWithColor(U8 u8R, U8 u8G, U8 u8B);
INTERFACE void msAPI_Scaler_SetDisplayWindowStatus(U8 val);
INTERFACE U8 msAPI_Scaler_GetDisplayWindowStatus();
INTERFACE void msAPI_Scaler_SetDisplayWindowInputFrenquency(E_ORIENTATIOM orientation,U16 freq);
INTERFACE U16 msAPI_Scaler_GetDisplayWindowInputFrenquency(E_ORIENTATIOM orientation);
INTERFACE void msAPI_Scaler_SetDisplayWindowColorFineTuneFlag(U16 val);
INTERFACE U16 msAPI_Scaler_GetDisplayWindowInputVerticalTotal();
INTERFACE BOOLEAN msAPI_Scaler_IsHdmiInVideoMode(void);
INTERFACE void msAPI_Scaler_SetDisplayWindowCapSize(E_ORIENTATIOM orientation,U16 size);
INTERFACE U16 msAPI_Scaler_GetDisplayWindowCapSize(E_ORIENTATIOM orientation);
INTERFACE U16 msAPI_Scaler_GetDisplayWindowCapStart(E_ORIENTATIOM orientation);
// PC mode function
#define MD_TIMING_SOG_DETECT 20
#define MD_TIMING_STABLE_COUNT 25 // input timing stable counter
#define MD_TIMING_NOSYNC_COUNT 40
INTERFACE void msAPI_Scaler_SetSyncStatusFlag( U8 u8TempSyncStatus );
INTERFACE BOOLEAN msAPI_Scaler_SyncLossFlag( void );
INTERFACE BOOLEAN msAPI_Scaler_DetectSync ( void );
INTERFACE BOOLEAN msAPI_Scaler_InvalidTimingDetect ( void );
INTERFACE void msAPI_Scaler_PrepareForTimingChange (void);
INTERFACE void msAPI_Scaler_TimingMonitor (void);
INTERFACE void msAPI_Scaler_SetModeFlag( MS_INPUT_SOURCE_TYPE enInputSourceType );
INTERFACE void msAPI_Scaler_ProgramWin( MS_INPUT_SOURCE_TYPE enInputSourceType);
#undef INTERFACE
#endif /* MSAPI_SCALER_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -