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

📄 extosdlib.h

📁 GM5621原代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/*
	$Workfile:   extOsdLib.h  $
	$Revision:   1.63  $
	$Date:   Dec 10 2004 06:47:44  $
*/
//******************************************************************
//
//          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: extosdlib.h
//
//******************************************************************
#ifndef __EXTOSDLIB_H__
#define __EXTOSDLIB_H__

//*****************************************************************
//      General Definitions
//*****************************************************************

// font tables
#define TBL1BPP  0
#define TBLX1BPP 1
#define TBL2BPP  2
#define TBL4BPP  3

// Text direction
#define TXT_DIR_HORIZONTAL 0
#define TXT_DIR_VERTICAL   1

#define CTRL_SEL_CWCH   0 // Select control width and control height
#define CTRL_SEL_TWTH   1 // Select text width and text height
#define CTRL_SEL_CWTH   2 // Select text width and control height

// return codes
//#define OK          0x00
#define ERR         0xF0

#define MAX_NUMBER_OF_TILES 2

#define	OE_None	0

//*****************************************************************
//  Control Types
//*****************************************************************
//memory control class
typedef struct ST_OSD_MEMORYCONTROL_CTRLStruct
{
	DWORD	Address;
	DWORD	Size;
} ST_OSD_MEMORYCONTROL_CTRL;

extern gmt_RAMBuf ST_RAMBuffer;

//Hex long value
typedef enum
{
    HPP_NO_PREF_POST,       //Hexadecimal value only
    HPP_0X_PREF_POST,       //0x prefix
    HPP_X_PREF_POST,        //x prefix
    HPP_H_PREF_POST         //h postfix
} HexPrefPostType;

// Osd direction
typedef enum
{
    OSD_DIR_NORMAL = 0,
    OSD_DIR_MIRROR = 1,
    OSD_DIR_LEFT   = 2,
    OSD_DIR_RIGHT  = 3,
    OSD_DIR_UPDOWN = 4,
    OSD_DIR_LAST
};

//OSD stretch
typedef enum
{
    OSD_STRETCH_NONE = 0,
    OSD_STRETCH_HOR  = 1,
    OSD_STRETCH_VERT = 2,
    OSD_STRETCH_BOTH = 3
} OSDStretchType;

typedef struct ControlsInitStruct
{
	WORD far* InpWidth;
	WORD far* InpHeight;
	WORD far* InpVFreq;
	WORD far* InpHFreq;
	BYTE ROM* ROM* Dialogs;
	BYTE ROM* ROM* EmbeddedPointersArray;
	BYTE Granularity;
	BYTE ROM * ROM * GlphTbl;
	BYTE far * Language;
	BYTE far * OsdStretch;
	BYTE far * HwControlSelMethod;
	BYTE WhiteSpaceIdx;
	WORD PanelHRes;                 // Panel horizontal resolution
	WORD PanelVRes;                 // Panel vertical resolution
	WORD OsdLogicalScreenSize;      // Number of descrete positions the OSD to be placed on screen
} ControlsInitType;

typedef struct
{
    BYTE    TileId;
    BYTE    XPos;
    BYTE    YPos;
    BYTE    XSize;
    BYTE    YSize;
    BYTE ROM *	Colors;
} GeneralControl;

typedef struct ST_OSD_UNI_BITMAPStruct
{
    BYTE ROM *Bp_PixelData;
    BYTE ROM *Bp_HwIndexes;
    BYTE ROM *Bp_ColorMap;
} ST_OSD_UNI_BITMAP;

typedef struct ST_OSD_UNI_TEXTStruct
{
    BYTE ROM *Bp_TextString;
    BYTE ROM *Bp_HwIndexes;
} ST_OSD_UNI_TEXT;

typedef struct ST_OSD_UNI_USED_GLYPHSStruct
{
    BYTE ROM *Bp_Glyphs;
    BYTE      B_StartIndex;
    BYTE      B_NumChars;
} ST_OSD_UNI_USED_GLYPHS;

typedef struct ST_OSD_UNI_CONTROL_CHARSStruct
{
    BYTE ROM *Bp_PixelData;
    BYTE      B_StartIndex;
    BYTE      B_NumChars;
} ST_OSD_UNI_CONTROL_CHARS;

typedef enum EAlignment
{
    ALIGN_Left_Top,
    ALIGN_Right_Bottom,
    ALIGN_Center
};

typedef struct ST_CharBase_CtrlStruct
{
    BYTE    TileId;
    BYTE    XPos;
    BYTE    YPos;
    BYTE    XSize;
    BYTE    YSize;
    BYTE ROM *  Colors;
    ST_OSD_UNI_CONTROL_CHARS    ControlCharSet;
} ST_CharBase_Ctrl;


//
// Dialog and OSD Rectangle
//
typedef struct ST_OSD_DIALOG_CTRLStruct
{
    WORD    HPos;
    WORD    VPos;
    BYTE    XSize;
    BYTE    YSize;
    BYTE ROM *Colors;
} ST_OSD_DIALOG_CTRL;

typedef struct ST_OSD_INVISIBLESTATE_CTRLStruct
{
    BYTE ROM *Colors;
} ST_OSD_INVISIBLESTATE_CTRL;

typedef struct ST_OSD_THREECOLORTEXTBUTTON_CTRLStruct
{
	BYTE	TileId;
	BYTE	XPos;
	BYTE	YPos;
	BYTE	XSize;
	BYTE	YSize;
	BYTE ROM *	Colors;
	BYTE	Horizontal;
	BYTE	Vertical;
	ST_OSD_UNI_TEXT	Text;
} ST_OSD_THREECOLORTEXTBUTTON_CTRL;

typedef struct ST_OSD_TILE_CTRLStruct
{
    BYTE    TileId;
    BYTE    XPos;
    BYTE    YPos;
    BYTE    XSize;
    BYTE    YSize;
    BYTE    DialogId;
    BYTE    Color;
    WORD    AddrAttr;
    WORD    AddrCCF;
    WORD    AddrFont1BPP;
    WORD    AddrFontX1BPP;
    WORD    AddrFont2BPP;
    WORD    AddrFont4BPP;
} ST_OSD_TILE_CTRL;



//
// Bitmap controls
//
typedef struct ST_OSD_BITMAP_CTRLStruct
{
    BYTE    TileId;
    BYTE    XPos;
    BYTE    YPos;
    BYTE    XSize;
    BYTE    YSize;
    ST_OSD_UNI_BITMAP   Colors;
} ST_OSD_BITMAP_CTRL;

typedef ST_OSD_BITMAP_CTRL ST_OSD_BITMAPBUTTON_CTRL;

typedef struct ST_OSD_THREECOLORBITMAPBUTTON_CTRLStruct
{
	BYTE	TileId;
	BYTE	XPos;
	BYTE	YPos;
	BYTE	XSize;
	BYTE	YSize;
	ST_OSD_UNI_BITMAP	Colors;
} ST_OSD_THREECOLORBITMAPBUTTON_CTRL;



//
//	Text controls
//
typedef struct ST_OSD_STATICTEXT_CTRLStruct
{
    BYTE    TileId;
    BYTE    XPos;
    BYTE    YPos;
    BYTE    XSize;
    BYTE    YSize;
    BYTE ROM *  Colors;
    BYTE    Horizontal;
    BYTE    Vertical;
    ST_OSD_UNI_TEXT Text;
} ST_OSD_STATICTEXT_CTRL;

typedef ST_OSD_STATICTEXT_CTRL ST_OSD_TEXTBUTTON_CTRL;

typedef struct ST_OSD_LONGVALUE_CTRLStruct
{
    BYTE    TileId;
    BYTE    XPos;
    BYTE    YPos;
    BYTE    XSize;
    BYTE    YSize;
    BYTE ROM *  Colors;
    ST_OSD_UNI_USED_GLYPHS  UsedGlyphs;
    WORD    Associate;
    BYTE    Horizontal;
    BYTE    Vertical;
    SWORD   MinValue;
    SWORD   MaxValue;
} ST_OSD_LONGVALUE_CTRL;

typedef ST_OSD_LONGVALUE_CTRL ST_OSD_LONGVALUEBUTTON_CTRL;

typedef struct ST_OSD_NONPROPLONGVALUE_CTRLStruct
{
    BYTE    TileId;
    BYTE    XPos;
    BYTE    YPos;
    BYTE    XSize;
    BYTE    YSize;
    BYTE ROM *  Colors;
    ST_OSD_UNI_CONTROL_CHARS    ControlCharSet;
    WORD    Associate;
    BYTE    Horizontal;
    BYTE    Vertical;
    SWORD   MinValue;
    SWORD   MaxValue;
} ST_OSD_NONPROPLONGVALUE_CTRL;

typedef  ST_OSD_NONPROPLONGVALUE_CTRL ST_OSD_NONPROPLONGVALUEBUTTON_CTRL;

typedef struct ST_OSD_TIMINGINFO_CTRLStruct
{
    BYTE    TileId;
    BYTE    XPos;
    BYTE    YPos;
    BYTE    XSize;
    BYTE    YSize;
    BYTE ROM * Colors;
    ST_OSD_UNI_USED_GLYPHS  UsedGlyphs;
    BYTE    Horizontal;
    BYTE    Vertical;
} ST_OSD_TIMINGINFO_CTRL;

typedef struct ST_OSD_DYNAMICTEXT_CTRLStruct
{
	BYTE	TileId;
	BYTE	XPos;
	BYTE	YPos;
	BYTE	XSize;
	BYTE	YSize;
	BYTE ROM *	Colors;
	BYTE	Horizontal;
	BYTE	Vertical;
	ST_OSD_UNI_USED_GLYPHS	UsedGlyphs;
	WORD	PtrSegment;
	WORD	PtrOffset;
} ST_OSD_DYNAMICTEXT_CTRL;

typedef struct ST_OSD_TEXTEDITOR_CTRLStruct
{
	BYTE	TileId;
	BYTE	XPos;
	BYTE	YPos;
	BYTE	XSize;
	BYTE	YSize;
	BYTE ROM *	Colors;
	BYTE	Horizontal;
	BYTE	Vertical;
	BYTE	MaxString;
	ST_OSD_UNI_USED_GLYPHS	UsedGlyphs;
	WORD	PtrSegment;
	WORD	PtrOffset;
} ST_OSD_TEXTEDITOR_CTRL;

/*
typedef struct ST_OSD_CHANGECHANNEL_CTRLStruct
{
	BYTE	TileId;
	BYTE	XPos;
	BYTE	YPos;
	BYTE	XSize;
	BYTE	YSize;
	BYTE ROM *	Colors;
	ST_OSD_UNI_USED_GLYPHS	UsedGlyphs;
	WORD	Associate;
	BYTE	Horizontal;
	BYTE	Vertical;
	WORD	MinValue;
	WORD	MaxValue;
	BYTE	MaxString;
	BYTE	CurSize;
} ST_OSD_CHANGECHANNEL_CTRL;
*/

typedef struct ST_OSD_SHADOW_CTRLStruct
{
	BYTE	TileId;
	BYTE	XPos;
	BYTE	YPos;
	BYTE	XSize;
	BYTE	YSize;
	BYTE ROM *	Colors;
	ST_OSD_UNI_CONTROL_CHARS	ControlCharSet;
	BYTE	FixToCorner;
} ST_OSD_SHADOW_CTRL;



//
// Slider controls
//
typedef struct ST_OSD_SLIDER_CTRLStruct
{
    BYTE    TileId;
    BYTE    XPos;
    BYTE    YPos;
    BYTE    XSize;
    BYTE    YSize;
    BYTE ROM * Colors;
    ST_OSD_UNI_CONTROL_CHARS    ControlCharSet;
    WORD    Associate;
    BYTE    Direction;
} ST_OSD_SLIDER_CTRL;

typedef ST_OSD_SLIDER_CTRL ST_OSD_SLIDER2BPP_CTRL;
typedef ST_OSD_SLIDER_CTRL ST_OSD_SLIDER4BPP_CTRL;
typedef ST_OSD_SLIDER_CTRL ST_OSD_SLIDERBUTTON_CTRL;
typedef ST_OSD_SLIDER_CTRL ST_OSD_SLIDERBUTTON2BPP_CTRL;
typedef ST_OSD_SLIDER_CTRL ST_OSD_SLIDERBUTTON4BPP_CTRL;
typedef ST_OSD_SLIDER_CTRL ST_OSD_VERTICALSLIDER_CTRL;
typedef ST_OSD_SLIDER_CTRL ST_OSD_VERTICALSLIDER2BPP_CTRL;
typedef ST_OSD_SLIDER_CTRL ST_OSD_VERTICALSLIDER4BPP_CTRL;
typedef ST_OSD_SLIDER_CTRL ST_OSD_VERTICALSLIDERBUTTON_CTRL;
typedef ST_OSD_SLIDER_CTRL ST_OSD_VERTICALSLIDERBUTTON2BPP_CTRL;
typedef ST_OSD_SLIDER_CTRL ST_OSD_VERTICALSLIDERBUTTON4BPP_CTRL;


//

⌨️ 快捷键说明

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