Rough pass
This commit is contained in:
@@ -247,14 +247,24 @@ def getFontMapAndTable(textList):
|
||||
totalSymbolCount = len(set(textList) | set(forcedFirstSymbols))
|
||||
# \x00 is for NULL termination and \x01 is for newline, so the maximum
|
||||
# number of symbols allowed with 8 bits is `256 - 2`.
|
||||
if totalSymbolCount > (256 - 2):
|
||||
if totalSymbolCount > ((0xEE * 0x0F) - 2):
|
||||
log(f"Error, too many used symbols for this version (total {totalSymbolCount})")
|
||||
exit(1)
|
||||
sys.exit(1)
|
||||
log("Generating fonts for {} symbols".format(totalSymbolCount))
|
||||
|
||||
for sym in textList:
|
||||
if sym not in symbolMap:
|
||||
symbolMap[sym] = "\\x%0.2X" % index
|
||||
page = int(index / 0xEF)
|
||||
if page == 0:
|
||||
symbolMap[sym] = "\\x%0.2X" % index
|
||||
else:
|
||||
# Into extended range
|
||||
# Leader is 0xFz where z is the page number
|
||||
# Following char is the remainder
|
||||
leader = page + 0xF0
|
||||
value = (index % 0xEF) + 1
|
||||
symbolMap[sym] = "\\x%0.2X" % leader + "\\x%0.2X" % value
|
||||
|
||||
index = index + 1
|
||||
# Get the font table
|
||||
fontTableStrings = []
|
||||
|
||||
@@ -236,14 +236,15 @@ void OLED::setRotation(bool leftHanded) {
|
||||
|
||||
// print a string to the current cursor location
|
||||
void OLED::print(const char *str) {
|
||||
uint16_t cache = 0;
|
||||
uint16_t page = 0;
|
||||
while (str[0]) {
|
||||
if (str[0] >= 0xF0) {
|
||||
cache = static_cast<uint16_t>(str[0] & 0x0F) << 8;
|
||||
} else if (cache != 0) {
|
||||
cache |= str[0];
|
||||
drawChar(cache);
|
||||
cache = 0;
|
||||
if (static_cast<uint8_t>(str[0]) >= 0xF0) {
|
||||
page = static_cast<uint16_t>(str[0]&0x0F);
|
||||
} else if (page != 0) {
|
||||
page*=0xEF;
|
||||
page +=static_cast<uint8_t>(str[0])-1;
|
||||
drawChar(page);
|
||||
page = 0;
|
||||
} else {
|
||||
drawChar(str[0]);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
set -x
|
||||
set -e
|
||||
|
||||
TRANSLATION_DIR="../Translations"
|
||||
TRANSLATION_SCRIPT="make_translation.py"
|
||||
|
||||
Reference in New Issue
Block a user