mirror of
https://github.com/marqs85/ossc.git
synced 2024-09-11 07:54:24 +00:00
330 lines
7.5 KiB
C
330 lines
7.5 KiB
C
|
#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_
|