📄 ddcci.h
字号:
/*
$Workfile: ddcci.h $
$Revision: 1.13 $
$Date: May 17 2006 01:34:42 $
*/
//******************************************************************
//
// Copyright (C) 2002. GENESIS MICROCHIP INC.
// All rights reserved. No part of this program may be reproduced
//
// Genesis Microchip Corp., 2150 Gold Street
// Alviso, CA 95002 USA
// Genesis Microchip Inc., 165 Commerce Valley Dr. West
// Thornhill, Ontario, Canada, L3T 7V8
//
//================================================================
//
// MODULE: ddcci.h
//
//******************************************************************
#ifndef __DDC2BI_H__
#define __DDC2BI_H__
/****************************************************************************/
/* E X T E R N A L V A R I A B L E S */
/****************************************************************************/
/****************************************************************************/
/* G L O B A L D E F I N I T I O N S */
/****************************************************************************/
// commands delegated to the external rom code handle
typedef enum PARSER_STATUS
{
NO_MSG_PARSED,
MSG_PARSED,
UNKNOWN_MSG_CMD
}PARSER_STATUS_t;
// DDC2Bi standard definitions
#define DDC2B_DEST_ADDRESS 0x6e
#define DDC2B_SRC_ADDRESS 0x51
#define DDC2Bi_PROTOCOL_ID 0x01
#define DDC2Bi_CONTROL_STATUS_FLAG 0x80
#define DDC2Bi_DEVICE_DATA_STREAM_FLAG 0x00
//DDC2Bi commands
#define DDC2B_CMD_DEBUG 0xC2
#define DDC2B_CMD_GetVCPFeature 0x01
#define DDC2B_CMD_GetVCPFeature_Reply 0x02
#define DDC2B_CMD_SetVCPFeature 0x03
#define DDC2B_CMD_SaveCurrentSettings 0x0C
#define DDC2B_CMD_CapabilitiesRequest 0xF3
#define DDC2B_CMD_CapabilitiesRequest_Reply 0xE3
#define DDC2B_CMD_GetTimingReport 0x07
#define DDC2B_CMD_GetTimingReport_Reply 0x4E
//Custom commands
#define DDC2B_CMD_CUSTM_GetVCPPage 0xC4
#define DDC2B_CMD_CUSTM_GetVCPPage_Reply 0xC5
#define DDC2B_CMD_CUSTM_GetPagedVCP 0xC6
#define DDC2B_CMD_CUSTM_GetPagedVCP_Reply 0xC7
#define DDC2B_CMD_CUSTM_SetPagedVCP 0xC8
#define DDC2B_CMD_CUSTM_SetPagedVCP_Reply 0xC7
#define DDC2B_CMD_CUSTM_EEPROM 0xC0
#define DDC2B_CMD_CUSTM_EEPROM_Reply 0xC1
//CUSTM EEPROM commands
#define DDC2B_CMD_CUSTM_EEPROMRead 0x09
#define DDC2B_CMD_CUSTM_AssetRead 0x0B
#define DDC2B_CMD_CUSTM_AssetWrite 0x0E
//VCP commands Page0
#define DDC2B_CMD_VCP_NewControlVal 0x02 //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_ALLReset 0x04
#define DDC2B_CMD_VCP_BrightContrastReset 0x05 //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_GeometryReset 0x06
#define DDC2B_CMD_VCP_ColorReset 0x08
#define DDC2B_CMD_VCP_Clock 0x0E
#define DDC2B_CMD_VCP_Brightness 0x10
#define DDC2B_CMD_VCP_Contrast 0x12
#define DDC2B_CMD_VCP_SelectColorPreset 0x14
#define DDC2B_CMD_VCP_RedGain 0x16
#define DDC2B_CMD_VCP_GreenGain 0x18
#define DDC2B_CMD_VCP_BlueGain 0x1A
#define DDC2B_CMD_VCP_AutoSetUp 0x1E
#define DDC2B_CMD_VCP_HPosition 0x20
#define DDC2B_CMD_VCP_VPosition 0x30
#define DDC2B_CMD_VCP_ClockPhase 0x3E
#define DDC2B_CMD_VCP_ColorTemp 0x54
#define DDC2B_CMD_VCP_InputSource 0x60 //To make MCCS 2.0 Compliant - 26July04
#define DDC2B_CMD_VCP_AudioVolume 0x62
#define DDC2B_CMD_VCP_Language 0x68
#define DDC2B_CMD_VCP_TVSaturation 0x8A
#define DDC2B_CMD_VCP_TVSharpness 0x8C
#define DDC2B_CMD_VCP_WindowPosTL_X 0x95
#define DDC2B_CMD_VCP_WindowPosTL_Y 0x96
#define DDC2B_CMD_VCP_WindowPosBR_X 0x97
#define DDC2B_CMD_VCP_WindowPosBR_Y 0x98
#define DDC2B_CMD_VCP_RED 0x9B
#define DDC2B_CMD_VCP_YELLOW 0x9C
#define DDC2B_CMD_VCP_GREEN 0x9D
#define DDC2B_CMD_VCP_CYAN 0x9E
#define DDC2B_CMD_VCP_BLUE 0x9F
#define DDC2B_CMD_VCP_MAGENDA 0xA0
#define DDC2B_CMD_VCP_SyncType 0xA8
#define DDC2B_CMD_VCP_HFreq 0xAC //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_VFreq 0xAE //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_RGBodering 0xB4
#define DDC2B_CMD_VCP_MonitorType 0xB6
#define DDC2B_CMD_VCP_DisplayUsageTime 0xC0 //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_ApplnEnKey 0xC6 //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_DispControllerType 0xC8 //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_DispFirmwareLevel 0xC9 //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_OSD 0xCA //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_PowerMode 0xD6 //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_MCCSVersion 0xDF //To make MCCS 2.0 Compliant - 14June04
#define DDC2B_CMD_VCP_ControlLock 0xE3
// for Black level
#ifdef Action_AdjustBlackLevel_WB_Used
#define Red_Video_Black_Level 0x6C
#define Green_Video_Black_Level 0x6E
#define Blue_Video_Black_Level 0x70
#endif
#define DDC2B_ChangeportToVGA 0xF1
#define DDC2B_ChangeportToDVI 0xF2
//VCP commands for theft deterrence
#if THEFT_DETERRENCE_SUPPORT
#define DDC2B_CMD_VCP_ACMOde 0xFA
#define DDC2B_CMD_VCP_ACTimeout 0xFB
#define DDC2B_CMD_VCP_ACPINLow 0xFC
#define DDC2B_CMD_VCP_ACPINHigh 0xFD
#define DDC2B_CMD_VCP_TDState 0xFE
#endif
//VCP commands Page2
#define DDC2B_CMD_VCP_ContrastAuto 0x37
#define DDC2B_CMD_VCP_OSDHPosition 0x38
#define DDC2B_CMD_VCP_OSDVPosition 0x39
// DDCCI color temp
#define DDCCI_sRGB 0x01
#define DDCCI_4000K 0x03
#define DDCCI_5000K 0x04
#define DDCCI_6500K 0x05
#define DDCCI_7500K 0x06
#define DDCCI_9300K 0x08
#define DDCCI_USER1 0x0B
//Thfet states
#if THEFT_DETERRENCE_SUPPORT
#define DDCCI_TDSTATE_NORMAL 0x00
#define DDCCI_TDSTATE_POSSIBLETHEFT 0x01
#define DDCCI_TDSTATE_THEFT 0x02
#define DDCCI_TDSTATE_LOGINTIMEOUT 0x04
#endif
#define GET_VCP 0
#define SET_VCP 1
typedef struct VCPAdjusterStruct{
BYTE vcp_opcode;
WORD adj_offset;
}VCPAdjOffsetType;
typedef struct DDCCIToRegStruct{
BYTE opcode;
WORD reg;
}DDCCIToRegType;
// receive buffer size
#define BUFFER_SIZE 128
// P0 read or write indicator
#define P0_RDWR_MASK 0x80
// receive/transmit buffer syntax defines
#define LENGTH 0
#define COMMAND 1
#define PARAMETER 2
typedef struct DDC2Bi_GetVCPFeatureCmdStruct{
BYTE length;
BYTE command;
BYTE vcp_opcode;
BYTE chk;
}DDC2Bi_GetVCPFeatureCmd_t;
typedef struct VCPFeaturePktBodyStruct
{
BYTE vcp_opcode;
BYTE vcp_type;
// BYTE maxhi;
// BYTE maxlow;
WORD max;
// BYTE valuehi;
// BYTE valuelow;
WORD value;
}VCPFeaturePktType;
typedef struct DDC2Bi_GetVCPFeature_ReplyCmdStruct{
BYTE length;
BYTE command;
BYTE result;
VCPFeaturePktType a_VCPFeature;
BYTE chk;
}DDC2Bi_GetVCPFeature_ReplyCmd_t;
typedef struct DDC2Bi_SetVCPFeatureCmdStruct{
BYTE length;
BYTE command;
BYTE vcp_opcode;
// BYTE valuehi;
// BYTE valuelow;
WORD val;
BYTE chk;
}DDC2Bi_SetVCPFeatureCmd_t;
typedef struct DDC2Bi_GetPagedVCPCmdStruct{
BYTE length;
BYTE command;
BYTE vcp_page;
BYTE vcp_opcode;
BYTE chk;
}DDC2Bi_GetPagedVCPCmd_t;
typedef struct DDC2Bi_GetPagedVCP_ReplyCmdStruct{
BYTE length;
BYTE command;
BYTE result;
BYTE vcp_page;
VCPFeaturePktType b_VCPFeature;
BYTE chk;
}DDC2Bi_GetPagedVCP_ReplyCmd_t;
typedef struct DDC2Bi_SetPagedVCPCmdStruct{
BYTE length;
BYTE command;
BYTE vcp_page;
BYTE vcp_opcode;
// BYTE valuehi;
// BYTE valuelow;
WORD value;
BYTE chk;
}DDC2Bi_SetPagedVCPCmd_t;
typedef struct DDC2Bi_GetVCPPage_ReplyCmdStruct{
BYTE length;
BYTE command;
BYTE vcp_page;
BYTE vcp_maxpage;
BYTE chk;
}DDC2Bi_GetVCPPage_ReplyCmd_t;
//CUSTM EEPROM commands definitions
typedef struct DDC2Bi_EEPROMCmdStruct{
BYTE length;
BYTE command;
BYTE eeprom_cmd;
}DDC2Bi_EEPROMCmd_t;
typedef struct DDC2Bi_EEPROMReadCmdStruct{
BYTE length;
BYTE command;
BYTE eeprom_cmd;
BYTE leng;
// BYTE addrhi;
// BYTE addrlow;
WORD addr;
BYTE chk;
}DDC2Bi_EEPROMReadCmd_t;
typedef struct DDC2Bi_AssetReadCmdStruct{
BYTE length;
BYTE command;
BYTE eeprom_cmd;
BYTE offset;
BYTE leng;
BYTE chk;
}DDC2Bi_AssetReadCmd_t;
typedef struct DDC2Bi_AssetWriteCmdStruct{
BYTE length;
BYTE command;
BYTE eeprom_cmd;
BYTE offset;
}DDC2Bi_AssetWriteCmd_t;
//GetCapabilitiesRequest command definitions
typedef struct CapabilitiesRequestStruct{
BYTE size;
BYTE ROM* str;
}CapabilitiesRequestType;
typedef struct DDC2Bi_GetCpRequestCmdStruct{
BYTE length;
BYTE command;
// BYTE offsethi;
// BYTE offsetlow;
WORD offset;
BYTE chk;
}DDC2Bi_GetCpRequestCmd_t;
#define OutOfRangeBit BIT7
#define UnstblCountBit BIT6
#define ReservedBit BIT5
#define HSyncPolarityBit BIT1
#define VSyncPolarityBit BIT0
typedef struct DDC2Bi_GetTiming_ReplyCmd {
BYTE length;
BYTE command;
BYTE status;
WORD h_freq;
WORD v_freq;
BYTE chk;
} DDC2Bi_GetTiming_ReplyCmd_t;
typedef union CommBufferStruct{
BYTE buff[128];
DDC2Bi_GetVCPFeatureCmd_t DDC2BiGetVCPFeatureCmd;
DDC2Bi_GetVCPFeature_ReplyCmd_t DDC2BiGetVCPFeature_ReplyCmd;
DDC2Bi_SetVCPFeatureCmd_t DDC2BiSetVCPFeatureCmd;
DDC2Bi_GetPagedVCPCmd_t DDC2BiGetPagedVCPCmd;
DDC2Bi_GetPagedVCP_ReplyCmd_t DDC2BiGetPagedVCP_ReplyCmd;
DDC2Bi_SetPagedVCPCmd_t DDC2BiSetPagedVCPCmd;
DDC2Bi_GetVCPPage_ReplyCmd_t DDC2BiGetVCPPage_ReplyCmd;
DDC2Bi_GetCpRequestCmd_t DDC2Bi_GetCpRequestCmd;
DDC2Bi_GetTiming_ReplyCmd_t DDC2Bi_GetTiming_ReplyCmd;
DDC2Bi_EEPROMCmd_t DDC2Bi_EEPROMCmd;
DDC2Bi_EEPROMReadCmd_t DDC2Bi_EEPROMReadCmd;
DDC2Bi_AssetReadCmd_t DDC2Bi_AssetReadCmd;
DDC2Bi_AssetWriteCmd_t DDC2Bi_AssetWriteCmd;
}CommBufferType;
/****************************************************************************/
/* G L O B A L F U N C T I O N P R O T O T Y P E S */
/****************************************************************************/
#endif // __DDC2BI_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -