📄 tidtv_glib.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 + -