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

📄 gsel.h

📁 GM5621原代码
💻 H
📖 第 1 页 / 共 3 页
字号:
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 + -