summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/lcd-charset-player.c92
1 files changed, 92 insertions, 0 deletions
diff --git a/firmware/drivers/lcd-charset-player.c b/firmware/drivers/lcd-charset-player.c
index 3844124779..4b261790ca 100644
--- a/firmware/drivers/lcd-charset-player.c
+++ b/firmware/drivers/lcd-charset-player.c
@@ -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},