#ifndef _TYPEDEF_H_ #define _TYPEDEF_H_ ////////////////////////////////////////////////// // data type ////////////////////////////////////////////////// #ifdef _MCU_ typedef bit BOOL ; #define _CODE //richard code #define _IDATA //richard idata #define _XDATA //richard xdata #else typedef int BOOL ; #define _CODE #define _IDATA #define _XDATA #endif // _MCU_ typedef char CHAR,*PCHAR ; typedef unsigned char uchar,*puchar ; typedef unsigned char UCHAR,*PUCHAR ; typedef unsigned char byte,*pbyte ; typedef unsigned char BYTE,*PBYTE ; typedef short SHORT,*PSHORT ; typedef unsigned short ushort,*pushort ; typedef unsigned short USHORT,*PUSHORT ; typedef unsigned short word,*pword ; typedef unsigned short WORD,*PWORD ; typedef long LONG,*PLONG ; typedef unsigned long ulong,*pulong ; typedef unsigned long ULONG,*PULONG ; typedef unsigned long dword,*pdword ; typedef unsigned long DWORD,*PDWORD ; #define FALSE 0 #define TRUE 1 #define SUCCESS 0 #define FAIL -1 #define ON 1 #define OFF 0 typedef enum _SYS_STATUS { ER_SUCCESS = 0, ER_FAIL, ER_RESERVED } SYS_STATUS ; #define abs(x) (((x)>=0)?(x):(-(x))) typedef enum _Video_State_Type { VSTATE_PwrOff = 0, VSTATE_SyncWait , VSTATE_SWReset, VSTATE_SyncChecking, VSTATE_HDCPSet, VSTATE_HDCP_Reset, VSTATE_ModeDetecting, VSTATE_VideoOn, VSTATE_Reserved } Video_State_Type ; typedef enum _Audio_State_Type { ASTATE_AudioOff = 0, ASTATE_RequestAudio , ASTATE_ResetAudio, ASTATE_WaitForReady, ASTATE_AudioOn , ASTATE_Reserved } Audio_State_Type ; typedef enum _TXVideo_State_Type { TXVSTATE_Unplug = 0, TXVSTATE_HPD, TXVSTATE_WaitForMode, TXVSTATE_WaitForVStable, TXVSTATE_VideoInit, TXVSTATE_VideoSetup, TXVSTATE_VideoOn, TXVSTATE_Reserved } TXVideo_State_Type ; typedef enum _TXAudio_State_Type { TXASTATE_AudioOff = 0, TXASTATE_AudioPrepare, TXASTATE_AudioOn, TXASTATE_AudioFIFOFail, TXASTATE_Reserved } TXAudio_State_Type ; typedef enum { PCLK_LOW = 0 , PCLK_MEDIUM, PCLK_HIGH } VIDEOPCLKLEVEL ; /////////////////////////////////////////////////////////////////////// // Video Data Type /////////////////////////////////////////////////////////////////////// #define F_MODE_RGB24 0 #define F_MODE_RGB444 0 #define F_MODE_YUV422 1 #define F_MODE_YUV444 2 #define F_MODE_CLRMOD_MASK 3 #define F_MODE_INTERLACE 1 #define F_MODE_ITU709 (1<<4) #define F_MODE_ITU601 0 #define F_MODE_0_255 0 #define F_MODE_16_235 (1<<5) #define F_MODE_EN_UDFILT (1<<6) // output mode only,and loaded from EEPROM #define F_MODE_EN_DITHER (1<<7) // output mode only,and loaded from EEPROM #define F_VIDMODE_ITU709 F_MODE_ITU709 // richard add #define F_VIDMODE_16_235 F_MODE_16_235 // richard add typedef union _VideoFormatCode { struct _VFC { BYTE colorfmt:2 ; BYTE interlace:1 ; BYTE Colorimetry:1 ; BYTE Quantization:1 ; BYTE UpDownFilter:1 ; BYTE Dither:1 ; } VFCCode ; unsigned char VFCByte ; } VideoFormatCode ; #define T_MODE_CCIR656 (1<<0) #define T_MODE_SYNCEMB (1<<1) #define T_MODE_INDDR (1<<2) #define T_MODE_PCLKDIV2 (1<<3) #define T_MODE_DEGEN (1<<4) #define T_MODE_SYNCGEN (1<<5) ////////////////////////////////////////////////////////////////// // Audio relate definition and macro. ////////////////////////////////////////////////////////////////// // for sample clock #define AUDFS_22p05KHz 4 #define AUDFS_44p1KHz 0 #define AUDFS_88p2KHz 8 #define AUDFS_176p4KHz 12 #define AUDFS_24KHz 6 #define AUDFS_48KHz 2 #define AUDFS_96KHz 10 #define AUDFS_192KHz 14 #define AUDFS_32KHz 3 #define AUDFS_OTHER 1 // Audio Enable #define ENABLE_SPDIF (1<<4) #define ENABLE_I2S_SRC3 (1<<3) #define ENABLE_I2S_SRC2 (1<<2) #define ENABLE_I2S_SRC1 (1<<1) #define ENABLE_I2S_SRC0 (1<<0) #define AUD_SWL_NOINDICATE 0x0 #define AUD_SWL_16 0x2 #define AUD_SWL_17 0xC #define AUD_SWL_18 0x4 #define AUD_SWL_20 0xA // for maximum 20 bit #define AUD_SWL_21 0xD #define AUD_SWL_22 0x5 #define AUD_SWL_23 0x9 #define AUD_SWL_24 0xB ///////////////////////////////////////////////////////////////////// // Packet and Info Frame definition and datastructure. ///////////////////////////////////////////////////////////////////// #define VENDORSPEC_INFOFRAME_TYPE 0x01 #define AVI_INFOFRAME_TYPE 0x02 #define SPD_INFOFRAME_TYPE 0x03 #define AUDIO_INFOFRAME_TYPE 0x04 #define MPEG_INFOFRAME_TYPE 0x05 #define VENDORSPEC_INFOFRAME_VER 0x01 #define AVI_INFOFRAME_VER 0x02 #define SPD_INFOFRAME_VER 0x01 #define AUDIO_INFOFRAME_VER 0x01 #define MPEG_INFOFRAME_VER 0x01 #define VENDORSPEC_INFOFRAME_LEN 8 #define AVI_INFOFRAME_LEN 13 #define SPD_INFOFRAME_LEN 25 #define AUDIO_INFOFRAME_LEN 10 #define MPEG_INFOFRAME_LEN 10 #define ACP_PKT_LEN 9 #define ISRC1_PKT_LEN 16 #define ISRC2_PKT_LEN 16 typedef union _AVI_InfoFrame { struct { BYTE Type ; BYTE Ver ; BYTE Len ; BYTE Scan:2 ; BYTE BarInfo:2 ; BYTE ActiveFmtInfoPresent:1 ; BYTE ColorMode:2 ; BYTE FU1:1 ; BYTE ActiveFormatAspectRatio:4 ; BYTE PictureAspectRatio:2 ; BYTE Colorimetry:2 ; BYTE Scaling:2 ; BYTE FU2:6 ; BYTE VIC:7 ; BYTE FU3:1 ; BYTE PixelRepetition:4 ; BYTE FU4:4 ; SHORT Ln_End_Top ; SHORT Ln_Start_Bottom ; SHORT Pix_End_Left ; SHORT Pix_Start_Right ; } info ; struct { BYTE AVI_HB[3] ; BYTE AVI_DB[AVI_INFOFRAME_LEN] ; } pktbyte ; } AVI_InfoFrame ; typedef union _Audio_InfoFrame { struct { BYTE Type ; BYTE Ver ; BYTE Len ; BYTE AudioChannelCount:3 ; BYTE RSVD1:1 ; BYTE AudioCodingType:4 ; BYTE SampleSize:2 ; BYTE SampleFreq:3 ; BYTE Rsvd2:3 ; BYTE FmtCoding ; BYTE SpeakerPlacement ; BYTE Rsvd3:3 ; BYTE LevelShiftValue:4 ; BYTE DM_INH:1 ; } info ; struct { BYTE AUD_HB[3] ; BYTE AUD_DB[AUDIO_INFOFRAME_LEN] ; } pktbyte ; } Audio_InfoFrame ; typedef union _MPEG_InfoFrame { struct { BYTE Type ; BYTE Ver ; BYTE Len ; ULONG MpegBitRate ; BYTE MpegFrame:2 ; BYTE Rvsd1:2 ; BYTE FieldRepeat:1 ; BYTE Rvsd2:3 ; } info ; struct { BYTE MPG_HB[3] ; BYTE MPG_DB[MPEG_INFOFRAME_LEN] ; } pktbyte ; } MPEG_InfoFrame ; // Source Product Description typedef union _SPD_InfoFrame { struct { BYTE Type ; BYTE Ver ; BYTE Len ; char VN[8] ; // vendor name character in 7bit ascii characters char PD[16] ; // product description character in 7bit ascii characters BYTE SourceDeviceInfomation ; } info ; struct { BYTE SPD_HB[3] ; BYTE SPD_DB[SPD_INFOFRAME_LEN] ; } pktbyte ; } SPD_InfoFrame ; /////////////////////////////////////////////////////////////////////////// // Using for interface. /////////////////////////////////////////////////////////////////////////// struct VideoTiming { ULONG VideoPixelClock ; BYTE VIC ; BYTE pixelrep ; BYTE outputVideoMode ; } ; #endif // _TYPEDEF_H_