Player: Add mappings and glyphs for extended latin A characters which exist in hardware on old LCD. Makes polish, czech, ... work properly.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12954 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2007-03-28 23:21:31 +00:00
parent 79df16adc1
commit 583caa867b

View file

@ -57,6 +57,16 @@ enum {
XF_oTILDE, XF_oDIERESIS, XF_DIVISION, XF_oSLASH,
XF_uGRAVE, XF_uACUTE, XF_uCIRCUMFLEX, XF_uDIERESIS,
XF_yACUTE, XF_yDIERESIS,
/* Latin extended A */
XF_aOGONEK, XF_cACUTE, XF_cCARON, XF_dCARON,
XF_dSTROKE, XF_eOGONEK, XF_eCARON, XF_DOTLESSi,
XF_lSTROKE, XF_nACUTE, XF_nCARON, XF_ODBLACUTE,
XF_oDBLACUTE, XF_rCARON, XF_sACUTE, XF_SCEDILLA,
XF_sCEDILLA, XF_sCARON, XF_tCARON, XF_uRING,
XF_UDBLACUTE, XF_uDBLACUTE, XF_zACUTE, XF_zDOT,
XF_zCARON,
#define XF_DSTROKE XF_ETH
/* Greek */
XF_GR_DELTA, XF_GR_THETA, XF_GR_LAMBDA, XF_GR_XI,
@ -294,6 +304,34 @@ static const struct xchar_info xchar_info_newlcd[] = {
{ 0xff, XF_yDIERESIS, 1, 0x79 }, /* ÿ (y dieresis) */
/* Latin extended A */
{ 0x0105, XF_aOGONEK, 1, 0x61 }, /* a ogonek */
{ 0x0107, XF_cACUTE, 1, 0x63 }, /* c acute */
{ 0x010d, XF_cCARON, 1, 0x63 }, /* c caron */
{ 0x010f, XF_dCARON, 1, 0x64 }, /* d caron */
{ 0x0110, XF_DSTROKE, 1, 0x44 }, /* D stroke */
{ 0x0111, XF_dSTROKE, 1, 0x64 }, /* d stroke */
{ 0x0119, XF_eOGONEK, 1, 0x65 }, /* e ogonek */
{ 0x011b, XF_eCARON, 1, 0x65 }, /* e caron */
{ 0x0131, XF_DOTLESSi, 1, 0x69 }, /* dotless i */
{ 0x0142, XF_lSTROKE, 1, 0x6c }, /* l stroke */
{ 0x0144, XF_nACUTE, 1, 0x6e }, /* n acute */
{ 0x0148, XF_nCARON, 1, 0x6e }, /* n caron */
{ 0x0150, XF_ODBLACUTE, 1, 0x4f }, /* O double acute */
{ 0x0151, XF_oDBLACUTE, 1, 0x6f }, /* o double acute */
{ 0x0159, XF_rCARON, 1, 0x72 }, /* r caron */
{ 0x015b, XF_sACUTE, 1, 0x73 }, /* s acute */
{ 0x015e, XF_SCEDILLA, 1, 0x53 }, /* S cedilla */
{ 0x015f, XF_sCEDILLA, 1, 0x73 }, /* s cedilla */
{ 0x0161, XF_sCARON, 1, 0x73 }, /* s caron */
{ 0x0165, XF_tCARON, 1, 0x74 }, /* t caron */
{ 0x016f, XF_uRING, 1, 0x75 }, /* u with ring above */
{ 0x0170, XF_UDBLACUTE, 1, 0x55 }, /* U double acute */
{ 0x0171, XF_uDBLACUTE, 1, 0x75 }, /* u double acute */
{ 0x017a, XF_zACUTE, 1, 0x7a }, /* z acute */
{ 0x017c, XF_zDOT, 1, 0x7a }, /* z with dot above */
{ 0x017e, XF_zCARON, 1, 0x7a }, /* z caron */
/* Greek */
{ 0x037e, 0, 0, 0x3b }, /* greek question mark */
@ -762,6 +800,34 @@ static const struct xchar_info xchar_info_oldlcd[] = {
{ 0xfd, 0, 0, 0xaf }, /* ý (y acute) */
{ 0xff, XF_yDIERESIS, 1, 0x7d }, /* ÿ (y dieresis) */
/* Latin extended A */
{ 0x0105, 0, 0, 0xb3 }, /* a ogonek */
{ 0x0107, 0, 0, 0xb1 }, /* c acute */
{ 0x010d, 0, 0, 0xab }, /* c caron */
{ 0x010f, 0, 0, 0xbc }, /* d caron */
{ 0x0110, 0, 0, 0x95 }, /* D stroke */
{ 0x0111, 0, 0, 0xb0 }, /* d stroke */
{ 0x0119, 0, 0, 0xb2 }, /* e ogonek */
{ 0x011b, 0, 0, 0xad }, /* e caron */
{ 0x0131, 0, 0, 0xc6 }, /* dotless i */
{ 0x0142, 0, 0, 0xb8 }, /* l stroke */
{ 0x0144, 0, 0, 0xb7 }, /* n acute */
{ 0x0148, 0, 0, 0xba }, /* n caron */
{ 0x0150, 0, 0, 0xc8 }, /* O double acute */
{ 0x0151, 0, 0, 0xca }, /* o double acute */
{ 0x0159, 0, 0, 0xaa }, /* r caron */
{ 0x015b, 0, 0, 0xb6 }, /* s acute */
{ 0x015e, 0, 0, 0xc3 }, /* S cedilla */
{ 0x015f, 0, 0, 0xc4 }, /* s cedilla */
{ 0x0161, 0, 0, 0xac }, /* s caron */
{ 0x0165, 0, 0, 0xbb }, /* t caron */
{ 0x016f, 0, 0, 0xae }, /* u with ring above */
{ 0x0170, 0, 0, 0xc7 }, /* U double acute */
{ 0x0171, 0, 0, 0xc9 }, /* u double acute */
{ 0x017a, 0, 0, 0xb5 }, /* z acute */
{ 0x017c, 0, 0, 0xb4 }, /* z with dot above */
{ 0x017e, 0, 0, 0xbd }, /* z caron */
/* Greek */
{ 0x037e, 0, 0, 0x3f }, /* greek question mark */
@ -1069,6 +1135,32 @@ 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}, /* ÿ */
/* Latin extended A */
[XF_aOGONEK] = { 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x02, 0x03, 0x00},
[XF_cACUTE] = { 0x02, 0x04, 0x0f, 0x10, 0x10, 0x10, 0x0f, 0x00},
[XF_cCARON] = { 0x0a, 0x04, 0x0f, 0x10, 0x10, 0x10, 0x0f, 0x00},
[XF_dCARON] = { 0x05, 0x05, 0x0c, 0x14, 0x14, 0x14, 0x0c, 0x00},
[XF_dSTROKE] = { 0x02, 0x0f, 0x02, 0x0e, 0x12, 0x12, 0x0e, 0x00},
[XF_eOGONEK] = { 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x04, 0x06, 0x00},
[XF_eCARON] = { 0x0a, 0x04, 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x00},
[XF_DOTLESSi] = { 0x00, 0x00, 0x0c, 0x04, 0x04, 0x04, 0x0e, 0x00},
[XF_lSTROKE] = { 0x0c, 0x04, 0x06, 0x0c, 0x04, 0x04, 0x0e, 0x00},
[XF_nACUTE] = { 0x02, 0x04, 0x16, 0x19, 0x11, 0x11, 0x11, 0x00},
[XF_nCARON] = { 0x0a, 0x04, 0x16, 0x19, 0x11, 0x11, 0x11, 0x00},
[XF_ODBLACUTE] = { 0x09, 0x12, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00},
[XF_oDBLACUTE] = { 0x09, 0x12, 0x00, 0x0e, 0x11, 0x11, 0x0e, 0x00},
[XF_rCARON] = { 0x0a, 0x04, 0x0b, 0x0c, 0x08, 0x08, 0x08, 0x00},
[XF_sACUTE] = { 0x02, 0x04, 0x0e, 0x10, 0x0e, 0x01, 0x1e, 0x00},
[XF_SCEDILLA] = { 0x0e, 0x10, 0x0e, 0x01, 0x0e, 0x04, 0x0c, 0x00},
[XF_sCEDILLA] = { 0x00, 0x0e, 0x10, 0x0e, 0x01, 0x0e, 0x04, 0x00},
[XF_sCARON] = { 0x0a, 0x04, 0x0e, 0x10, 0x0e, 0x01, 0x1e, 0x00},
[XF_tCARON] = { 0x09, 0x09, 0x08, 0x1e, 0x08, 0x08, 0x06, 0x00},
[XF_uRING] = { 0x04, 0x0a, 0x04, 0x11, 0x11, 0x13, 0x0d, 0x00},
[XF_UDBLACUTE] = { 0x05, 0x0a, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00},
[XF_uDBLACUTE] = { 0x09, 0x12, 0x00, 0x11, 0x11, 0x13, 0x0d, 0x00},
[XF_zACUTE] = { 0x02, 0x04, 0x1f, 0x02, 0x04, 0x08, 0x1f, 0x00},
[XF_zDOT] = { 0x04, 0x00, 0x1f, 0x02, 0x04, 0x08, 0x1f, 0x00},
[XF_zCARON] = { 0x0a, 0x04, 0x1f, 0x02, 0x04, 0x08, 0x1f, 0x00},
/* Greek */
[XF_GR_DELTA] = { 0x04, 0x04, 0x0a, 0x0a, 0x11, 0x11, 0x1f, 0x00},
[XF_GR_THETA] = { 0x0e, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x0e, 0x00},