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

📄 tidtv_glib.h

📁 ti的数字电视芯片 tvp9000的源码
💻 H
字号:
/*******************************************************************************
*	@ModuleName  ::	TiDTV_GLib.h
*	
*	@Copyright	 ::	Copyright 2005- Texas Instruments, Inc.
*	
*	@Description ::	Prototype definitions for DTV Graphics Library
*	
*	@History     ::
*---------------------------------------
*	03-01-2005	W.Shi	Created
*******************************************************************************/

#ifndef	_TI_DTV_GLIB_H_
#define	_TI_DTV_GLIB_H_

//----------------------------------------------------------
//	Definitions for the Character code space (16 bits)
//		bit15 - bit12:	the flag of Character sets
//		bit11 - bit0:	Character code value
//
//		null (0) = the string Terminator
//
#define TI_DTV_CHAR_SET_BIT				12			// the bit position for the flag of Character Set
#define TI_DTV_CHAR_SET_MASK			0xF000		// the mask value of the flag of Character Set

#define TI_DTV_CHAR_SET_CTRL			0xF000		// Special Control code
#define TI_DTV_CHAR_SET_CTRL_MASK		0xFF00		// Special Control code mask
#define TI_DTV_CHAR_SET_ICON			0xF000		// Icon (Bit mapped symbols)
#define TI_DTV_CHAR_SET_ATTIBUTE		0xF800		// Attributes setting
#define	TI_DTV_CHAR_UNDERLINE			0xF801
#define	TI_DTV_CHAR_ITALICS				0xF802
#define	TI_DTV_CHAR_FLASH				0xF804
#define	TI_DTV_CHAR_FORE_COLOR			0xF400
#define	TI_DTV_CHAR_BACK_COLOR			0xF200
#define	TI_DTV_CHAR_FONT_SIZE			0xF100		// Font size
#define	TI_DTV_CHAR_FONT_SMALL			0xF100		// Font size: Small
#define	TI_DTV_CHAR_FONT_STANDARD		0xF101		// Font size: Standard
#define	TI_DTV_CHAR_FONT_LARGE			0xF102		// Font size: Large

#define TI_DTV_CHAR_SET_EIA708B			0x0000		// EIA-708-B Characters set (font-0)
#define TI_DTV_CHAR_SET_EIA708B_1		0x0200		// EIA-708-B Characters set (font-1)
#define TI_DTV_CHAR_SET_EIA708B_2		0x0400		// EIA-708-B Characters set (font-2)
#define TI_DTV_CHAR_SET_EIA708B_3		0x0600		// EIA-708-B Characters set (font-3)
#define TI_DTV_CHAR_SET_EIA708B_4		0x0800		// EIA-708-B Characters set (font-4)
#define TI_DTV_CHAR_SET_EIA708B_5		0x0A00		// EIA-708-B Characters set (font-5)
#define TI_DTV_CHAR_SET_EIA708B_6		0x0C00		// EIA-708-B Characters set (font-6)
#define TI_DTV_CHAR_SET_EIA708B_7		0x0E00		// EIA-708-B Characters set (font-7)

#define TI_DTV_CHAR_SET_CHINESE			0x1000		// Chinese half size (BanJiao)
#define TI_DTV_CHAR_SET_CHINESE_1		0x1800		// Chinese normal size (QuanJiao)
#define TI_DTV_CHAR_SET_JAPANESE		0x2000		// Japanese half size (Hankaku)
#define TI_DTV_CHAR_SET_JAPANESE_1		0x2800		// Japanese normal size (Zenkaku)

//---------------------------------------------------------
// Definitions for Graphics elements
//
typedef struct _TI_DTV_G_POINT_ {
	short	x, y;
} TI_DTV_G_POINT;

typedef struct _TI_DTV_G_RECT_ {
	short	x, y;
	short	w, h;
} TI_DTV_G_RECT, TI_DTV_G_AREA;

typedef struct _TI_DTV_G_ICON_ {
	UCHAR	Width, Height;							// Cell box size: Width x Height
	UCHAR	BitsPerPixel;							// bits per pixel: 1/2/4/8
	UCHAR	*pCLUT;									// pointer to the CLUT when BitsPerPixel = 1/2/4
	UCHAR	*pBitmap;								// pointer to the Bitmap data
} TI_DTV_G_ICON;

typedef union _TI_DTV_G_CHAR_ATTRIB_ {
	USHORT	Data;
	
	struct {
		UINT	Reserved:			4;				// reserved
		UINT	AutoCellSize:		1;				// 1 = Automatic Adjust Cell Size
		UINT	FontStyle:			3;				// Font style: 0 - 7
		UINT	FontSize:			2;				// Font size: 0 = Small, 1 = Standard, 2 = Large
		UINT	Italics:			1;
		UINT	Underline:			1;
		UINT	FlashOn:			1;
		UINT	BlendRatio:			3;
	} Bits;
} TI_DTV_G_CHAR_ATTRIB;

enum _TI_DTV_EIA708_FONT_STYLE_enum_ {
	TI_DTV_EIA708B_FONT_DEFAULT,					// default -- can be one of the other seven
	TI_DTV_EIA708B_FONT_MONO_SERIF,					// monospaced w/serifs
	TI_DTV_EIA708B_FONT_PROP_SERIF,					// proportionally spaced w/serifs
	TI_DTV_EIA708B_FONT_MONO_SANS,					// monospaced w/o serifs
	TI_DTV_EIA708B_FONT_PROP_SANS,					// proportionally spaced w/o serifs
	TI_DTV_EIA708B_FONT_CASUAL,						// "casual"
	TI_DTV_EIA708B_FONT_CURSIVE,					// "cursive"
	TI_DTV_EIA708B_FONT_SMALLCAPS					// small caps
};

enum _TI_DTV_EIA708_FONT_SIZE_enum_ {
    TI_DTV_EIA708B_FONT_SMALL,						// small
    TI_DTV_EIA708B_FONT_STANDARD,					// standard
    TI_DTV_EIA708B_FONT_LARGE						// large
};

#define	TI_DTV_FONT_BITMAP_HOR			0x00		// Horizontal bitmapped font data
#define	TI_DTV_FONT_BITMAP_VER			0x80		// Vertical bitmapped font data

typedef struct _TI_DTV_G_CHAR_ {
	UCHAR	CellWidth, CellHeight;					// Cell size for a character/space
	INT8	DeltaX, DeltaY;							// Offset of X/Y position for drawing
	
	UCHAR	Width;									// Character Width (pixels): bit-7 = H(0)/V(1) bitmap arrangement
	UCHAR	Height;									// Character Height: bit-7 = H(0)/V(1) bitmap arrangement
	UCHAR	*pBitmap;								// pointer to the Bitmap data: 1-bpp
} TI_DTV_G_CHAR;

//---------------------------------------------------------
// This is the physical OSD Window which likes the Region
//
typedef struct _TI_DTV_OSD_WINDOW_ {
	UCHAR	*pBitmapBase;							// Bitmap data base address
	int		BitMapBufSize;							// Bitmap buffer size in Byte
	TI_DTV_G_AREA	Area;							// Window Display Area
	
	short	CurX, CurY;								// Current Graphics position
	UCHAR	CurCharForeColor, CurCharBackColor;		// Foreground/Backround color color
	TI_DTV_G_CHAR_ATTRIB	CurCharAttrib;			// Character attributes
	
	TI_DTV_G_CHAR	CurCharPattern;					// Current character pattern
} TI_DTV_OSD_WINDOW;

typedef struct _TI_DTV_OSD_SCREEN_ {
	UCHAR	RegionID;								// Region ID
	UCHAR	ShadowSize;								// Shadow Size (number of pixels)
	UCHAR	RoundCornerSize;						// Round Corner Size (number of pixels)
	UCHAR	TotalNumWindows;						// Total number of Windows
	TI_DTV_OSD_WINDOW	*pCurDrawWindow;			// pointer to Current Draw Window
	TI_DTV_OSD_WINDOW	*pCurDispWindow;			// pointer to Current Display Window
	TI_DTV_OSD_WINDOW	*pOsdWindows;				// pointer to the list of OSD Windows
} TI_DTV_OSD_SCREEN;

//---------------------------------------------------------
// Control parameters for RECT, CIRCLE, etc.
//
#define	TI_DTV_G_BORDER					0x01		// Draw border
#define	TI_DTV_G_OPAQUE					0x02		// Do interior filling
#define	TI_DTV_G_SHADOW					0x04		// Draw the shadow
#define	TI_DTV_G_2ROUND					0x08		// Rounded 2 Corners (Top left and Top Right)
#define	TI_DTV_G_4ROUND					0x10		// Rounded all 4 Corners

//---------------------------------------------------------
// Defined in 'TiDTV_GLib.c'
//
void TiDTV_OsdInitScreen(TI_DTV_OSD_SCREEN *pOsdScreen, short x, short y, short w, short h);
void TiDTV_OsdSetDrawWindow(TI_DTV_OSD_SCREEN *pOsdScreen, TI_DTV_OSD_WINDOW *pOsdWindow);
void TiDTV_OsdSetDispWindow(TI_DTV_OSD_SCREEN *pOsdScreen, TI_DTV_OSD_WINDOW *pOsdWindow);
void TiDTV_OsdFlipWindow(TI_DTV_OSD_SCREEN *pOsdScreen);
void TiDTV_OsdClearWindow(TI_DTV_OSD_SCREEN *pOsdScreen, TI_DTV_OSD_WINDOW *pOsdWindow, UCHAR FillColor);
void TiDTV_OsdSetBlendRatio(UCHAR Color, UCHAR BlendRatio);
UCHAR TiDTV_OsdGetBlendRatio(UCHAR Color);

void TiDTV_OsdMove(TI_DTV_OSD_SCREEN *pOsdScreen, short x, short y);
void TiDTV_OsdMoveOffset(TI_DTV_OSD_SCREEN *pOsdScreen, short DeltaX, short DeltaY);
void TiDTV_OsdSetCharAttrib(TI_DTV_OSD_SCREEN *pOsdScreen, TI_DTV_G_CHAR_ATTRIB *pCharAttrib);
void TiDTV_OsdGetCharAttrib(TI_DTV_OSD_SCREEN *pOsdScreen, TI_DTV_G_CHAR_ATTRIB *pCharAttrib);
void TiDTV_OsdSetCharFont(TI_DTV_OSD_SCREEN *pOsdScreen, UCHAR FontStyle,
					UCHAR FontSize, UCHAR AutoCellSize,
					UCHAR CellWidth, UCHAR CellHeight,
					INT8  DeltaX, INT8 DeltaY);
void TiDTV_OsdSetCharColor(TI_DTV_OSD_SCREEN *pOsdScreen, UCHAR ForeColor, UCHAR BackColor);
void TiDTV_OsdDrawChar(TI_DTV_OSD_SCREEN *pOsdScreen, USHORT CharCode);
void TiDTV_OsdDrawIcon(TI_DTV_OSD_SCREEN *pOsdScreen, USHORT IconCode);
void TiDTV_OsdDrawString(TI_DTV_OSD_SCREEN *pOsdScreen, USHORT *pString);
void TiDTV_OsdDrawAsciiStr(TI_DTV_OSD_SCREEN *pOsdScreen, char *pAsciiStr);

void TiDTV_OsdHorLine(TI_DTV_OSD_SCREEN *pOsdScreen, short Width, UCHAR Color);
void TiDTV_OsdVerLine(TI_DTV_OSD_SCREEN *pOsdScreen, short Heifht, UCHAR Color);

void TiDTV_OsdSolidRect(TI_DTV_OSD_SCREEN *pOsdScreen, short x, short y, short w, short h, UCHAR Color);
void TiDTV_OsdRect(TI_DTV_OSD_SCREEN *pOsdScreen, short x, short y, short w, short h,
					UCHAR Attrib, UCHAR BorderColor, UCHAR FillColor, UCHAR ShadowColor);

void TiDTV_OsdGetImage(TI_DTV_OSD_SCREEN *pOsdScreen, short x, short y, short w, short h, UCHAR *ImgBuf);
void TiDTV_OsdPutImage(TI_DTV_OSD_SCREEN *pOsdScreen, short x, short y, UCHAR *pImgBuf);

void TiDTV_OsdWritePixel(TI_DTV_OSD_SCREEN *pOsdScreen, UCHAR Color);
void TiDTV_OsdDraw(TI_DTV_OSD_SCREEN *pOsdScreen, short x, short y, UCHAR Color);
void TiDTV_OsdEllipe(TI_DTV_OSD_SCREEN *pOsdScreen, short x, short y, short a, short b,
					UCHAR Attrib, UCHAR BorderColor, UCHAR FillColor, UCHAR ShadowColor);

//---------------------------------------------------------
// Definitions for Color Index:
//	Based on the 216 Browser Safe Color Palette,
//	and EIA708B 22 CLUT
//
#define	TI_DTV_COLOR_BLACK				216
#define	TI_DTV_COLOR_GRAY				130
#define	TI_DTV_COLOR_WHITE				87
#define	TI_DTV_COLOR_BRIGHT_WHITE		1
#define	TI_DTV_COLOR_DARK_RED			144
#define	TI_DTV_COLOR_RED				108
#define	TI_DTV_COLOR_BRIGHT_RED			36
#define	TI_DTV_COLOR_DARK_GREEN			204
#define	TI_DTV_COLOR_GREEN				198
#define	TI_DTV_COLOR_BRIGHT_GREEN		186
#define	TI_DTV_COLOR_DARK_BLUE			214
#define	TI_DTV_COLOR_BLUE				213
#define	TI_DTV_COLOR_BRIGHT_BLUE		211
#define	TI_DTV_COLOR_DARK_YELLOW		132
#define	TI_DTV_COLOR_YELLOW				90
#define	TI_DTV_COLOR_BRIGHT_YELLOW		6
#define	TI_DTV_COLOR_DARK_MAGENTA		142
#define	TI_DTV_COLOR_MAGENTA			105
#define	TI_DTV_COLOR_BRIGHT_MAGENTA		31
#define	TI_DTV_COLOR_DARK_CYAN			202
#define	TI_DTV_COLOR_CYAN				195
#define	TI_DTV_COLOR_BRIGHT_CYAN		181

enum _TI_DTV_COLOR_enum_ {
	TI_DTV_COLOR_BLEND_BLACK = 217,
	TI_DTV_COLOR_BLEND_GRAY,
	TI_DTV_COLOR_BLEND_WHITE,
	TI_DTV_COLOR_BLEND_BRIGHT_WHITE,
	TI_DTV_COLOR_BLEND_DARK_RED,
	TI_DTV_COLOR_BLEND_RED,
	TI_DTV_COLOR_BLEND_BRIGHT_RED,
	TI_DTV_COLOR_BLEND_DARK_GREEN,
	TI_DTV_COLOR_BLEND_GREEN,
	TI_DTV_COLOR_BLEND_BRIGHT_GREEN,
	TI_DTV_COLOR_BLEND_DARK_BLUE,
	TI_DTV_COLOR_BLEND_BLUE,
	TI_DTV_COLOR_BLEND_BRIGHT_BLUE,
	TI_DTV_COLOR_BLEND_DARK_YELLOW,
	TI_DTV_COLOR_BLEND_YELLOW,
	TI_DTV_COLOR_BLEND_BRIGHT_YELLOW,
	TI_DTV_COLOR_BLEND_DARK_MAGENTA,
	TI_DTV_COLOR_BLEND_MAGENTA,
	TI_DTV_COLOR_BLEND_BRIGHT_MAGENTA,
	TI_DTV_COLOR_BLEND_DARK_CYAN,
	TI_DTV_COLOR_BLEND_CYAN,
	TI_DTV_COLOR_BLEND_BRIGHT_CYAN,
	
	TI_DTV_COLOR_MONEY_GREEN,
	TI_DTV_COLOR_SKY_BLUE,
	TI_DTV_COLOR_CREAM,
	TI_DTV_COLOR_MEDIUM_GRAY,
	
	TI_DTV_COLOR_BLEND_MONEY_GREEN,
	TI_DTV_COLOR_BLEND_SKY_BLUE,
	TI_DTV_COLOR_BLEND_CREAM,
	TI_DTV_COLOR_BLEND_MEDIUM_GRAY,
	
	TI_DTV_COLOR_BLEND_GRAY_1,
	TI_DTV_COLOR_BLEND_GRAY_2,
	TI_DTV_COLOR_BLEND_GRAY_3,
	TI_DTV_COLOR_BLEND_GRAY_4,
	TI_DTV_COLOR_BLEND_GRAY_5,
	TI_DTV_COLOR_BLEND_GRAY_6,
	TI_DTV_COLOR_BLEND_GRAY_7,
	TI_DTV_COLOR_BLEND_GRAY_8,
	TI_DTV_COLOR_BLEND_GRAY_9
};

//---------------------------------------------------------
// Defined in "TiDTV_GLib.c"
//
extern TI_DTV_OSD_SCREEN TiDTV_OsdScreenMain;	// one Region, two full-size Bitmap RAM
extern TI_DTV_OSD_SCREEN TiDTV_OsdScreenAux;	// two Regions, one half-size Bitmap RAM

//----------------------------------------------------------
// Definied in "DTV_IconPool.c"
//
extern const TI_DTV_G_ICON *pDtvIconBase[];		// pointer to Icon data base

//---------------------------------------------------------
// Defined in "TiDTV_FontPool.c"
//	Font format dependent function:
//	Defined outside the Graphics Library
//
extern const UCHAR **pTiDTV_Eia708Font[];
extern const UCHAR TiDTV_FontCellSize[][2];

void TiDTV_OsdGetCharPattern(USHORT CharCode, TI_DTV_OSD_WINDOW *pOsdWindow);

#endif	/* _TI_DTV_GLIB_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -