📄 osdfont1.c
字号:
case FONTABLE_TELETEXT_MOSAICS:#if (FONT_TABLE_METHOD == SPLIT_2_1_BIT)#ifdef DECOMPRESS_METHOD_GZIP UNZIP_PackMatrixPtrs((PUNZIP_SHRMAT)&unzipmat); UNZIP_InitMemPool((LONG *)ADDR_UNZIPBUFFER, (PUNZIP_SHRVAR)&_OSD_Unzipvar); lUnzipResult = UNZIP_Decompress((DWORD*)_bFontable_TELETEXT_MOSAICS, sizeof(_bFontable_TELETEXT_MOSAICS)*sizeof(BYTE), (DWORD*)TELETEXT_MOSAICS_FONT_TABLE_BASE_ADDRESS, (PUNZIP_SHRVAR)&_OSD_Unzipvar, (PUNZIP_SHRMAT) &unzipmat); if (0 != lUnzipResult) printf("Fail to decompress the font table\n");#else lUnzipResult = UTL_Decompress((PBYTE)_bFontable_TELETEXT_MOSAICS, (BYTE *)TELETEXT_MOSAICS_FONT_TABLE_BASE_ADDRESS, (BYTE *)ADDR_UNZIPBUFFER); if (0 >= lUnzipResult) printf("Fail to decompress the font table\n");#endif#endif // #if (FONT_TABLE_METHOD == SPLIT_2_1_BIT) GDI_SetFontHeightInTable(TELETEXT_MOSAICS_FONT_HEIGHT); GDI_SetFontNumberInTable(TELETEXT_MOSAICS_FONT_NUM); break;#endif // SUPPORT_STB default : break; }/*#ifndef SUPPORT_CHAR_ENCODING_SWITCH#ifdef SUPPORT_CHAR_ENCODING_WESTERN_EUROPEAN OSD_AddFontToTable(FONTTABLE_8859_15);#elif defined(SUPPORT_CHAR_ENCODING_CENTRAL_EUROPEAN) OSD_AddFontToTable(FONTTABLE_8859_2);#elif defined(SUPPORT_CHAR_ENCODING_GREEK) OSD_AddFontToTable(FONTTABLE_8859_7);#elif defined(SUPPORT_CHAR_ENCODING_HEBREW) OSD_AddFontToTable(FONTTABLE_8859_8);#elif defined(SUPPORT_CHAR_ENCODING_TURKISH) OSD_AddFontToTable(FONTTABLE_8859_9);#elif defined(SUPPORT_CHAR_ENCODING_CP1250) OSD_AddFontToTable(FONTTABLE_CP_1250);#elif defined(SUPPORT_CHAR_ENCODING_CYRILLIC) OSD_AddFontToTable(FONTTABLE_CP_1251);#elif defined(SUPPORT_CHAR_ENCODING_CHINESE) || defined(SUPPORT_CHAR_ENCODING_JAPANESE) OSD_AddFontToTable(FONTABLE_UNICODE);#else __wCurLocMapTab = (WORD*) (__aAsciiMappingTable[0]); __wCurUniMapTab = (WORD*) (__aAsciiMappingTable[0]); __bEnCodeType = CHAR_ENCODE_ISO_CP;#endif#endif //SUPPORT_CHAR_ENCODING_SWITCH*/#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}// Brian1.25, always call this function to load font table// ************************************************************************// Function : OSD_FontableChecksum// Description : do fontable checksum// Arguments : none// Return : checksum value// Side Effect :// ************************************************************************#ifdef SUPPORT_FONT_TABLE_CHECKSUMWORD OSD_FontableChecksum(void){ _wOSDFontTemp = 0; // The font table size is 32768 WORD. 256 char * 32*32*2/8 byte / 2 = 32768 for(_dwOSDFontTemp = 0; _dwOSDFontTemp < 65536; _dwOSDFontTemp++) { _pbOSDFontTemp = (PBYTE)(OSD_FONT_TABLE_BASE_ADDRESS + _dwOSDFontTemp); _wOSDFontTemp += *_pbOSDFontTemp; } return _wOSDFontTemp;}#endif// *******************************************************************// Function : OSD_ReplaceFont// Description : Replace character set for external usage (dir/file name, external subtitle, EPG, ...) // Arguments : none// Return : none// Side Effect :// *******************************************************************//#ifdef SUPPORT_CHAR_ENCODING_SWITCHvoid OSD_ReplaceFont(void){ switch (__SetupInfo.bExSPSTLanguage) {#ifdef SUPPORT_CHAR_ENCODING_WESTERN_EUROPEAN case SETUP_LANGUAGE_ENCODING_WESTERN_EUROPEAN: OSD_AddFontToTable(FONTTABLE_8859_15); break;#endif#ifdef SUPPORT_CHAR_ENCODING_CENTRAL_EUROPEAN case SETUP_LANGUAGE_ENCODING_CENTRAL_EUROPEAN: OSD_AddFontToTable(FONTTABLE_8859_2); break;#endif#ifdef SUPPORT_CHAR_ENCODING_GREEK case SETUP_LANGUAGE_ENCODING_GREEK: OSD_AddFontToTable(FONTTABLE_8859_7); break;#endif#ifdef SUPPORT_CHAR_ENCODING_HEBREW case SETUP_LANGUAGE_ENCODING_HEBREW: OSD_AddFontToTable(FONTTABLE_8859_8); break;#endif#ifdef SUPPORT_CHAR_ENCODING_TURKISH case SETUP_LANGUAGE_ENCODING_TURKISH: OSD_AddFontToTable(FONTTABLE_8859_9); break;#endif#ifdef SUPPORT_CHAR_ENCODING_CP1250 case SETUP_LANGUAGE_ENCODING_CP1250: OSD_AddFontToTable(FONTTABLE_CP_1250); break;#endif#ifdef SUPPORT_CHAR_ENCODING_CYRILLIC case SETUP_LANGUAGE_ENCODING_CYRILLIC: OSD_AddFontToTable(FONTTABLE_CP_1251); break;#endif#ifdef SUPPORT_CHAR_ENCODING_CHINESE case SETUP_LANGUAGE_ENCODING_TWN_UNICODE: OSD_AddFontToTable(FONTABLE_UNICODE); break;#endif#ifdef SUPPORT_CHAR_ENCODING_BIG5 case SETUP_LANGUAGE_ENCODING_TWN_BIG5: OSD_AddFontToTable(FONTABLE_BIG5); break;#endif#ifdef SUPPORT_CHAR_ENCODING_JAPANESE case SETUP_LANGUAGE_ENCODING_JPN_UNICODE: OSD_AddFontToTable(FONTABLE_UNICODE); break;#endif#ifdef SUPPORT_CHAR_ENCODING_SHIFT_JIS case SETUP_LANGUAGE_ENCODING_JPN_SHIFT_JIS: OSD_AddFontToTable(FONTABLE_SHIFT_JIS); break;#endif case SETUP_LANGUAGE_ENCODING_ASCII: default: __wCurLocMapTab = (WORD*) (__aAsciiMappingTable[0]); __wCurUniMapTab = (WORD*) (__aAsciiMappingTable[0]); __bEnCodeType = CHAR_ENCODE_ISO_CP; break; }}//#endif// *******************************************************************// Function : OSD_AddFontsToTable// Description : add some fonts to the font table// Arguments : none// Return : none// Side Effect :// *******************************************************************void OSD_AddFontToTable(FONTABLE_ID bFontableID){#if (FONT_TABLE_METHOD != CREATE_DYNAMICALLY) DWORD* pdwUnzipAddr = NULL; switch (bFontableID) {#ifdef ISO_8859_15_FONT case FONTTABLE_8859_15: if (__pCurFontTable == _bFontable_8859_15) return; break;#endif#ifdef ISO_8859_2_FONT case FONTTABLE_8859_2: if (__pCurFontTable == _bFontable_8859_2) return; break;#endif#ifdef ISO_8859_7_FONT case FONTTABLE_8859_7: if (__pCurFontTable == _bFontable_8859_7) return; break;#endif// Damon2.51, for Hebrew#ifdef ISO_8859_8_FONT case FONTTABLE_8859_8: if (__pCurFontTable == _bFontable_8859_8) return; break;#endif#ifdef ISO_8859_9_FONT case FONTTABLE_8859_9: if (__pCurFontTable == _bFontable_8859_9) return; break;#endif#ifdef CP_1250_FONT case FONTTABLE_CP_1250: if (__pCurFontTable == _bFontable_8859_2) return; break;#endif#ifdef CP_1251_FONT case FONTTABLE_CP_1251: if (__pCurFontTable == _bFontable_CP_1251) return; break;#endif#ifdef SUPPORT_STB case FONTTABLE_6937: if (__pCurFontTable == _bFontable_6937) return; break;#endif // #ifdef SUPPORT_STB/*#ifdef SUPPORT_UNICODE_CODING case FONTABLE_UNICODE: if (__pCurFontTable == _bFontable_Unicode) return; break;#endif*/ default : break; }#ifndef UNPROTECT_FONT_TABLE //Alan1.00, Disable the font table protection MACRO_MCU_DISABLE_PROTECTION(MCU_WRITE_PROTECT_AREA3_ENABLE);#endif#ifdef DECOMPRESS_METHOD_GZIP UNZIP_PackMatrixPtrs((PUNZIP_SHRMAT)&unzipmat); UNZIP_InitMemPool((LONG *)ADDR_UNZIPBUFFER, (PUNZIP_SHRVAR)&_OSD_Unzipvar);#endif#if (FONT_TABLE_METHOD == TRADITION) pdwUnzipAddr = (DWORD*) (OSD_FONT_TABLE_BASE_ADDRESS + OSD_2BIT_CHAR_SIZE * OSD_2BIT_FONT_NUM);#elif (FONT_TABLE_METHOD == SPLIT_2_1_BIT) pdwUnzipAddr = (DWORD*) (OSD_FONT_TABLE_1BIT_BASE_ADDRESS + OSD_FONT_TABLE_1BIT_SIZE);#endif switch (bFontableID) {#ifdef ISO_8859_15_FONT case FONTTABLE_8859_15:#ifdef DECOMPRESS_METHOD_GZIP lUnzipResult = UNZIP_Decompress((DWORD*)_bFontable_8859_15, sizeof(_bFontable_8859_15)*sizeof(BYTE), pdwUnzipAddr, (PUNZIP_SHRVAR)&_OSD_Unzipvar, (PUNZIP_SHRMAT) &unzipmat);#else lUnzipResult = UTL_Decompress((PBYTE) _bFontable_8859_15, (PBYTE)pdwUnzipAddr, (PBYTE)ADDR_UNZIPBUFFER);#endif break;#endif#ifdef ISO_8859_2_FONT case FONTTABLE_8859_2:#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 ISO_8859_7_FONT case FONTTABLE_8859_7:#ifdef DECOMPRESS_METHOD_GZIP lUnzipResult = UNZIP_Decompress((DWORD*)_bFontable_8859_7, sizeof(_bFontable_8859_7)*sizeof(BYTE), (DWORD*) pdwUnzipAddr, (PUNZIP_SHRVAR)&_OSD_Unzipvar, (PUNZIP_SHRMAT) &unzipmat);#else lUnzipResult = UTL_Decompress((PBYTE)_bFontable_8859_7, (PBYTE)pdwUnzipAddr, (PBYTE)ADDR_UNZIPBUFFER);#endif break;#endif// Damon2.51, for Hebrew#ifdef ISO_8859_8_FONT case FONTTABLE_8859_8:#ifdef DECOMPRESS_METHOD_GZIP lUnzipResult = UNZIP_Decompress((DWORD*)_bFontable_8859_8, sizeof(_bFontable_8859_8)*sizeof(BYTE), (DWORD*) pdwUnzipAddr, (PUNZIP_SHRVAR)&_OSD_Unzipvar, (PUNZIP_SHRMAT) &unzipmat);#else lUnzipResult = UTL_Decompress((PBYTE)_bFontable_8859_8, (PBYTE)pdwUnzipAddr, (PBYTE)ADDR_UNZIPBUFFER);#endif break;#endif#ifdef ISO_8859_9_FONT case FONTTABLE_8859_9:#ifdef DECOMPRESS_METHOD_GZIP lUnzipResult = UNZIP_Decompress((DWORD*)_bFontable_8859_9,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -