📄 extosdlib.h
字号:
/*
$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 + -