📄 osdfont1.c
字号:
#include "winav.h"#include "ctkav.h"#include "OSD.h"#include "input.h"#include "cc.h"#include "gdi.h"#include "fontindex.h" //++CoCo2.37P#include "setup.h"#include "comdec.h"#include "utl.h"#ifdef SUPPORT_CHAR_SUBPICTURE#include "char_subpict.h"#endif/**********************************************************************ISO 8859-2 : Bosnian, Croatian, Czech, Hungarian, Polish, Romanian, Serbian (in Latin transcription), Serbocroatian, Slovak, Slovenian, Upper Sorbian and Lower Sorbian.ISO 8859-7 : The modern Greek language.ISO 8859-8 : Hebrew languages.ISO 8859-9 : Turkic languages.ISO 8859-15 : English, French, German, Italian, Dutch, Spanish, and Portuguese.CP 1251 : Cyrillic language.**********************************************************************/#ifdef SUPPORT_FONT_TABLE_CHECKSUMWORD __wFontableChecksum;WORD OSD_FontableChecksum(void);WORD _wOSDFontTemp;DWORD _dwOSDFontTemp;PBYTE _pbOSDFontTemp;#endifBYTE _OSD_LoadTableFromFlash(FONTABLE_ID bFontableID);LONG lUnzipResult;DWORD *pdwBase;DWORD *pdwTemp;const BYTE _bFontable_OSD_2bit[]={#include "OSDString/Fontable_2bit.txt"};#if (FONT_TABLE_METHOD != TRADITION)#define OSD_FONT_TABLE_2BIT_SIZE (OSD_2BIT_FONT_NUM * OSD_2BIT_CHAR_SIZE)#define OSD_FONT_TABLE_1BIT_BASE_ADDRESS (OSD_FONT_TABLE_BASE_ADDRESS + OSD_FONT_TABLE_2BIT_SIZE)#define OSD_FONT_TABLE_1BIT_SIZE (OSD_1BIT_FONT_NUM * OSD_1BIT_CHAR_SIZE)const BYTE _bFontable_OSD_1bit[]={#include "OSDString/Fontable_1bit.txt"};const BYTE * __pCurFontTable = (const BYTE *) _bFontable_OSD_1bit;# elseconst BYTE * __pCurFontTable = (const BYTE *) _bFontable_OSD_2bit;#endif // #if (FONT_TABLE_METHOD != TRADITION)WORD * __wCurLocMapTab; // Current ISO/CP character mapping table in usedWORD * __wCurUniMapTab; // Current Unicode character mapping set in usedBYTE __bEnCodeType;BYTE __bCurFontHeight;#ifdef SUPPORT_UNICODE_CODING#include "romld.h"BYTE * _bFontable_Unicode;WORD * __wUnicodeTable;WORD * __wFontSizeTable;/*#ifdef SUPPORT_CHAR_ENCODING_BIG5WORD * _wBig5MappingTable;#endif#ifdef SUPPORT_CHAR_ENCODING_SHIFT_JISWORD * _wJISMappingTable;#endif*/#endif/////////////////////////////////////////////////////////// font table#ifdef SUPPORT_STBconst BYTE _bFontable_TELETEXT_LATIN[]={#include "stb/usrif/fontable_TELETEXT_LATIN.txt"};const BYTE _bFontable_TELETEXT_MOSAICS[]={#include "stb/usrif/fontable_TELETEXT_MOSAICS.txt"};#endif#ifdef ISO_8859_15_FONTconst BYTE _bFontable_8859_15[]={#include "OSDString/ISO_8859_15_Fontable.txt"};#endif#if defined(ISO_8859_2_FONT) || defined(CP_1250_FONT)const BYTE _bFontable_8859_2[]={#include "OSDString/ISO_8859_2_Fontable.txt"};#endif#ifdef ISO_8859_7_FONTconst BYTE _bFontable_8859_7[]={#include "OSDString/ISO_8859_7_Fontable.txt"};#endif// Damon2.51, for Hebrew#ifdef ISO_8859_8_FONTconst BYTE _bFontable_8859_8[]={#include "OSDString/ISO_8859_8_Fontable.txt"};#endif#ifdef ISO_8859_9_FONTconst BYTE _bFontable_8859_9[]={#include "OSDString/ISO_8859_9_Fontable.txt"};#endif#ifdef CP_1251_FONTconst BYTE _bFontable_CP_1251[]={#include "OSDString/CP_1251_Fontable.txt"};#endif/////////////////////////////////////////////////////////// CTK string mapping table#ifndef CUSTOMER_ASCII#include "OSDString/Ascii_Remapping.txt"#endifWORD __aAsciiMappingTable[][2] = { #include "OSDString/Ascii_Mapping.txt"};#ifdef ISO_8859_15_FONTWORD _a8859_15_MappingTable[][2] = { #include "OSDString/ISO_8859_15_Mapping.txt"};#endif#ifdef ISO_8859_2_FONTWORD _a8859_2_MappingTable[][2] = { #include "OSDString/ISO_8859_2_Mapping.txt"};#endif#ifdef ISO_8859_7_FONTWORD _a8859_7_MappingTable[][2] = { #include "OSDString/ISO_8859_7_Mapping.txt"};#endif#ifdef ISO_8859_8_FONTWORD _a8859_8_MappingTable[][2] = { #include "OSDString/ISO_8859_8_Mapping.txt"};#endif#ifdef ISO_8859_9_FONTWORD _a8859_9_MappingTable[][2] = { #include "OSDString/ISO_8859_9_Mapping.txt"};#endif#ifdef CP_1250_FONTWORD _aCP_1250_MappingTable[][2] = { #include "OSDString/CP_1250_Mapping.txt"};#endif#ifdef CP_1251_FONTWORD _aCP_1251_MappingTable[][2] = { #include "OSDString/CP_1251_Mapping.txt"};#endif/////////////////////////////////////////////////////////// Unicode to CTK string mapping table#ifdef CP_1251_FONTWORD _aCP1251UniMapTab[][2] = { #include "OSDString/CP_1251_Uni_Mapping.txt"};#endif/////////////////////////////////////////////////////////#ifdef SUPPORT_STBconst BYTE _bFontable_6937[]={#include "OSDString/6937_Fontable.txt"};#endif#ifdef DECOMPRESS_METHOD_GZIPvolatile UNZIP_SHRVAR _OSD_Unzipvar;volatile UNZIP_SHRMAT unzipmat; //unzip shared matrix#endif// Brian1.25, always call this function to load font table// ************************************************************************// Function : OSD_LoadFontTable// Description : load font table// Arguments : none// Return : none// Side Effect :// ************************************************************************void OSD_LoadFontTable(FONTABLE_ID bFontableID){#ifndef UNPROTECT_FONT_TABLE //Alan1.00, Disable the font table protection MACRO_MCU_DISABLE_PROTECTION(MCU_WRITE_PROTECT_AREA3_ENABLE);#endif switch (bFontableID) { case FONTABLE_OSD:#if (FONT_TABLE_METHOD != CREATE_DYNAMICALLY)#ifdef DECOMPRESS_METHOD_GZIP UNZIP_PackMatrixPtrs((PUNZIP_SHRMAT)&unzipmat); UNZIP_InitMemPool((LONG *)ADDR_UNZIPBUFFER, (PUNZIP_SHRVAR)&_OSD_Unzipvar); lUnzipResult = UNZIP_Decompress((DWORD*)_bFontable_OSD_2bit, sizeof(_bFontable_OSD_2bit)*sizeof(BYTE), (DWORD*) OSD_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_OSD_2bit, (PBYTE)OSD_FONT_TABLE_BASE_ADDRESS, (PBYTE)ADDR_UNZIPBUFFER); if (0 >= lUnzipResult) printf("Fail to decompress the font table\n");#endif#if (FONT_TABLE_METHOD != TRADITION)#ifdef DECOMPRESS_METHOD_GZIP UNZIP_PackMatrixPtrs((PUNZIP_SHRMAT)&unzipmat); UNZIP_InitMemPool((LONG *)ADDR_UNZIPBUFFER, (PUNZIP_SHRVAR)&_OSD_Unzipvar); lUnzipResult = UNZIP_Decompress((DWORD*)_bFontable_OSD_1bit, sizeof(_bFontable_OSD_1bit)*sizeof(BYTE), (DWORD*) OSD_FONT_TABLE_1BIT_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_OSD_1bit, (PBYTE)OSD_FONT_TABLE_1BIT_BASE_ADDRESS, (PBYTE)ADDR_UNZIPBUFFER); if (0 >= lUnzipResult) printf("Fail to decompress the font table\n");#endif#endif // #if(FONT_TABLE_METHOD != TRADITION) #endif // if (FONT_TABLE_METHOD == CREATE_DYNAMICALLY) GDI_SetFontHeightInTable(OSD_FONT_HEIGHT); GDI_SetFontNumberInTable(OSD_2BIT_FONT_NUM #if (FONT_TABLE_METHOD != TRADITION) + OSD_1BIT_FONT_NUM#endif ); break;#ifdef SUPPORT_STB case FONTABLE_TELETEXT_LATIN:#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_LATIN, sizeof(_bFontable_TELETEXT_LATIN)*sizeof(BYTE), (DWORD*) OSD_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_LATIN, (BYTE *)OSD_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_LATIN_FONT_HEIGHT); GDI_SetFontNumberInTable(TELETEXT_LATIN_FONT_NUM); break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -