📄 gsel.h
字号:
void gm_SetExtDevicesPowerDownMain(void far (* FuncPtr) (void));
gmt_RET_STAT gm_IsPowerDownCondition(void);
gmt_RET_STAT gm_IsPowerUpCondition(void);
//gmt_RET_STAT gm_IsOsdOn(void);
void gm_SetPowerUpCondition(gmt_POWER_POLICY B_PwrChannel);
void gm_SetPowerDownCondition(gmt_POWER_POLICY B_PwrChannel);
void gm_SetSplashScreenTimeInterval(WORD W_Interval);
void gm_PowerDownPanel(void);
void gm_PowerUpPanel(void);
void gm_WaitForPanelPowerStatus(BYTE B_PowerState);
///////////////////////////////////////////////////////////////////////////////
// mode handler
///////////////////////////////////////////////////////////////////////////////
gmt_RET_STAT gm_InputTimingIsStableMain(void);
gmt_RET_STAT gm_InputTimingIsStable(gmt_PHY_CH Channel);
gmt_RET_STAT gm_InputTimingTransitionToStableMain(void);
gmt_RET_STAT gm_InputTimingTransitionToStable(gmt_PHY_CH Channel);
gmt_RET_STAT gm_InputTimingTransitionFromStableMain(void);
gmt_RET_STAT gm_InputTimingTransitionFromStable(gmt_PHY_CH Channel);
gmt_RET_STAT gm_InputIsInterlacedMain(void);
gmt_RET_STAT gm_WaitInputVSyncMain(BYTE B_Num);
gmt_RET_STAT gm_IsAfrSet(void);
SWORD gm_GetHSPulseWidth(void);
gmt_SYNC_TYPE gm_GetSyncTypeMain(void);
gmt_SYNC_TYPE gm_GetActiveSyncTypeMain(void);
void gm_ReadInputTimingMain(void);
void gm_ReadInputTiming(gmt_PHY_CH Channel);
void gm_SetCoastWindowMain(void);
void gm_ResetAutoFreeRun(void);
void gm_ForceModeSwitching(void);
void gm_ForceModeChange(gmt_PHY_CH Channel);
WORD gm_ReadIBDParameter(WORD W_RegIndex);
gmt_RET_STAT gm_InputSelectPortMain(BYTE port);
//ACC ACM
typedef struct ACCDataStruct
{
BYTE B_UpperStart;
BYTE B_MidStart;
BYTE B_MidEnd;
BYTE B_LowerEnd;
BYTE B_YCLMaxDelta;
BYTE B_SCLThreshold;
BYTE B_YCLScale;
BYTE B_YMin;
BYTE B_YMax;
BYTE const far *pB_Array;
} ACCDataType;
gmt_RET_STAT gm_EnableACC(void);
gmt_RET_STAT gm_DisableACC(void);
gmt_RET_STAT gm_InitACC(ACCDataType const far *pACCData);
gmt_RET_STAT gm_EnableACM(void);
gmt_RET_STAT gm_DisableACM(void);
gmt_RET_STAT gm_InitACM(BYTE const far *pB_fine, BYTE const far *pB_Coarse, BYTE B_Port);
void gm_ACM_loadFEMatrix(BYTE const far *fineTableTag, BYTE const far *intpTableMap, BYTE B_Port);
// DVI
#ifndef TUCSON
gmt_RET_STAT gm_SetupDVIEqualizer(void);
void gm_ResetDVI_PLL(void);
gmt_RET_STAT gm_SetupDVIClock(void);
gmt_RET_STAT gm_CheckDVIClock(void);
void gm_StartDVIClock(void);
#endif
// Set Input Format
gmt_RET_STAT gm_SetInputWindowMain(void);
void gm_SetInputHTotalMain(WORD W_HTotal);
void gm_SetInputHPositionMain(WORD W_HStart);
void gm_SetInputVPositionMain(WORD W_VStart);
void gm_SetupIfmWatchdog(void);
// SDDS
void gm_SetSddsOpenLoopMain(void);
void gm_SetSddsClosedLoopMain(void);
void gm_SddsConfigureMain(BYTE B_SyncType);
WORD gm_GetSclkFrequencyMain(void);
gmt_RET_STAT gm_WaitSddsStableMain(void);
gmt_RET_STAT gm_SetupSclkMain(void);
//void gm_SetupPllClkDivider(WORD W_SclkFreq);
// Scaler
gmt_RET_STAT gm_SetScalerMain(void);
gmt_RET_STAT gm_SetDisplayGeometryMain(void);
//void gm_InitScaler(void); // set filter coeff table with default
void gm_SetFilterCoeff(BYTE B_Table); // set filter coeff table based on input table index
// DDDS
void gm_SetDddsOpenLoop(void);
void gm_SetDddsClosedLoop(void);
WORD gm_GetDclkFrequency(void);
gmt_RET_STAT gm_WaitDddsStable(void);
gmt_RET_STAT gm_SetupDclk(WORD W_srcHTotal);
gmt_RET_STAT gm_CheckLineBufferOverRun(void);
void gm_DisplayEnable(void);
#if defined(PHOENIX) || defined (TUCSON) || defined(PHOENIX_U)
void gm_SetupVFStartOffset(void);
#endif
void far gm_HostUpdate(BYTE B_Control);
void gm_ForceUpdate(void);
void gm_SyncUpdate(void);
//
gmt_RET_STAT gm_WaitDisplayBlanking(void);
void gm_SetSrcFreeRunMode(void);
void gm_SetDisplayFreeRunMode(void);
void gm_DisplayPatternGeneratorMain(BYTE B_Pattern);
///////////////////////////////////////////////////////////////////////////////
// ADC
///////////////////////////////////////////////////////////////////////////////
void gm_SetADCClampingWidthMain(WORD W_SclkFreq);
void gm_SetAdcOffset2Main(BYTE adjRed, BYTE adjGreen, BYTE adjBlue);
void gm_SetAdcGainMain(WORD adjRed, WORD adjGreen, WORD adjBlue);
void gm_SetBrightnessMain(BYTE B_Brightness);
void gm_SetBrightnessMainPWM(BYTE B_Brightness);
void gm_SetContrastMain(BYTE B_Contrast);
void gm_SetColorMain(BYTE red, BYTE grn, BYTE blu, BYTE contrast);
void gm_SetAdcPhaseMain(BYTE B_Phase);
///////////////////////////////////////////////////////////////////////////////
// Auto Adjust
///////////////////////////////////////////////////////////////////////////////
gmt_RET_STAT gm_AutoGeometryMain(BYTE AutoAdjMode);
//gmt_RET_STAT gm_IsHtotalCorrectMain(WORD This_Htotal);
gmt_RET_STAT gm_AutoPositionMain(void);
gmt_RET_STAT gm_AutoADCInitMain(void);
gmt_RET_STAT gm_AutoColorBalanceMain(void);
void gm_AutoCalibrateOffset1Main(void);
BYTE gmp_GrabPixelColor(WORD X, WORD Y, BYTE Color); // not gsel, but used by appstest
gmt_RET_STAT gm_AutoPeriodicCall(void);
void gm_SetPhaseSkew(WORD PhaseSkew);
void gm_SetInputFiltering(WORD InputFilter);
void gm_StartReadInputTiming(void);
///////////////////////////////////////////////////////////////////////////////
// Function to request a buffer from the OSD system
///////////////////////////////////////////////////////////////////////////////
gmt_RAMBuf* gm_GetRAMBuffer(WORD Size);
///////////////////////////////////////////////////////////////////////////////
// Power Manager Handler
///////////////////////////////////////////////////////////////////////////////
gmt_RET_STAT gm_SyncTransitionMain(void);
gmt_RET_STAT gm_SyncTransition(gmt_PHY_CH Channel);
gmt_RET_STAT gm_GetSyncStateMain(void);
gmt_RET_STAT gm_IsReadInputTimingDone(void);
///////////////////////////////////////////////////////////////////////////////
// HDCP
///////////////////////////////////////////////////////////////////////////////
gmt_RET_STAT gm_LoadHdcpTable(BYTE *Bp_HdcpTable);
gmt_RET_STAT gm_ReadHdcpTable(BYTE *Bp_HdcpTable);
gmt_RET_STAT gm_InitHdcpTableFromNVRAM(BYTE B_BlockType, BYTE B_DDC_Addr);
///////////////////////////////////////////////////////////////////////////////
// I2C Communication
///////////////////////////////////////////////////////////////////////////////
gmt_RET_STAT gm_I2cInit( BYTE B_Port, DWORD D_CpuClkFreq, WORD W_SckFreq );
gmt_RET_STAT gm_I2cInitSW(WORD W_I2C_SPEED, BYTE B_SCL_GPIO, BYTE B_SDA_GPIO);
gmt_RET_STAT gm_WriteI2cBlock( BYTE B_Port, BYTE B_DevAddress,
BYTE *Bp_Buffer, BYTE B_Length, gmt_RET_STAT B_Stop );
gmt_RET_STAT gm_ReadI2cBlock( BYTE B_Port, BYTE B_DevAddress,
BYTE *Bp_Buffer, BYTE B_Length, gmt_RET_STAT B_Stop );
gmt_RET_STAT gm_WriteI2cBlockWL( BYTE B_Port, BYTE B_DevAddress,
BYTE *Bp_Buffer, WORD W_Length, gmt_RET_STAT B_Stop );
gmt_RET_STAT gm_ReadI2cBlockWL( BYTE B_Port, BYTE B_DevAddress,
BYTE *Bp_Buffer, WORD W_Length, gmt_RET_STAT B_Stop );
///////////////////////////////////////////////////////////////////////////////
// Video Driver
///////////////////////////////////////////////////////////////////////////////
typedef enum PowerControlEnum
{
gmd_PCD_NONE,
gmd_PCD_RGB,
gmd_PCD_DVI,
gmd_PCD_VIDEO
}PowerControlDeviceType;
typedef struct InputPortArrayStruct
{ // option flags
WORD Port :3; // Port on 52xx
WORD MuxInput :3; // If MUX attached, this is input on MUX.
WORD MuxFlag :1; // gmd_TRUE if this is a MUX input.
WORD YUV :1; // gmd_TRUE if input is YUV.
WORD Component :1; // gmd_TRUE if Component source.
WORD AudioFlag :1; // gmd_TRUE if audio config. required on this input.
WORD ACC_En :1; // gmd_TRUE to enable ACC on this port.
WORD ACM_En :1; // gmd_TRUE to enable AFM on this port.
WORD AFR_Enable:1; // gmd_TRUE to Enable AFR on this port.
WORD SkipAutoScan :1; // gmd_TRUE to skip port when performing an auto scan.
WORD AudioMuxInput :2; // If Audio MUX attached, this is input on MUX.
// Video decoder related elements
WORD DevType;// i.e. VPC3230_DEV_ID
BYTE InputFormat; // i.e. VDD_MODE_NTSC device specific. see device header file
BYTE VideoInput; // i.e. VDD_INTYP_SVIDEO device specific. see divice header file
// Port scan and stability timeouts
WORD StabilityCheckTime;// how long to wait for sync while scanning Ports in 10ms units.
WORD StabilityHoldTime; // how long to wait while sync lost before scanning Ports in 10ms units.
BYTE IsStablePeriod; // how long signal is stable before actually becoming stable in 10ms. units.
PowerControlDeviceType PowerDev; // device enum to pass to PowerUp/DownDevice(dev)
gmt_SYNC_TYPE const far *SyncArray;// NULL terminated ordered array of supported syncs.
// Mode table pointers.
BYTE const far *StdModeArray; // ptr to Array of StandardMode table indicies.
BYTE const far *EstModeArray; // ptr to Array of EstimatedMode table indicies.
// Future expansion pointers:
void const far *UserTypeInfo; //ptr to additional data for future expansion
void const far *SystemTypeInfo; //ptr to additional data for future expansion
}InputPortArrayType;
extern InputPortArrayType ROM InputPortArray[];
extern BYTE gmvb_CurrentPortMain;// Main port index into InputPortArray[]
extern BYTE gmvb_CurrentPortPip; // Pip port index into InputPortArray[]
// Array to keep track of sync state and sync type for each port.
typedef struct PortSyncInfoArrayStruct
{
BYTE B_SyncType; // gmd_SOG_SYNC etc.
BYTE B_SyncState; // gmd_HONVON etc.
}PortSyncInfoArrayType;
extern PortSyncInfoArrayType InputPortSyncArray[];
typedef enum VideoDriverFuncEnum
{
gmd_VID_SET_INPUT,
gmd_VID_SET_OUTPUT_FORMAT,
gmd_VID_SET_MODE,
gmd_VID_SET_MIXER,
gmd_VID_SET_BRIGHTNESS,
gmd_VID_SET_CONTRAST,
gmd_VID_SET_SATURATION,
gmd_VID_SET_HUE,
gmd_VID_SET_SHARPNESS,
gmd_VID_GET_STATUS,
gmd_VID_GET_INTERLACE,
gmd_VID_GET_LINES_PER_FIELD,
gmd_VID_GET_SUB_MODE,
gmd_VID_GET_MODE,
gmd_VID_PWR_UP,
gmd_VID_PWR_DOWN,
gmd_VID_RAW_READ,
gmd_VID_RAW_WRITE
}VideoDriverFuncType;
typedef enum AudioDriverFuncEnum
{
gmd_AUD_SET_INPUT_OUTPUT, // patch INPUT to OUTPUT (i.e. TUNER to HEADPHONES)
gmd_AUD_SET_OUTPUT_VOLUME,
gmd_AUD_SET_OUTPUT_LOUDNESS,
gmd_AUD_SET_OUTPUT_BALANCE,
gmd_AUD_SET_OUTPUT_BASS,
gmd_AUD_SET_OUTPUT_TREBLE,
gmd_AUD_SET_OUTPUT_MUTE,
gmd_AUD_GET_INPUT_OUTPUT, // (i.e. entering HEADHONES will return TUNER)
gmd_AUD_GET_OUTPUT_VOLUME,
gmd_AUD_GET_OUTPUT_LOUDNESS,
gmd_AUD_GET_OUTPUT_BALANCE,
gmd_AUD_GET_OUTPUT_BASS,
gmd_AUD_GET_OUTPUT_TREBLE,
gmd_AUD_GET_OUTPUT_MUTE,
gmd_AUD_SET_STANDBY_ON,
gmd_AUD_SET_CONFIG // configrations of audio decoder
}AudioDriverFuncType;
typedef enum TunerDriverFuncEnum
{
gmd_TUN_SET_CHANNEL,
gmd_TUN_GET_SIGNAL_STRENGTH,
gmd_TUN_GET_MAX_SIGNAL_STRENGTH,
gmd_TUN_GET_MIN_SIGNAL_STRENGTH,
gmd_TUN_CHECK_STATION_PRESENCE,
gmd_TUN_INIT,
gmd_TUN_SET_TUNER_NUMBER,
gmd_TUN_GET_TUNER_NUMBER,
gmd_TUN_SET_TUNER_FREQ,
gmd_TUN_GET_TUNER_FREQ,
gmd_TUN_ADD_TUNER_FREQ,
gmd_TUN_SET_COLOR_SUBSYSTEM,
gmd_TUN_GET_MAX_CHANNEL_TABLE,
gmd_TUN_GET_MIN_CHANNEL_TABLE,
gmd_TUN_GET_MAX_FREQ_VALUE,
gmd_TUN_GET_MIN_FREQ_VALUE,
gmd_TUN_END
}TunerDriverFuncType;
typedef enum TunerSubmodeEnum
{
gmd_TUNER_SUBMODE_A,
gmd_TUNER_SUBMODE_B,
gmd_TUNER_SUBMODE_C,
gmd_TUNER_SUBMODE_D,
gmd_TUNER_SUBMODE_F,
gmd_TUNER_SUBMODE_G,
gmd_TUNER_SUBMODE_H,
gmd_TUNER_SUBMODE_I,
gmd_TUNER_SUBMODE_K,
gmd_TUNER_SUBMODE_K1,
gmd_TUNER_SUBMODE_L,
gmd_TUNER_SUBMODE_L1,
gmd_TUNER_SUBMODE_M,
gmd_TUNER_SUBMODE_N,
gmd_TUNER_SUBMODE_END
}TunerSubmodeEnumType;
typedef WORD (*DriverEntry)(BYTE func, void *p1, void *p2);
BYTE gm_AddDriver(DriverEntry dev, WORD devType);
#define gm_CallDriver(a,b,c,d) gsel_CallDriver((a),(b),(void *)(c),(void *)(d))
WORD gsel_CallDriver(WORD devType, BYTE func, void *p1, void *p2);
///////////////////////////////////////////////////////////////////////////////
// SYSTEM & MISC
///////////////////////////////////////////////////////////////////////////////
typedef enum
{
gmd_PARAMETER_NOT_VALID, // parameter not valid
gmd_DEVICE_ID, // Chip Identification
gmd_DEVICE_VER, // Chip Version
gmd_XROM_ADDRESS_END, // End address of external ROM
gmd_XROM_ADDRESS_BEGIN, // Begining address of external ROM
gmd_HOST_REGISTER_BASE, // Base address of Host Register
gmd_PERI_REGISTER_BASE, // Current Peripheral Register value
gmd_ISP_PORT, // which communication port is open
gmd_WORK_TMR_1MS_ID, // enum of 1ms work timer (IROM specific)
gmd_WORK_TMR_10MS_ID, // enum of 10ms work timer (IROM specific)
// reserved for SPI handling
gmd_SPI_DATA,
gmd_SPI_STATUS_REG,
gmd_SPI_ACT_MASK,
gmd_IROM_MAJ_VERSION,
gmd_IROM_MINOR_VERSION,
gmd_IROM_BUILDNO,
gmd_MAX_REGISTER_LIST
} Parameter_LIST;
DWORD gm_ReadProductID(void);
WORD far gm_ISPGetParameter(Parameter_LIST index, BOOL *retstat);
///////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -