📄 refcmdproc.c
字号:
return TRUE;
}
/****************************************************************************/
static BOOL cmdAlcStatus_rd( void ) /* 0x0700 */
{
ALC_StatusStruct stat;
ALC_GetStatus( &stat );
cmdPut1( stat.AlgorithmControl );
cmdPut1( stat.Port1Command );
cmdPut1( stat.Port2Command );
cmdPut1( stat.Port3Command );
cmdPut1( stat.ActivePort );
cmdPut1( stat.PortVsyncPolarity );
cmdPut1( stat.PortHsyncPolarity );
cmdPut1( stat.PortIsInterlaced );
cmdPut2( stat.PortLinesPerFrame );
cmdPut2( stat.PortSystemClocksPerLine );
cmdPut2( stat.PortVertFreq );
cmdPut2( stat.PortHorzFreq );
cmdPut2( stat.PortActiveLines );
cmdPut2( stat.PortActivePixels );
cmdPut2( stat.PortPixelsPerLine );
cmdPut4( stat.PortPixelFreqInkHz );
cmdPut1( stat.RawSyncType );
cmdPut1( stat.RawVsyncPolarity );
cmdPut1( stat.RawHsyncPolarity );
cmdPut1( stat.RawIsInterlaced );
cmdPut2( stat.RawLinesPerFrame );
cmdPut2( stat.RawSystemClocksPerLine );
cmdPut2( stat.RawVertFreq );
cmdPut2( stat.RawHorzFreq );
cmdPut1( stat.ASMSourcePort );
cmdPut1( stat.ASMOperatingMode );
cmdPut1( stat.ASMStatus );
cmdPut1( stat.ASMIsPortSyncs );
cmdPut2( stat.ASMVRes );
cmdPut2( stat.ASMHRes );
cmdPut2( stat.ASMActiveTopLine );
cmdPut2( stat.ASMActiveBottomLine );
cmdPut2( stat.ASMActiveLeftPixel );
cmdPut2( stat.ASMActiveRightPixel );
cmdPut1( stat.ASMPhaseSetting );
cmdPut2( stat.ASMSampleClock );
cmdPut4( stat.ASMSampleClockFreqInkHz );
cmdPut1( stat.ASMIsComponentVideo );
cmdPut1( stat.ASMIsHDTV );
cmdPut1( stat.ASMIsYUV );
cmdPut1( stat.ASMIsSubSampled );
cmdPut1( stat.ASMIsTopfieldInverted );
cmdPut1( stat.ASMIsSavedMode );
cmdPut1( stat.ASMSavedModeGroup );
cmdPut1( stat.ASMSavedModeIndex );
cmdPut2( stat.ASMVsyncsUntilResolution );
cmdPut1( stat.DSMSourcePort );
cmdPut1( stat.DSMStatus );
cmdPut2( stat.DSMVRes );
cmdPut2( stat.DSMHRes );
cmdPut2( stat.DSMPixelsPerLine );
cmdPut4( stat.DSMPixelFreqInkHz );
cmdPut2( stat.DSMVsyncsUntilResolution );
cmdPut1( stat.PortPreviousEvent );
cmdPut1( stat.ASMPreviousEvent );
cmdPut1( stat.DSMPreviousEvent );
cmdPut1( stat.MiscPreviousEvent );
return TRUE;
}
/****************************************************************************/
static BOOL cmdAlcVFrame_rd( void ) /* 0x0708 */
{
ALC_RegionStruct region;
SRC_CHANNEL channel = cmdGet1( SRC_CHANNEL );
ALC_GetVerticalFramingRegion( channel, ®ion );
cmdPut2( region.Start );
cmdPut2( region.Stop );
return TRUE;
}
/****************************************************************************/
static BOOL cmdAlcVFrame_wr( void ) /* 0x0708 */
{
SRC_CHANNEL channel = cmdGet1( SRC_CHANNEL );
uint16 lowerLim = cmdGet2( uint16 );
uint16 upperLim = cmdGet2( uint16 );
return PASS == ALC_SetVerticalFramingRegion( channel, lowerLim, upperLim );
}
/****************************************************************************/
static BOOL cmdAlcVFrameLim_rd( void ) /* 0x0709 */
{
ALC_LimitStruct limit;
ALC_GetVerticalFramingRegionLimits( SRC_PRIMARY, &limit );
cmdPut2( limit.LowerLimit );
cmdPut2( limit.UpperLimit );
return TRUE;
}
/****************************************************************************/
static BOOL cmdANR_Init_wr( void ) /* 0x0400 */
{
return ANR_Init();
}
/****************************************************************************/
static BOOL cmdANR_State_rd( void ) /* 0x0401 */
{
BOOL isSpatial = cmdGet1( BOOL );
BOOL isEnable;
ANR_FILTER_STRENGTH strength;
ANR_IsEnabled( isSpatial, &isEnable );
ANR_GetFilterStrength( isSpatial, &strength );
cmdPut1( isEnable );
cmdPut1( strength );
return TRUE;
}
/****************************************************************************/
static BOOL cmdANR_State_wr( void ) /* 0x0401 */
{
BOOL isSpatial = cmdGet1( BOOL );
BOOL isEnable = cmdGet1( BOOL );
ANR_FILTER_STRENGTH strength = cmdGet1( ANR_FILTER_STRENGTH );
ANR_SetFilterStrength( isSpatial, strength );
ANR_Enable( isSpatial, isEnable );
return TRUE;
}
/****************************************************************************/
static BOOL cmdApp_CIDebug_wr( void ) /* 0x0213 */
{
ddc_dumpDebug();
return TRUE;
}
/****************************************************************************/
static BOOL cmdApp_Debug_rd( void ) /* 0x0202 */
{
uint08 alloc, used; /* message string allocation and amount used */
dbmsg_stringUsage( &alloc, &used ); /* get string usage */
cmdPutK4( dbmsg_getmask() );
cmdPut1( alloc );
cmdPut1( used );
return TRUE;
}
/****************************************************************************/
static BOOL cmdApp_Debug_wr( void ) /* 0x0202 */
{
dbmsg_setmask( cmdGet4( uint32 ) | 0x80000000 );
return TRUE;
}
/****************************************************************************/
static BOOL cmdApp_EDID_wr( void ) /* 0x020b */
{
uint16 eeAddr = cmdGet2( uint16 );
uint08 *src; /* EDID data source address */
if( eeAddr == EDID_DVI_I2C_DEVADDR )
src = gpEdidStructure -> DVI;
else if( eeAddr == EDID_ADC_I2C_DEVADDR )
src = gpEdidStructure -> VGA;
else
return FALSE;
if( PASS != edid_write( eeAddr, src ))
return FALSE;
return TRUE;
}
/****************************************************************************/
static BOOL cmdApp_EDID_rd( void ) /* 0x020c */
{
uint16 eeAddr = cmdGet2( uint16 );
if( PASS != edid_read( eeAddr, cmdGetPtrWrite())) /* read */
return FALSE;
cmdIncWrite( 128 ); /* increment write pointer by size of EEPROM */
return TRUE;
}
/****************************************************************************/
static BOOL cmdApp_EDID_comp( void ) /* 0x020d */
{
uint16 eeAddr = cmdGet2( uint16 );
uint08 *src; /* EDID data source address */
if( eeAddr == EDID_DVI_I2C_DEVADDR )
src = gpEdidStructure -> DVI;
else if( eeAddr == EDID_ADC_I2C_DEVADDR )
src = gpEdidStructure -> VGA;
else
return FALSE;
if( PASS != edid_compare( eeAddr, cmdGetPtrWrite(),src ))
return FALSE;
cmdIncWrite( 128 ); /* increment write pointer by size of EEPROM */
return TRUE;
}
/****************************************************************************/
static BOOL cmdApp_ERestore_wr( void ) /* 0x0211 */
{
return eeprom_restoreDefault();
}
/****************************************************************************/
static BOOL cmdApp_GUINav_rd( void ) /* 0x0204 */
{
UIREP rep;
rep.key = cmdGet1( KCODE_ENUM );
rep.mouse = FALSE;
rep.mouse_x = 0;
rep.mouse_y = 0;
guiKeycode( &rep, TRUE );
return TRUE;
}
/****************************************************************************/
static BOOL cmdApp_I2CPass_rd( void ) /* 020a */
{
I2CPORT port = cmdGet1( I2CPORT );
BOOL is7bit = cmdGet1( BOOL );
BOOL hasSubaddr = cmdGet1( BOOL );
uint32 sclRate = cmdGet4( uint32 );
uint16 devAddr = cmdGet2( uint16 );
uint08 subAddr = cmdGet1( uint08 );
uint16 byteCount = cmdGet2( uint16 );
int08 status;
uint32 SemID;
I2CINIT saveConfig;
I2CINIT cmdConfig;
uint32 bytes_written;
uint32 bytes_read;
/********************************************/
/* Validate. */
/********************************************/
if(( byteCount < 1 ) || ( byteCount > MAX_MSG ))
return FALSE;
if( port > 1 )
return FALSE;
/********************************************/
/* Save current port configuration and set */
/* up requested configuration. */
/********************************************/
I2C_GetSemaphoreID( port, &SemID );
if( RTA_SUCCESS != RTA_SemReserve( SemID, 100 ))
return FALSE;
I2C_GetConfig( port, &saveConfig );
I2C_GetConfig( port, &cmdConfig );
cmdConfig.SCLClockRate = sclRate;
cmdConfig.MasterAddressMode = is7bit ? I2C_7BIT : I2C_10BIT;
if( PASS != I2C_SetConfig( port, &cmdConfig ))
{
I2C_SetConfig( port, &saveConfig );
RTA_SemRelease( SemID );
return FALSE;
}
/********************************************/
/* Read. */
/********************************************/
if( hasSubaddr )
{
status = I2C_MasterWriteRestartRead
( port,
devAddr,
1,
&subAddr,
0,
byteCount,
cmdGetPtrWrite(),
1000,
&bytes_written,
&bytes_read
);
}
else
{
status = I2C_MasterRead
( port,
devAddr,
byteCount,
cmdGetPtrWrite(),
0,
1000,
&bytes_read
);
}
cmdIncWrite( bytes_read );
I2C_SetConfig( port, &saveConfig );
RTA_SemRelease( SemID );
return PASS == status;
}
/****************************************************************************/
static BOOL cmdApp_I2CPass_wr( void ) /* 020a */
{
I2CPORT port = cmdGet1( I2CPORT );
BOOL is7bit = cmdGet1( BOOL );
BOOL hasSubaddr = cmdGet1( BOOL );
uint32 sclRate = cmdGet4( uint32 );
uint16 devAddr = cmdGet2( uint16 );
int08 status;
uint32 SemID;
I2CINIT saveConfig;
I2CINIT cmdConfig;
uint32 bytes_written;
/********************************************/
/* Validate. */
/********************************************/
if( port > 1 )
return FALSE;
/********************************************/
/* Save current port configuration and set */
/* up requested configuration. */
/********************************************/
I2C_GetSemaphoreID( port, &SemID );
if( RTA_SUCCESS != RTA_SemReserve( SemID, 100 ))
return FALSE;
I2C_GetConfig( port, &saveConfig );
I2C_GetConfig( port, &cmdConfig );
cmdConfig.SCLClockRate = sclRate;
cmdConfig.MasterAddressMode = is7bit ? I2C_7BIT : I2C_10BIT;
if( PASS != I2C_SetConfig( port, &cmdConfig ))
{
I2C_SetConfig( port, &saveConfig );
RTA_SemRelease( SemID );
return FALSE;
}
/********************************************/
/* Jump subaddress byte if request does not */
/* use the subaddress. */
/********************************************/
if( !hasSubaddr )
cmdIncRead( 1 );
/********************************************/
/* Write. */
/********************************************/
status = I2C_MasterWrite
( port,
devAddr,
cmdRemRead(),
cmdGetPtrRead(),
0,
1000,
&bytes_written
);
I2C_SetConfig( port, &saveConfig );
RTA_SemRelease( SemID );
return PASS == status;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -