Player: Add mapping and glyphs for cyrillic. Fixes FS #2424.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12942 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2007-03-27 22:13:02 +00:00
parent 02a4802d3e
commit 45581245de

View file

@ -57,6 +57,19 @@ enum {
XF_uGRAVE, XF_uACUTE, XF_uCIRCUMFLEX, XF_uDIERESIS,
XF_yACUTE, XF_yDIERESIS,
/* Cyrillic */
XF_CYR_BE, XF_CYR_GHE, XF_CYR_DE, XF_CYR_ZHE,
XF_CYR_ZE, XF_CYR_I, XF_CYR_SHORTI, XF_CYR_EL,
XF_CYR_PE, XF_CYR_TSE, XF_CYR_CHE, XF_CYR_SHA,
XF_CYR_SHCHA, XF_CYR_HARD, XF_CYR_YERU, XF_CYR_E,
XF_CYR_YU, XF_CYR_YA, XF_CYR_be, XF_CYR_ve,
XF_CYR_ghe, XF_CYR_de, XF_CYR_zhe, XF_CYR_ze,
XF_CYR_i, XF_CYR_SHORTi, XF_CYR_ka, XF_CYR_el,
XF_CYR_em, XF_CYR_en, XF_CYR_pe, XF_CYR_te,
XF_CYR_tse, XF_CYR_che, XF_CYR_sha, XF_CYR_shcha,
XF_CYR_hard, XF_CYR_yeru, XF_CYR_soft, XF_CYR_e,
XF_CYR_yu, XF_CYR_ya,
#endif
};
@ -253,6 +266,87 @@ static const struct xchar_info xchar_info_newlcd[] = {
{ 0xfd, XF_yACUTE, 1, 0x79 }, /* ý (y acute) */
{ 0xff, XF_yDIERESIS, 1, 0x79 }, /* ÿ (y dieresis) */
/* Cyrillic */
{ 0x0400, XF_EGRAVE, 1, 0x45 }, /* cyrillic IE grave */
{ 0x0401, XF_EDIERESIS, 1, 0x45 }, /* cyrillic IO */
{ 0x0405, 0, 0, 0x53 }, /* cyrillic DZE */
{ 0x0406, 0, 0, 0x49 }, /* cyrillic byeloruss-ukr. I */
{ 0x0407, XF_IDIERESIS, 1, 0x49 }, /* cyrillic YI */
{ 0x0408, 0, 0, 0x4a }, /* cyrillic JE */
{ 0x0410, 0, 0, 0x41 }, /* cyrillic A */
{ 0x0411, XF_CYR_BE, 1, 0xeb }, /* cyrillic BE */
{ 0x0412, 0, 0, 0x42 }, /* cyrillic VE */
{ 0x0413, XF_CYR_GHE, 2, 0xeb }, /* cyrillic GHE */
{ 0x0414, XF_CYR_DE, 2, 0x44 }, /* cyrillic DE */
{ 0x0415, 0, 0, 0x45 }, /* cyrillic IE */
{ 0x0416, XF_CYR_ZHE, 2, 0x2a }, /* cyrillic ZHE */
{ 0x0417, XF_CYR_ZE, 1, 0x33 }, /* cyrillic ZE */
{ 0x0418, XF_CYR_I, 1, 0x55 }, /* cyrillic I */
{ 0x0419, XF_CYR_SHORTI, 1, 0x55 }, /* cyrillic short I */
{ 0x041a, 0, 0, 0x4b }, /* cyrillic K */
{ 0x041b, XF_CYR_EL, 2, 0x4c }, /* cyrillic EL */
{ 0x041c, 0, 0, 0x4d }, /* cyrillic EM */
{ 0x041d, 0, 0, 0x48 }, /* cyrillic EN */
{ 0x041e, 0, 0, 0x4f }, /* cyrillic O */
{ 0x041f, XF_CYR_PE, 1, 0x14 }, /* cyrillic PE */
{ 0x0420, 0, 0, 0x50 }, /* cyrillic ER */
{ 0x0421, 0, 0, 0x43 }, /* cyrillic ES */
{ 0x0422, 0, 0, 0x54 }, /* cyrillic TE */
{ 0x0423, 0, 0, 0x59 }, /* cyrillic U */
{ 0x0424, 0, 0, 0xe8 }, /* cyrillic EF */
{ 0x0425, 0, 0, 0x58 }, /* cyrillic HA */
{ 0x0426, XF_CYR_TSE, 2, 0xd9 }, /* cyrillic TSE */
{ 0x0427, XF_CYR_CHE, 2, 0xd1 }, /* cyrillic CHE */
{ 0x0428, XF_CYR_SHA, 1, 0x57 }, /* cyrillic SHA */
{ 0x0429, XF_CYR_SHCHA, 1, 0x57 }, /* cyrillic SHCHA */
{ 0x042a, XF_CYR_HARD, 1, 0x62 }, /* cyrillic capital hard sign */
{ 0x042b, XF_CYR_YERU, 2, 0x1a }, /* cyrillic YERU */
{ 0x042c, 0, 0, 0x62 }, /* cyrillic capital soft sign */
{ 0x042d, XF_CYR_E, 2, 0xa6 }, /* cyrillic E */
{ 0x042e, XF_CYR_YU, 2, 0x1b }, /* cyrillic YU */
{ 0x042f, XF_CYR_YA, 2, 0xf3 }, /* cyrillic YA */
{ 0x0430, 0, 0, 0x61 }, /* cyrillic a */
{ 0x0431, 0, 0, 0xeb }, /* cyrillic be */
{ 0x0432, XF_CYR_ve, 1, 0xe1 }, /* cyrillic ve */
{ 0x0433, XF_CYR_ghe, 1, 0x72 }, /* cyrillic ghe */
{ 0x0434, XF_CYR_de, 2, 0x1f }, /* cyrillic de */
{ 0x0435, 0, 0, 0x65 }, /* cyrillic ie */
{ 0x0436, XF_CYR_zhe, 1, 0x2a }, /* cyrillic zhe */
{ 0x0437, XF_CYR_ze, 1, 0xae }, /* cyrillic ze */
{ 0x0438, XF_CYR_i, 1, 0x75 }, /* cyrillic i */
{ 0x0439, XF_CYR_SHORTi, 1, 0x75 }, /* cyrillic short i */
{ 0x043a, XF_CYR_ka, 1, 0x6b }, /* cyrillic ka */
{ 0x043b, XF_CYR_el, 2, 0xca }, /* cyrillic el */
{ 0x043c, XF_CYR_em, 1, 0x6b }, /* cyrillic em */
{ 0x043d, XF_CYR_en, 2, 0x48 }, /* cyrillic en */
{ 0x043e, 0, 0, 0x6f }, /* cyrillic o */
{ 0x043f, 0, 0, 0xe3 }, /* cyrillic pe */
{ 0x0440, 0, 0, 0x70 }, /* cyrillic er */
{ 0x0441, 0, 0, 0x63 }, /* cyrillic es */
{ 0x0442, XF_CYR_te, 1, 0x74 }, /* cyrillic te */
{ 0x0443, 0, 0, 0x79 }, /* cyrillic u */
{ 0x0444, 0, 0, 0xed }, /* cyrillic ef */
{ 0x0445, 0, 0, 0x78 }, /* cyrillic ha */
{ 0x0446, XF_CYR_tse, 2, 0xd9 }, /* cyrillic tse */
{ 0x0447, XF_CYR_che, 2, 0xd1 }, /* cyrillic che */
{ 0x0448, XF_CYR_sha, 1, 0x77 }, /* cyrillic sha */
{ 0x0449, XF_CYR_shcha, 1, 0x77 }, /* cyrillic shcha */
{ 0x044a, XF_CYR_hard, 1, 0x62 }, /* cyrillic small hard sign */
{ 0x044b, XF_CYR_yeru, 2, 0x1a }, /* cyrillic yeru */
{ 0x044c, XF_CYR_soft, 1, 0x62 }, /* cyrillic small soft sign */
{ 0x044d, XF_CYR_e, 2, 0xa7 }, /* cyrillic e */
{ 0x044e, XF_CYR_yu, 2, 0x1b }, /* cyrillic yu */
{ 0x044f, XF_CYR_ya, 2, 0xfb }, /* cyrillic ya */
{ 0x0450, XF_eGRAVE, 1, 0x65 }, /* cyrillic ie grave */
{ 0x0451, XF_eDIERESIS, 1, 0x65 }, /* cyrillic io */
{ 0x0455, 0, 0, 0x73 }, /* cyrillic dze */
{ 0x0456, 0, 0, 0x69 }, /* cyrillic byeloruss-ukr. i */
{ 0x0457, XF_iDIERESIS, 1, 0x69 }, /* cyrillic yi */
{ 0x0458, 0, 0, 0x6a }, /* cyrillic je */
/* Runtime-definable characters */
{ 0xe000, 0x8000, 15, 0x20 }, /* variable character 0 */
@ -500,6 +594,87 @@ static const struct xchar_info xchar_info_oldlcd[] = {
{ 0xff, XF_yDIERESIS, 1, 0x7d }, /* ÿ (y dieresis) */
/* Cyrillic */
{ 0x0400, 0, 0, 0x90 }, /* cyrillic IE grave */
{ 0x0401, 0, 0, 0x92 }, /* cyrillic IO */
{ 0x0405, 0, 0, 0x57 }, /* cyrillic DZE */
{ 0x0406, 0, 0, 0x4d }, /* cyrillic byeloruss-ukr. I */
{ 0x0407, XF_IDIERESIS, 1, 0x4d }, /* cyrillic YI */
{ 0x0408, 0, 0, 0x4e }, /* cyrillic JE */
{ 0x0410, 0, 0, 0x45 }, /* cyrillic A */
{ 0x0411, XF_CYR_BE, 1, 0x3a }, /* cyrillic BE */
{ 0x0412, 0, 0, 0x46 }, /* cyrillic VE */
{ 0x0413, 0, 0, 0x17 }, /* cyrillic GHE */
{ 0x0414, XF_CYR_DE, 1, 0x14 }, /* cyrillic DE */
{ 0x0415, 0, 0, 0x49 }, /* cyrillic IE */
{ 0x0416, XF_CYR_ZHE, 2, 0x2e }, /* cyrillic ZHE */
{ 0x0417, XF_CYR_ZE, 1, 0x37 }, /* cyrillic ZE */
{ 0x0418, XF_CYR_I, 1, 0x59 }, /* cyrillic I */
{ 0x0419, XF_CYR_SHORTI, 1, 0x9b }, /* cyrillic short I */
{ 0x041a, 0, 0, 0x4f }, /* cyrillic K */
{ 0x041b, XF_CYR_EL, 1, 0x18 }, /* cyrillic EL */
{ 0x041c, 0, 0, 0x51 }, /* cyrillic EM */
{ 0x041d, 0, 0, 0x4c }, /* cyrillic EN */
{ 0x041e, 0, 0, 0x53 }, /* cyrillic O */
{ 0x041f, 0, 0, 0x1a }, /* cyrillic PE */
{ 0x0420, 0, 0, 0x54 }, /* cyrillic ER */
{ 0x0421, 0, 0, 0x47 }, /* cyrillic ES */
{ 0x0422, 0, 0, 0x58 }, /* cyrillic TE */
{ 0x0423, 0, 0, 0x5d }, /* cyrillic U */
{ 0x0424, 0, 0, 0x16 }, /* cyrillic EF */
{ 0x0425, 0, 0, 0x5c }, /* cyrillic HA */
{ 0x0426, XF_CYR_TSE, 2, 0x5e }, /* cyrillic TSE */
{ 0x0427, XF_CYR_CHE, 2, 0x0e }, /* cyrillic CHE */
{ 0x0428, XF_CYR_SHA, 1, 0x5b }, /* cyrillic SHA */
{ 0x0429, XF_CYR_SHCHA, 1, 0x5b }, /* cyrillic SHCHA */
{ 0x042a, XF_CYR_HARD, 1, 0x66 }, /* cyrillic capital hard sign */
{ 0x042b, XF_CYR_YERU, 2, 0x66 }, /* cyrillic YERU */
{ 0x042c, 0, 0, 0x66 }, /* cyrillic capital soft sign */
{ 0x042d, XF_CYR_E, 2, 0x89 }, /* cyrillic E */
{ 0x042e, XF_CYR_YU, 2, 0x95 }, /* cyrillic YU */
{ 0x042f, XF_CYR_YA, 1, 0x0d }, /* cyrillic YA */
{ 0x0430, 0, 0, 0x65 }, /* cyrillic a */
{ 0x0431, XF_CYR_be, 1, 0x97 }, /* cyrillic be */
{ 0x0432, XF_CYR_ve, 1, 0x22 }, /* cyrillic ve */
{ 0x0433, XF_CYR_ghe, 1, 0x76 }, /* cyrillic ghe */
{ 0x0434, XF_CYR_de, 2, 0x14 }, /* cyrillic de */
{ 0x0435, 0, 0, 0x69 }, /* cyrillic ie */
{ 0x0436, XF_CYR_zhe, 1, 0x2e }, /* cyrillic zhe */
{ 0x0437, XF_CYR_ze, 1, 0x37 }, /* cyrillic ze */
{ 0x0438, XF_CYR_i, 1, 0x79 }, /* cyrillic i */
{ 0x0439, XF_CYR_SHORTi, 1, 0xc9 }, /* cyrillic short i */
{ 0x043a, XF_CYR_ka, 1, 0x6f }, /* cyrillic ka */
{ 0x043b, XF_CYR_el, 1, 0x18 }, /* cyrillic el */
{ 0x043c, XF_CYR_em, 1, 0x71 }, /* cyrillic em */
{ 0x043d, XF_CYR_en, 2, 0x4c }, /* cyrillic en */
{ 0x043e, 0, 0, 0x73 }, /* cyrillic o */
{ 0x043f, XF_CYR_pe, 1, 0x72 }, /* cyrillic pe */
{ 0x0440, 0, 0, 0x74 }, /* cyrillic er */
{ 0x0441, 0, 0, 0x67 }, /* cyrillic es */
{ 0x0442, XF_CYR_te, 1, 0x78 }, /* cyrillic te */
{ 0x0443, 0, 0, 0x7d }, /* cyrillic u */
{ 0x0444, 0, 0, 0x10 }, /* cyrillic ef */
{ 0x0445, 0, 0, 0x7c }, /* cyrillic ha */
{ 0x0446, XF_CYR_tse, 2, 0x7e }, /* cyrillic tse */
{ 0x0447, XF_CYR_che, 2, 0x0e }, /* cyrillic che */
{ 0x0448, XF_CYR_sha, 1, 0x7b }, /* cyrillic sha */
{ 0x0449, XF_CYR_shcha, 1, 0x7b }, /* cyrillic shcha */
{ 0x044a, XF_CYR_hard, 1, 0x66 }, /* cyrillic small hard sign */
{ 0x044b, XF_CYR_yeru, 2, 0x66 }, /* cyrillic yeru */
{ 0x044c, XF_CYR_soft, 1, 0x66 }, /* cyrillic small soft sign */
{ 0x044d, XF_CYR_e, 2, 0x89 }, /* cyrillic e */
{ 0x044e, XF_CYR_yu, 2, 0x95 }, /* cyrillic yu */
{ 0x044f, XF_CYR_ya, 2, 0x84 }, /* cyrillic ya */
{ 0x0450, 0, 0, 0x08 }, /* cyrillic ie grave */
{ 0x0451, 0, 0, 0xa0 }, /* cyrillic io */
{ 0x0455, 0, 0, 0x77 }, /* cyrillic dze */
{ 0x0456, 0, 0, 0x6d }, /* cyrillic byeloruss-ukr. i */
{ 0x0457, 0, 0, 0xa3 }, /* cyrillic yi */
{ 0x0458, 0, 0, 0x6e }, /* cyrillic je */
/* Runtime-definable characters */
{ 0xe000, 0x8000, 15, 0x24 }, /* variable character 0 */
{ 0xe001, 0x8001, 15, 0x24 }, /* variable character 1 */
@ -648,6 +823,49 @@ const unsigned char xfont_fixed[][8] = {
[XF_uDIERESIS] = { 0x00, 0x0a, 0x00, 0x11, 0x11, 0x13, 0x0d, 0x00}, /* ü */
[XF_yACUTE] = { 0x02, 0x04, 0x11, 0x11, 0x0f, 0x01, 0x0e, 0x00}, /* ý */
[XF_yDIERESIS] = { 0x0a, 0x00, 0x11, 0x11, 0x0f, 0x01, 0x0e, 0x00}, /* ÿ */
/* Cyrillic */
[XF_CYR_BE] = { 0x1f, 0x10, 0x10, 0x1e, 0x11, 0x11, 0x1e, 0x00},
[XF_CYR_GHE] = { 0x1f, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00},
[XF_CYR_DE] = { 0x07, 0x09, 0x09, 0x09, 0x09, 0x1f, 0x11, 0x00},
[XF_CYR_ZHE] = { 0x15, 0x15, 0x0e, 0x04, 0x0e, 0x15, 0x15, 0x00},
[XF_CYR_ZE] = { 0x0e, 0x11, 0x01, 0x0e, 0x01, 0x11, 0x0e, 0x00},
[XF_CYR_I] = { 0x11, 0x11, 0x13, 0x15, 0x19, 0x11, 0x11, 0x00},
[XF_CYR_SHORTI] = { 0x0a, 0x04, 0x11, 0x13, 0x15, 0x19, 0x11, 0x00},
[XF_CYR_EL] = { 0x0f, 0x09, 0x09, 0x09, 0x09, 0x09, 0x11, 0x00},
[XF_CYR_PE] = { 0x1f, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00},
[XF_CYR_TSE] = { 0x11, 0x11, 0x11, 0x11, 0x11, 0x1f, 0x01, 0x00},
[XF_CYR_CHE] = { 0x11, 0x11, 0x11, 0x0f, 0x01, 0x01, 0x01, 0x00},
[XF_CYR_SHA] = { 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x1f, 0x00},
[XF_CYR_SHCHA] = { 0x15, 0x15, 0x15, 0x15, 0x15, 0x1f, 0x01, 0x00},
[XF_CYR_HARD] = { 0x18, 0x08, 0x08, 0x0e, 0x09, 0x09, 0x0e, 0x00},
[XF_CYR_YERU] = { 0x11, 0x11, 0x11, 0x19, 0x15, 0x15, 0x19, 0x00},
[XF_CYR_E] = { 0x0e, 0x11, 0x01, 0x07, 0x01, 0x11, 0x0e, 0x00},
[XF_CYR_YU] = { 0x12, 0x15, 0x15, 0x1d, 0x15, 0x15, 0x12, 0x00},
[XF_CYR_YA] = { 0x0f, 0x11, 0x11, 0x0f, 0x05, 0x09, 0x11, 0x00},
[XF_CYR_be] = { 0x0f, 0x10, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00},
[XF_CYR_ve] = { 0x00, 0x00, 0x1e, 0x11, 0x1e, 0x11, 0x1e, 0x00},
[XF_CYR_ghe] = { 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x00},
[XF_CYR_de] = { 0x00, 0x00, 0x06, 0x0a, 0x0a, 0x1f, 0x11, 0x00},
[XF_CYR_zhe] = { 0x00, 0x00, 0x15, 0x0e, 0x04, 0x0e, 0x15, 0x00},
[XF_CYR_ze] = { 0x00, 0x00, 0x1e, 0x01, 0x0e, 0x01, 0x1e, 0x00},
[XF_CYR_i] = { 0x00, 0x00, 0x11, 0x13, 0x15, 0x19, 0x11, 0x00},
[XF_CYR_SHORTi] = { 0x0a, 0x04, 0x00, 0x11, 0x13, 0x15, 0x19, 0x00},
[XF_CYR_ka] = { 0x00, 0x00, 0x11, 0x12, 0x1c, 0x12, 0x11, 0x00},
[XF_CYR_el] = { 0x00, 0x00, 0x0f, 0x09, 0x09, 0x09, 0x11, 0x00},
[XF_CYR_em] = { 0x00, 0x00, 0x11, 0x1b, 0x15, 0x11, 0x11, 0x00},
[XF_CYR_en] = { 0x00, 0x00, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x00},
[XF_CYR_pe] = { 0x00, 0x00, 0x1f, 0x11, 0x11, 0x11, 0x11, 0x00},
[XF_CYR_te] = { 0x00, 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04, 0x00},
[XF_CYR_tse] = { 0x00, 0x00, 0x11, 0x11, 0x11, 0x1f, 0x01, 0x00},
[XF_CYR_che] = { 0x00, 0x00, 0x11, 0x11, 0x0f, 0x01, 0x01, 0x00},
[XF_CYR_sha] = { 0x00, 0x00, 0x15, 0x15, 0x15, 0x15, 0x1f, 0x00},
[XF_CYR_shcha] = { 0x00, 0x00, 0x15, 0x15, 0x15, 0x1f, 0x01, 0x00},
[XF_CYR_hard] = { 0x00, 0x00, 0x18, 0x0e, 0x09, 0x09, 0x0e, 0x00},
[XF_CYR_yeru] = { 0x00, 0x00, 0x11, 0x19, 0x15, 0x15, 0x19, 0x00},
[XF_CYR_soft] = { 0x00, 0x00, 0x08, 0x0e, 0x09, 0x09, 0x0e, 0x00},
[XF_CYR_e] = { 0x00, 0x00, 0x0e, 0x11, 0x03, 0x11, 0x0e, 0x00},
[XF_CYR_yu] = { 0x00, 0x00, 0x12, 0x15, 0x1d, 0x15, 0x12, 0x00},
[XF_CYR_ya] = { 0x00, 0x00, 0x0f, 0x11, 0x0f, 0x09, 0x11, 0x00},
#endif /* !BOOTLOADER */
};