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

📄 gdi.h

📁 ct952 source code use for Digital Frame Photo
💻 H
📖 第 1 页 / 共 2 页
字号:
#define BUTTON_DISABLED     0x01#define BUTTON_PUSH         0x02#define BUTTON_HIGHLIGHT    0x03#define BUTTON_WITH_TEXT    0x04#define BUTTON_ID_LANGUAGE	0#define BUTTON_ID_SCREEN	1#define BUTTON_ID_AUDIO		2#define BUTTON_ID_CUSTOM	3#define BUTTON_ID_EXIT		4#define BUTTON_ID_120x40	5#define BUTTON_ID_40x40		6#ifdef USE_MINI_OSD_REGION  // Brian2.17, for 16M DRAM solution#define GDI_REGION_WIDTH        624 //for 4-bit mode, muste be 8-byte (16-pixel)#define GDI_REGION_HEIGHT       78L #define GDI_REGION_HEIGHT_PAL      78L#else#define GDI_REGION_WIDTH        616L //620L //640L#define GDI_REGION_HEIGHT       440L //temp extend to 440 to let Thumbnail PAL mode has more space //420L //460L#define GDI_REGION_HEIGHT_PAL       540L // Brian1.20, support enlarge PAL OSD#endif// thers is 5K DW for 2-bit SP OSD region#define GDI_SP_OSD_REGION_WIDTH        616L // 608+4 or 608+8, for 2-bit SP OSD, the byte number must be 4N+1 or 4N+2											// *** but each horizontal line still need to use 4-byte (16-pixel) alignemnt DRAM											// *** in this case, the DRAM is (616+15)/16*16 ==> 624 pixel for each line//#define GDI_SP_OSD_REGION_HEIGHT       130L // 130*624/4 ==> 20280 bytes ==> 4.95KDW#define GDI_SP_OSD_REGION_HEIGHT       78L // 78*624/4 ==> 12168 bytes ==> 2.97KDW   // Alan2.21a, the buffer size is 3KDW in 16M solution// Brian1.10#ifdef USE_ONE_OSD_REGION#define GDI_REGION_2_HEIGHT       180L#else#define GDI_REGION_2_HEIGHT       200L#endif#define GDI_REGION_3_WIDTH        256#define GDI_REGION_3_HEIGHT       128L//#define REGION_X_NTSC   176 //368 // Brian1.24, move 16 pixles right //336 //360//#define REGION_Y_NTSC   72 //30 //30 //24, 28, 30, 32,33,34  44//#define REGION_X_PAL   176 //392 // Brian1.24, move 16 pixles right //360//#define REGION_Y_PAL   86// Brian0.86, relative position to Main Video#define REGION_X_NTSC  (MainVideoInfo.sHStart + 75) #define REGION_Y_NTSC  (MainVideoInfo.sVStart + 30) //30)#define REGION_X_PAL   (MainVideoInfo.sHStart + 75)  //392 // Brian1.24, move 16 pixles right //360#ifdef SUPPORT_CHAR_SUBPICTURE // Brian1.10#define REGION_Y_PAL   (MainVideoInfo.sVStart + 40) //78) // Jeff, for DivX subtitle position#else#define REGION_Y_PAL   (MainVideoInfo.sVStart + 40) #endif// The palette address in DRAM// CT908 only, meaningless for CT909~#define PAL_ADDR            0xA000L //// palette 0 address, will use 256 DW// brian0.65// Chuan0.85, Use the definition of CTKAV.H#define OSD_FONT_TABLE_BASE_ADDRESS     (DS_OSD_FONTTABLE_ST) // 0x40433000 // reserve for JPEG usage //0x40400000 //0x401E6ED0// Bit Mode#define GDI_OSD_8B_MODE         (0)#define GDI_OSD_4B_MODE         (1)#define GDI_OSD_2B_MODE         (2)// Region ID#define GDI_SP_REGION_ID        2typedef struct tagGDI_REGION_INFO	{	DWORD	wWidth;		    // region width	DWORD	wHeight;		// region height	BYTE	bColorMode;	    // color mode, 0: 4 color, 1: 16 color, 2: 256 color	DWORD	dwTAddr;		// top field buffer (including header) address } GDI_REGION_INFO, * PGDI_REGION_INFO;typedef struct tagGDI_PALETTE_INFO	{    	BYTE	bStartNumber;	// the palette will be put starting at DWORD entry	DWORD	dwPalAddr;	    // palette address in DRAM	const DWORD	*pdwPalette;	// point to a palette data array} GDI_PALETTE_INFO, * PGDI_PALETTE_INFO;typedef struct tagGDI_IMAGE_INFO	{	BYTE	bWidth;	        // the image width	BYTE	bHeight;	    // the image height    BYTE	bColorMode;	    // color mode, 0: 4 color, 1: 16 color, 2: 256 color	BYTE	*pbImageData;	// point to a image data array, top field data first then bottom field data} GDI_IMAGE_INFO, * PGDI_IMAGE_INFO;// ******************************// Parameter structure definition// ******************************typedef struct tagPARM_SCROLL_BAR // Scroll bar parameter structure{    URECT  rect;    WORD  wDisplay;    WORD  wStartPoint;}PARM_SCROLL_BAR, *PPARM_SCROLL_BAR;typedef struct tagPARM_VOLUME_BAR // Volume bar parameter structure{    URECT  rect;    WORD  wVolume;    BYTE  bBarColor;    BYTE  bBgColor;    BYTE  bFrameColor;    BYTE  bOriention;}PARM_VOLUME_BAR, *PPARM_VOLUME_BAR;typedef struct tagPARM_FRAME // Draw frame parameter structure{    URECT  rect;    BYTE  bStyle;    BYTE  bThickness;    BYTE  bColorBright;    BYTE  bColorDark;    BYTE  bColorCenter;}PARM_FRAME, *PPARM_FRAME;typedef struct tagPARM_RECT // DrawRect, DrawLine, FillRect parameter structure{    URECT  rect;    BYTE  bColor;   // if it is a shading operation, the this field means how many shading level in the bShadePtr[]    BYTE    *bShadePtr;}PARM_RECT, *PPARM_RECT;typedef struct tagPARM_ARC // DrawArc, FillArc parameter structure{    WORD  wX;    WORD  wY;    BYTE  bColor;   // if it is a shading operation, the this field means how many shading level in the bShadePtr[]    BYTE  bArc;    BYTE    *bShadePtr;}PARM_ARC, *PPARM_ARC;typedef struct tagPARM_PIXEL // DrawPixel parameter structure{    WORD  wX;    WORD  wY;    BYTE  bColor;}PARM_PIXEL, *PPARM_PIXEL;typedef struct tagPARM_BITMAP_COPY // BitmapCopy parameter structure{    URECT  SrcRect;    BYTE  bSrcRegion;    WORD  wDestX;    WORD  wDestY;    BYTE  bDestRegion;}PARM_BITMAP_COPY, *PPARM_BITMAP_COPY;typedef struct tagPARM_BUTTON // BitmapCopy parameter structure{    URECT  rect;    BYTE  bButtonId;    BYTE  bStyle;       // noraml, disbaled, selected, with text    //WORD  wTemp;        // Temp usage}PARM_BUTTON, *PPARM_BUTTON;typedef struct tagPARM_BMP // Load BMP parameter structure{    WORD    wX;         // the x-coordinate    WORD    wY;         // the y-coordinate    DWORD  *pdwData;    // pointer to the BMP data, the same format as SCR (not split)}PARM_BMP, *PPARM_BMP;typedef struct tagGDI_PARAMETER{    union{        PARM_SCROLL_BAR ScrollBar;        PARM_VOLUME_BAR VolumeBar;        PARM_FRAME Frame;        PARM_RECT RectParm;        PARM_PIXEL PixelParm;        PARM_BITMAP_COPY BitmapCopy;        PARM_BUTTON Button;        PARM_BMP    BMP;    } u;} GDI_PARAMETER, *PGDI_PARAMETER;typedef struct tagPARM_STRING // DrawString parameter structure{    WORD  wX;    WORD  wY;    BYTE  bBackground;	// text background color: mapping to 00 of font data    BYTE  bTextColor;	// text color: mapping to 01 of font data	BYTE  bShadow1;		// text shadow 1 color: mapping to 10 of font data	BYTE  bShadow2; 	// text shadow 2 color: mapping to 11 of font data	BYTE  bColorKey;    // the transparent color: 0 disable color key, 1~255 the color key}PARM_DRAW_STRING, *PPARM_DRAW_STRING;typedef struct tagPARM_DRAW_BITMAP{    BYTE  bBitmapID;    WORD  wDestX;    WORD  wDestY;    BYTE  bDestRegion;}PARM_DRAW_BITMAP, *PPARM_DRAW_BITMAP;extern void GDI_InitialRegion(BYTE bRegionId);extern void GDI_ActivateRegion(BYTE bRegionId);extern void GDI_DeactivateRegion(void);extern void GDI_MoveRegion(BYTE bRegionId, SHORT sX, SHORT sY);extern void GDI_SetMixRatio(BYTE bMixRatio);//extern void GDI_DrawPixel(WORD wX, WORD wY, BYTE bColor);//extern void GDI_LoadPalette(BYTE bPaletteId);extern void GDI_LoadPalette(GDI_PALETTE_INFO *pPaletteInfo);extern void GDI_SetTextColor (BYTE bFgBg, BYTE bColor);extern void GDI_ChangePALEntry(BYTE bIndex, DWORD dwRGB, BYTE bMixEnable);extern void GDI_ClearRegion(BYTE bRegionId);extern void GDI_BitmapCopy(PARM_BITMAP_COPY *pParm);extern void GDI_DrawButton(PARM_BUTTON *pParm);extern void GDI_SetUnicodeTable(WORD* pCurUnicodeTable);extern void GDI_DrawString(BYTE bRegionId, PARM_DRAW_STRING *pParm, WORD *pwString);extern void GDI_DrawStringByUnicode(BYTE bRegionId, PARM_DRAW_STRING *pParm, WORD *pwString);#ifdef SUPPORT_STBextern void GDI_DrawFont(DWORD dwFontAddr, DWORD dwColor, WORD wWidth, WORD wHeight, WORD wX, WORD wY);extern void GDI_DrawScaleString(BYTE bRegionId, PARM_DRAW_STRING *pParm, WORD *pwString, BOOL bScaleW, BOOL bScaleH);#endifextern void GDI_FillRect(BYTE bRegionId, PARM_RECT *pParm);extern void GDI_FillRoundRect(BYTE bRegionId, BYTE bArc, PARM_RECT *pParm);extern void GDI_FillRoundRectTop(BYTE bRegionId, BYTE bArc, PARM_RECT *pParm);extern void GDI_FillRoundRectBottom(BYTE bRegionId, BYTE bArc, PARM_RECT *pParm);extern void GDI_DrawRoundRect(BYTE bRegionId, BYTE bArcStart, BYTE bArcEnd, PARM_RECT *pParm);extern void GDI_DrawFrame(BYTE bRegionId, PARM_FRAME *pParm);extern void GDI_DrawVolumeBar(BYTE bRegionId, PARM_VOLUME_BAR *pParm);extern void GDI_DrawScrollBar(BYTE bRegionId, PARM_SCROLL_BAR *pParm);extern void	GDI_DrawBitmapBySW(PARM_DRAW_BITMAP *pParm, const DWORD ** BMPAryptr);extern void GDI_DrawZipBitmap(PARM_DRAW_BITMAP *pParm, const BYTE **BMPAry, PBYTE pbDest, DWORD dwZIPWM);extern void	GDI_DrawBitmap(PARM_DRAW_BITMAP *pParm, DWORD ** BMPAryptr);extern BYTE GDI_GetFontWidth(void);//Aron,2.77-909P, Port Damon's code to files to support Unicode DIR/FILE name & external subtitle.#ifdef SUPPORT_UNICODE_CODINGextern WORD GDI_GetUniFontHeightWidth(WORD wChar);extern BYTE GDI_GetUniFontWidth(WORD wChar);extern WORD GDI_GetUniStringWidth(WORD *pString);#endifextern WORD GDI_GetStringWidth(WORD *pString); //CoCo.CT909extern BYTE GDI_GetStringHeight(WORD *pString); //CoCo.CT909extern void GDI_CopyCodeString(WORD *pw);  // should be put in common bankextern void GDI_OutputText(WORD *pw); // should be put in common bankextern void GDI_Initial(void);extern void GDI_SetGDIPalEntry(void);extern void GDI_LoadBMPResource(void);extern void GDI_ShowSpeaker(BYTE bLoc);extern void GDI_DrawString_GXA(void);extern void GDI_FillRect_GXA(PARM_RECT *pParm);extern void GDI_BitmapCopy_GXA(PARM_BITMAP_COPY *pParm);extern void GDI_NumberToString(WORD wNum);extern void GDI_NumberToStringHex(WORD wNum); // Chuan1.00-2extern WORD GDI_GetCodeStringWidth(WORD *pw);// wyc0.50-909//extern void GDI_EnablePalette(void); //--Brian1.15, reduce code sizeextern  BYTE GDI_GetCharWidth(WORD wChar);// Brian0.85extern void    GDI_FBDrawDot(DWORD dwFrameIdx, DWORD dwX, DWORD dwY, BYTE bColorY, BYTE bColorU, BYTE bColorV);extern void GDI_FBFillRect(DWORD dwFrameIdx, URECT *pRect, DWORD dwRGB);extern void GDI_FBDrawRect(DWORD dwFrameIdx, URECT *pRect, BYTE bThickness, DWORD dwRGB);//extern void GDI_LoadBMP(BYTE bBMPGroup);extern void GDI_LoadBMP(DWORD **aPtr, DWORD dwMaxNum);extern void GDI_WaitPaletteComplete(void); // Brian0.95extern void GDI_ChangeRegionHeight(BYTE bRegionId);#ifdef SUPPORT_CT909Sextern WORD GDI_GetStringWidth_2B(WORD *pString);#endifextern void GDI_SetFontTableSize(BYTE bFontWidth, WORD wFontCapacity);extern void GDI_SetFontTableAddress(DWORD dwAddress);extern DWORD GDI_GetFontTableAddress(VOID);extern void GDI_SetFontWidthInTable(BYTE bFontWidth);extern void GDI_SetFontHeightInTable(BYTE bFontHeight);extern void GDI_SetFontNumberInTable(WORD wFontNumber);extern void GDI_ConfigRegionInfo(BYTE bRegionId, GDI_REGION_INFO *regionInfo);extern void GDI_ConfigRegionAddress(BYTE bRegionId, DWORD dwTAddr);// Brian1.25, move to OSD.h//extern void OSD_LoadFontTable(void);    // Chuan1.20, Unzip Font Table//#else//extern void OSD_LoadFontTableHDW(void);//extern void OSD_LoadFontTableLDW(void);//#endif#ifndef GDI_MAIN_FILE1extern GDI_REGION_INFO __RegionList[NUMBER_OF_REGION];extern WORD    __wGDIString[GDI_STRING_LENGTH+1];extern BYTE __bCurrentRegionId;extern GDI_PARAMETER __GDIParm;//extern BYTE    __bColorMode; // Brian1.08 //--Brian1.15, reduce code size.#ifndef GDI_WITHOUT_OSextern MUTEX_T     __mutexGDIIdle;#endif// Brian0.1, these two should be variable//extern DWORD     DS_OSD_FRAME;   // 620x420x8extern DWORD     __dwGDIFontTableBase; // 128 Font//Brian, support GDI libraryextern GDI_PALETTE_INFO    __PaletteInfo_Transparent;#endif// The DRAM base address for storing BMPs// Chuan0.85, Use the definition of CTKAV.H//#define GDI_BMP_BASE_ADDRESS    (DS_OSD_BMPDATA_ST)  // (OSD_FONT_TABLE_BASE_ADDRESS+0x13000)// *** palette entry for GDI ***	usage 4 entries#define GDI_ENTRY_START						GDI_LOW_LEVEL_FUNCTION_PALETTE_INDEX_START#define GDI_ENTRY_SCROLL_BAR_COLOR_BRIGHT		(GDI_ENTRY_START)#define GDI_ENTRY_SCROLL_BAR_COLOR_DARK			(GDI_ENTRY_SCROLL_BAR_COLOR_BRIGHT+1)#define GDI_ENTRY_SCROLL_BAR_COLOR_CENTER       (GDI_ENTRY_SCROLL_BAR_COLOR_DARK+1)#define GDI_ENTRY_SCROLL_BAR_COLOR_BG			(GDI_ENTRY_SCROLL_BAR_COLOR_CENTER+1)#define GDI_ENTRY_LAST					(GDI_ENTRY_SCROLL_BAR_COLOR_BG)#define GDI_VALUE_SCROLL_BAR_COLOR_BRIGHT		0xFFFFFF#define GDI_VALUE_SCROLL_BAR_COLOR_DARK			0x202020 //0x606060#define GDI_VALUE_SCROLL_BAR_COLOR_CENTER		0xC0C0C0#define GDI_VALUE_SCROLL_BAR_COLOR_BG			0xD8D8D8#endif  // __GDI_H__

⌨️ 快捷键说明

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