📄 osdfont1.c
字号:
sizeof(_bFontable_8859_9)*sizeof(BYTE), pdwUnzipAddr, (PUNZIP_SHRVAR)&_OSD_Unzipvar, (PUNZIP_SHRMAT) &unzipmat);#else lUnzipResult = UTL_Decompress((PBYTE)_bFontable_8859_9, (PBYTE)pdwUnzipAddr, (PBYTE)ADDR_UNZIPBUFFER);#endif break;#endif#ifdef CP_1250_FONT case FONTTABLE_CP_1250:#ifdef DECOMPRESS_METHOD_GZIP lUnzipResult = UNZIP_Decompress((DWORD*)_bFontable_8859_2, sizeof(_bFontable_8859_2)*sizeof(BYTE), (DWORD*) pdwUnzipAddr, (PUNZIP_SHRVAR)&_OSD_Unzipvar, (PUNZIP_SHRMAT) &unzipmat);#else lUnzipResult = UTL_Decompress((PBYTE)_bFontable_8859_2, (PBYTE)pdwUnzipAddr, (PBYTE)ADDR_UNZIPBUFFER);#endif break;#endif#ifdef CP_1251_FONT case FONTTABLE_CP_1251:#ifdef DECOMPRESS_METHOD_GZIP lUnzipResult = UNZIP_Decompress((DWORD*)_bFontable_CP_1251, sizeof(_bFontable_CP_1251)*sizeof(BYTE), pdwUnzipAddr, (PUNZIP_SHRVAR)&_OSD_Unzipvar, (PUNZIP_SHRMAT) &unzipmat);#else lUnzipResult = UTL_Decompress((PBYTE)_bFontable_CP_1251, (PBYTE)pdwUnzipAddr, (PBYTE)ADDR_UNZIPBUFFER);#endif break;#endif#ifdef SUPPORT_STB case FONTTABLE_6937:#ifdef DECOMPRESS_METHOD_GZIP lUnzipResult = UNZIP_Decompress((DWORD*)_bFontable_6937, sizeof(_bFontable_6937)*sizeof(BYTE), pdwUnzipAddr, (PUNZIP_SHRVAR)&_OSD_Unzipvar, (PUNZIP_SHRMAT) &unzipmat);#else lUnzipResult = UTL_Decompress((PBYTE)_bFontable_6937, (PBYTE)pdwUnzipAddr, (PBYTE)ADDR_UNZIPBUFFER);#endif break;#endif // #ifdef SUPPORT_STB#ifdef SUPPORT_UNICODE_CODING case FONTABLE_UNICODE: break;#endif default : break; }#ifdef DECOMPRESS_METHOD_GZIP if (0 != lUnzipResult) printf("Fail to decompress the font table\n");#else if (0 >= lUnzipResult) printf("Fail to decompress the font table\n");#endif#ifdef SUPPORT_FONT_TABLE_CHECKSUM __wFontableChecksum = OSD_FontableChecksum();#endif#ifndef UNPROTECT_FONT_TABLE //Alan1.00, Enable the font table protection MACRO_MCU_ENABLE_PROTECTION(MCU_WRITE_PROTECT_AREA3_ENABLE);#endif#endif // #if (FONT_TABLE_METHOD != CREATE_DYNAMICALLY) OSD_SetCurFontTable(bFontableID);}// *******************************************************************// Function : OSD_SetCurFontTable // Description : Set the current used 1-bit font table // Arguments : none// Return : none// Side Effect :// *******************************************************************void OSD_SetCurFontTable(FONTABLE_ID bFontableID){ switch (bFontableID) {#ifdef ISO_8859_2_FONT case FONTTABLE_8859_2: __pCurFontTable = (BYTE *)_bFontable_8859_2; __wCurLocMapTab = (WORD*) (_a8859_2_MappingTable[0]); __wCurUniMapTab = (WORD*) (__aAsciiMappingTable[0]); __bCurFontHeight = ISO_8859_2_FONT_HEIGHT; __bEnCodeType = CHAR_ENCODE_ISO_CP; GDI_SetFontHeightInTable(ISO_8859_2_FONT_HEIGHT); GDI_SetFontTableAddress(OSD_FONT_TABLE_BASE_ADDRESS); break;#endif#ifdef ISO_8859_7_FONT case FONTTABLE_8859_7: __pCurFontTable = (BYTE *) _bFontable_8859_7; __wCurLocMapTab = (WORD*) (_a8859_7_MappingTable[0]); __wCurUniMapTab = (WORD*) (__aAsciiMappingTable[0]); __bCurFontHeight = ISO_8859_7_FONT_HEIGHT; __bEnCodeType = CHAR_ENCODE_ISO_CP; GDI_SetFontHeightInTable(ISO_8859_7_FONT_HEIGHT); GDI_SetFontTableAddress(OSD_FONT_TABLE_BASE_ADDRESS); break;#endif// Damon2.51, for Hebrew#ifdef ISO_8859_8_FONT case FONTTABLE_8859_8: __pCurFontTable = (BYTE *) _bFontable_8859_8; __wCurLocMapTab = (WORD*) (_a8859_8_MappingTable[0]); __wCurUniMapTab = (WORD*) (__aAsciiMappingTable[0]); __bCurFontHeight = ISO_8859_8_FONT_HEIGHT; __bEnCodeType = CHAR_ENCODE_ISO_CP; GDI_SetFontHeightInTable(ISO_8859_8_FONT_HEIGHT); GDI_SetFontTableAddress(OSD_FONT_TABLE_BASE_ADDRESS); break;#endif#ifdef ISO_8859_9_FONT case FONTTABLE_8859_9: __pCurFontTable = (BYTE *) _bFontable_8859_9; __wCurLocMapTab = (WORD*) (_a8859_9_MappingTable[0]); __wCurUniMapTab = (WORD*) (__aAsciiMappingTable[0]); __bCurFontHeight = ISO_8859_9_FONT_HEIGHT; __bEnCodeType = CHAR_ENCODE_ISO_CP; GDI_SetFontHeightInTable(ISO_8859_9_FONT_HEIGHT); GDI_SetFontTableAddress(OSD_FONT_TABLE_BASE_ADDRESS); break;#endif#ifdef ISO_8859_15_FONT case FONTTABLE_8859_15: __pCurFontTable = (BYTE *) _bFontable_8859_15; __wCurLocMapTab = (WORD*) (_a8859_15_MappingTable[0]); __wCurUniMapTab = (WORD*) (__aAsciiMappingTable[0]); __bCurFontHeight = ISO_8859_15_FONT_HEIGHT; __bEnCodeType = CHAR_ENCODE_ISO_CP; GDI_SetFontHeightInTable(ISO_8859_15_FONT_HEIGHT); GDI_SetFontTableAddress(OSD_FONT_TABLE_BASE_ADDRESS); break;#endif#ifdef CP_1250_FONT case FONTTABLE_CP_1250: __pCurFontTable = (BYTE *) _bFontable_8859_2; __wCurLocMapTab = (WORD*) (_aCP_1250_MappingTable[0]); __wCurUniMapTab = (WORD*) (__aAsciiMappingTable[0]); __bCurFontHeight = ISO_8859_2_FONT_HEIGHT; __bEnCodeType = CHAR_ENCODE_ISO_CP; GDI_SetFontHeightInTable(ISO_8859_2_FONT_HEIGHT); GDI_SetFontTableAddress(OSD_FONT_TABLE_BASE_ADDRESS); break;#endif#ifdef CP_1251_FONT case FONTTABLE_CP_1251: __pCurFontTable = (BYTE *) _bFontable_CP_1251; __wCurLocMapTab = (WORD*) (_aCP_1251_MappingTable[0]); __wCurUniMapTab = (WORD*) (_aCP1251UniMapTab[0]); __bCurFontHeight = CP_1251_FONT_HEIGHT; __bEnCodeType = CHAR_ENCODE_ISO_CP; GDI_SetFontHeightInTable(CP_1251_FONT_HEIGHT); GDI_SetFontTableAddress(OSD_FONT_TABLE_BASE_ADDRESS); break;#endif#ifdef SUPPORT_STB case FONTTABLE_6937: __pCurFontTable = (BYTE *) _bFontable_6937; GDI_SetFontHeightInTable(ISO_6937_FONT_HEIGHT); break; case FONTABLE_TELETEXT_LATIN: __pCurFontTable = (BYTE *) _bFontable_TELETEXT_LATIN; GDI_SetFontNumberInTable(TELETEXT_LATIN_FONT_NUM); GDI_SetFontHeightInTable(TELETEXT_LATIN_FONT_HEIGHT); GDI_SetFontTableAddress(OSD_FONT_TABLE_BASE_ADDRESS); break; case FONTABLE_TELETEXT_MOSAICS: __pCurFontTable = (BYTE *) _bFontable_TELETEXT_MOSAICS; GDI_SetFontNumberInTable(TELETEXT_MOSAICS_FONT_NUM); GDI_SetFontHeightInTable(TELETEXT_MOSAICS_FONT_HEIGHT); GDI_SetFontTableAddress(TELETEXT_MOSAICS_FONT_TABLE_BASE_ADDRESS); break;#endif#ifdef SUPPORT_UNICODE_CODING case FONTABLE_UNICODE: _OSD_LoadTableFromFlash(FONTABLE_UNICODE); __pCurFontTable = (BYTE *) _bFontable_Unicode; __bCurFontHeight = UNICODE_FONT_HEIGHT; __bEnCodeType = CHAR_ENCODE_UNICODE; GDI_SetFontHeightInTable(UNICODE_FONT_HEIGHT); //GDI_SetFontWidth(UNICODE_FONT_WIDTH); break;#endif#ifdef SUPPORT_CHAR_ENCODING_BIG5 case FONTABLE_BIG5: _OSD_LoadTableFromFlash(FONTABLE_BIG5); __pCurFontTable = (BYTE *) _bFontable_Unicode; __bCurFontHeight = UNICODE_FONT_HEIGHT; __bEnCodeType = CHAR_ENCODE_OTHER; GDI_SetFontHeightInTable(UNICODE_FONT_HEIGHT); //GDI_SetFontWidth(UNICODE_FONT_WIDTH); break;#endif#ifdef SUPPORT_CHAR_ENCODING_SHIFT_JIS case FONTABLE_SHIFT_JIS: _OSD_LoadTableFromFlash(FONTABLE_SHIFT_JIS); __pCurFontTable = (BYTE *) _bFontable_Unicode; __bCurFontHeight = UNICODE_FONT_HEIGHT; __bEnCodeType = CHAR_ENCODE_OTHER; GDI_SetFontHeightInTable(UNICODE_FONT_HEIGHT); //GDI_SetFontWidth(UNICODE_FONT_WIDTH); break;#endif case FONTABLE_OSD: default:/*#if (FONT_TABLE_METHOD != TRADITION) __pCurFontTable = (BYTE *) _bFontable_OSD_1bit;#endif */ GDI_SetFontHeightInTable(OSD_FONT_HEIGHT); GDI_SetFontTableAddress(OSD_FONT_TABLE_BASE_ADDRESS); break; }}// Damon, modify the procedure to support font table from flash directly.// *******************************************************************// Function : _OSD_LoadTableFromFlash// Description : Load Font Table from flash directly// Arguments : none// Return : TRUE, point to font table address is successful.// FALSE, point to font table address is failed.// Side Effect :// *******************************************************************BYTE _OSD_LoadTableFromFlash(FONTABLE_ID bFontableID){#ifdef SUPPORT_UNICODE_CODING PSECTION_ENTRY pFonTab, pUniTab, pFonSize; #endif#if defined(SUPPORT_CHAR_ENCODING_BIG5) || defined(SUPPORT_CHAR_ENCODING_SHIFT_JIS) PSECTION_ENTRY pMapTab;#endif#ifdef SUPPORT_UNICODE_CODING // load unicode font table pFonTab = ROMLD_GetSectionByName(0, "FONT"); if (!pFonTab) { DBG_Printf(DBG_THREAD_CHEERDVD, DBG_INFO_PRINTF, "Can't find unicode font table\n"); return (FALSE); } _bFontable_Unicode = (BYTE *) pFonTab->dwRMA; // load unicode table pUniTab = ROMLD_GetSectionByName(0, "UNIC"); if (!pUniTab) { DBG_Printf(DBG_THREAD_CHEERDVD, DBG_INFO_PRINTF, "Can't find unicode table\n"); return (FALSE); } __wUnicodeTable = (WORD *) pUniTab->dwRMA; // load font size mapping table pFonSize = ROMLD_GetSectionByName(0, "SIZE"); if (!pFonSize) { DBG_Printf(DBG_THREAD_CHEERDVD, DBG_INFO_PRINTF, "Can't find size table\n"); return (FALSE); } __wFontSizeTable = (WORD *) pFonSize->dwRMA; #endif //SUPPORT_UNICODE_CODING switch (bFontableID) {#ifdef SUPPORT_CHAR_ENCODING_BIG5 case FONTABLE_BIG5: // load Big5 mapping table pMapTab = ROMLD_GetSectionByName(0, "BIGT"); if (!pMapTab) { DBG_Printf(DBG_THREAD_CHEERDVD, DBG_INFO_PRINTF, "Can't find Big5 mapping table\n"); return (FALSE); } __wCurUniMapTab = (WORD *) pMapTab->dwRMA; break;#endif #ifdef SUPPORT_CHAR_ENCODING_SHIFT_JIS case FONTABLE_SHIFT_JIS: // load Shift JIS mapping table pMapTab = ROMLD_GetSectionByName(0, "JIST"); if (!pMapTab) { DBG_Printf(DBG_THREAD_CHEERDVD, DBG_INFO_PRINTF, "Can't find JIS mapping table\n"); return (FALSE); } __wCurUniMapTab = (WORD *) pMapTab->dwRMA; break;#endif default: break; } return (TRUE); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -