Skip to content

Commit

Permalink
Load L, XL and XXL fonts from SD card.
Browse files Browse the repository at this point in the history
  • Loading branch information
Phil Mitchell committed Jul 31, 2023
1 parent a7c9d14 commit 5d01588
Show file tree
Hide file tree
Showing 38 changed files with 36,386 additions and 136,652 deletions.
Binary file added radio/src/fonts/lvgl/lv_font_arimo_he_24.bin
Binary file not shown.
1,474 changes: 0 additions & 1,474 deletions radio/src/fonts/lvgl/lv_font_arimo_he_24.c

This file was deleted.

3,576 changes: 1,988 additions & 1,588 deletions radio/src/fonts/lvgl/lv_font_arimo_he_bold_16.c

Large diffs are not rendered by default.

Binary file added radio/src/fonts/lvgl/lv_font_arimo_he_bold_32.bin
Binary file not shown.
1,721 changes: 0 additions & 1,721 deletions radio/src/fonts/lvgl/lv_font_arimo_he_bold_32.c

This file was deleted.

Binary file not shown.
3,046 changes: 0 additions & 3,046 deletions radio/src/fonts/lvgl/lv_font_arimo_he_bold_64.c

This file was deleted.

Binary file added radio/src/fonts/lvgl/lv_font_noto_cn_24.bin
Binary file not shown.
10,623 changes: 0 additions & 10,623 deletions radio/src/fonts/lvgl/lv_font_noto_cn_24.c

This file was deleted.

19,761 changes: 10,755 additions & 9,006 deletions radio/src/fonts/lvgl/lv_font_noto_cn_bold_16.c

Large diffs are not rendered by default.

Binary file added radio/src/fonts/lvgl/lv_font_noto_cn_bold_32.bin
Binary file not shown.
15,600 changes: 0 additions & 15,600 deletions radio/src/fonts/lvgl/lv_font_noto_cn_bold_32.c

This file was deleted.

Binary file added radio/src/fonts/lvgl/lv_font_noto_cn_bold_64.bin
Binary file not shown.
3,387 changes: 0 additions & 3,387 deletions radio/src/fonts/lvgl/lv_font_noto_cn_bold_64.c

This file was deleted.

Binary file added radio/src/fonts/lvgl/lv_font_noto_jp_24.bin
Binary file not shown.
10,784 changes: 0 additions & 10,784 deletions radio/src/fonts/lvgl/lv_font_noto_jp_24.c

This file was deleted.

16,043 changes: 8,856 additions & 7,187 deletions radio/src/fonts/lvgl/lv_font_noto_jp_bold_16.c

Large diffs are not rendered by default.

Binary file added radio/src/fonts/lvgl/lv_font_noto_jp_bold_32.bin
Binary file not shown.
14,568 changes: 0 additions & 14,568 deletions radio/src/fonts/lvgl/lv_font_noto_jp_bold_32.c

This file was deleted.

Binary file added radio/src/fonts/lvgl/lv_font_noto_jp_bold_64.bin
Binary file not shown.
3,387 changes: 0 additions & 3,387 deletions radio/src/fonts/lvgl/lv_font_noto_jp_bold_64.c

This file was deleted.

Binary file added radio/src/fonts/lvgl/lv_font_noto_tw_24.bin
Binary file not shown.
11,225 changes: 0 additions & 11,225 deletions radio/src/fonts/lvgl/lv_font_noto_tw_24.c

This file was deleted.

20,704 changes: 11,186 additions & 9,518 deletions radio/src/fonts/lvgl/lv_font_noto_tw_bold_16.c

Large diffs are not rendered by default.

Binary file added radio/src/fonts/lvgl/lv_font_noto_tw_bold_32.bin
Binary file not shown.
16,580 changes: 0 additions & 16,580 deletions radio/src/fonts/lvgl/lv_font_noto_tw_bold_32.c

This file was deleted.

Binary file added radio/src/fonts/lvgl/lv_font_noto_tw_bold_64.bin
Binary file not shown.
3,387 changes: 0 additions & 3,387 deletions radio/src/fonts/lvgl/lv_font_noto_tw_bold_64.c

This file was deleted.

Binary file added radio/src/fonts/lvgl/lv_font_roboto_24.bin
Binary file not shown.
3,296 changes: 0 additions & 3,296 deletions radio/src/fonts/lvgl/lv_font_roboto_24.c

This file was deleted.

6,451 changes: 3,500 additions & 2,951 deletions radio/src/fonts/lvgl/lv_font_roboto_bold_16.c

Large diffs are not rendered by default.

Binary file added radio/src/fonts/lvgl/lv_font_roboto_bold_32.bin
Binary file not shown.
4,234 changes: 0 additions & 4,234 deletions radio/src/fonts/lvgl/lv_font_roboto_bold_32.c

This file was deleted.

Binary file added radio/src/fonts/lvgl/lv_font_roboto_bold_64.bin
Binary file not shown.
3,083 changes: 0 additions & 3,083 deletions radio/src/fonts/lvgl/lv_font_roboto_bold_64.c

This file was deleted.

54 changes: 50 additions & 4 deletions radio/src/fonts/lvgl/make_fonts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,22 @@ function make_font() {
--format lvgl -o lv_font_${name}_${size}.c --force-fast-kern-format ${arg}
}

function make_font_bin() {
local name=$1
local ttf=$2
local size=$3
local bpp=$4
local chars=$5
local arg=$6

lv_font_conv --no-prefilter --bpp ${bpp} --size ${size} \
--font ${TTF_DIR}${ttf} -r ${ASCII},${DEGREE},${BULLET},${COMPARE}${chars} \
--font EdgeTX/extra.ttf -r ${EXTRA_SYM} \
--font ${ARROWS_FONT} -r ${ARROWS} \
--font ${SYMBOLS_FONT} -r ${SYMBOLS} \
--format bin -o lv_font_${name}_${size}.bin --force-fast-kern-format --no-compress ${arg}
}

function make_font_w_extra_sym() {
local name=$1
local ttf=$2
Expand All @@ -63,6 +79,20 @@ function make_font_w_extra_sym() {
--format lvgl -o lv_font_${name}_${size}.c --force-fast-kern-format ${arg}
}

function make_font_w_extra_sym_bin() {
local name=$1
local ttf=$2
local size=$3
local bpp=$4
local chars=$5
local arg=$6

lv_font_conv --no-prefilter --bpp ${bpp} --size ${size} \
--font ${TTF_DIR}${ttf} -r ${ASCII},${DEGREE}${chars} \
--font EdgeTX/extra.ttf -r ${EXTRA_SYM} \
--format bin -o lv_font_${name}_${size}.bin --force-fast-kern-format --no-compress ${arg}
}

function make_font_no_sym() {
local name=$1
local ttf=$2
Expand All @@ -76,6 +106,19 @@ function make_font_no_sym() {
--format lvgl -o lv_font_${name}_${size}.c --force-fast-kern-format ${arg}
}

function make_font_no_sym_bin() {
local name=$1
local ttf=$2
local size=$3
local bpp=$4
local chars=$5
local arg=$6

lv_font_conv --no-prefilter --bpp ${bpp} --size ${size} \
--font ${TTF_DIR}${ttf} -r ${ASCII},${DEGREE}${chars} \
--format bin -o lv_font_${name}_${size}.bin --force-fast-kern-format --no-compress ${arg}
}

# LV_SYMBOL_CHARGE, LV_SYMBOL_NEW_LINE, LV_SYMBOL_SD_CARD, LV_SYMBOL_CLOSE
# LV_SYMBOL_FILE, LV_SYMBOL_OK, LV_SYMBOL_WIFI
BL_SYMBOLS="61671,63650,63426,61453,61787,61452,61931"
Expand All @@ -99,10 +142,13 @@ function make_font_set() {
make_font "${name}" "${ttf_normal}" 9 4 ${chars} --no-compress
make_font "${name}" "${ttf_normal}" 13 4 ${chars} --no-compress
make_font "${name}" "${ttf_normal}" 16 4 ${chars} --no-compress
make_font "${name}_bold" "${ttf_bold}" 16 4 ${chars}
make_font_w_extra_sym "${name}" "${ttf_normal}" 24 2 ${chars}
make_font_no_sym "${name}_bold" "${ttf_bold}" 32 2 ${chars}
make_font_no_sym "${name}_bold" "${ttf_bold}" 64 2
make_font "${name}_bold" "${ttf_bold}" 16 4 ${chars} --no-compress
# make_font_w_extra_sym "${name}" "${ttf_normal}" 24 2 ${chars}
# make_font_no_sym "${name}_bold" "${ttf_bold}" 32 2 ${chars}
# make_font_no_sym "${name}_bold" "${ttf_bold}" 64 2
make_font_bin "${name}" "${ttf_normal}" 24 4 ${chars}
make_font_bin "${name}_bold" "${ttf_bold}" 32 4 ${chars}
make_font_bin "${name}_bold" "${ttf_bold}" 64 4 ${chars}
}

# Regular fonts
Expand Down
46 changes: 43 additions & 3 deletions radio/src/gui/colorlcd/fonts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,23 +30,62 @@
&lv_font_ ## name ## _bold_16, /* FONT_BOLD_INDEX */ \
&lv_font_ ## name ## _9, /* FONT_XXS_INDEX */ \
&lv_font_ ## name ## _13, /* FONT_XS_INDEX */ \
&lv_font_ ## name ## _24, /* FONT_L_INDEX */ \
&lv_font_ ## name ## _bold_32, /* FONT_XL_INDEX */ \
&lv_font_ ## name ## _bold_64, /* FONT_XXL_INDEX */ \
nullptr, /* FONT_L_INDEX */ \
nullptr, /* FONT_XL_INDEX */ \
nullptr, /* FONT_XXL_INDEX */ \
}

#if defined(TRANSLATIONS_CN)
FONT_TABLE(noto_cn);
#define XXL_FONT "F/FONTS/lv_font_noto_cn_bold_64.bin"
#define XL_FONT "F/FONTS/lv_font_noto_cn_bold_32.bin"
#define L_FONT "F/FONTS/lv_font_noto_cn_24.bin"
#elif defined(TRANSLATIONS_TW)
FONT_TABLE(noto_tw);
#define XXL_FONT "F/FONTS/lv_font_noto_tw_bold_64.bin"
#define XL_FONT "F/FONTS/lv_font_noto_tw_bold_32.bin"
#define L_FONT "F/FONTS/lv_font_noto_tw_24.bin"
#elif defined(TRANSLATIONS_JP)
FONT_TABLE(noto_jp);
#define XXL_FONT "F/FONTS/lv_font_noto_jp_bold_64.bin"
#define XL_FONT "F/FONTS/lv_font_noto_jp_bold_32.bin"
#define L_FONT "F/FONTS/lv_font_noto_jp_24.bin"
#elif defined(TRANSLATIONS_HE)
FONT_TABLE(arimo_he);
#define XXL_FONT "F/FONTS/lv_font_arimo_he_bold_64.bin"
#define XL_FONT "F/FONTS/lv_font_arimo_he_bold_32.bin"
#define L_FONT "F/FONTS/lv_font_arimo_he_24.bin"
#else
FONT_TABLE(roboto);
#define XXL_FONT "F/FONTS/lv_font_roboto_bold_64.bin"
#define XL_FONT "F/FONTS/lv_font_roboto_bold_32.bin"
#define L_FONT "F/FONTS/lv_font_roboto_24.bin"
#endif

void initFont(uint8_t font)
{
if (font >= FONT_L_INDEX && lvglFontTable[FONT_L_INDEX] == nullptr) {
const lv_font_t* lvFont = lv_font_load(L_FONT);
if (lvFont == nullptr)
lvFont = lvglFontTable[FONT_STD_INDEX];
lvglFontTable[FONT_L_INDEX] = lvFont;
}

if (font >= FONT_XL_INDEX && lvglFontTable[FONT_XL_INDEX] == nullptr) {
const lv_font_t* lvFont = lv_font_load(XL_FONT);
if (lvFont == nullptr)
lvFont = lvglFontTable[FONT_L_INDEX];
lvglFontTable[FONT_XL_INDEX] = lvFont;
}

if (font == FONT_XXL_INDEX && lvglFontTable[font] == nullptr) {
const lv_font_t* lvFont = lv_font_load(XXL_FONT);
if (lvFont == nullptr)
lvFont = lvglFontTable[font-1];
lvglFontTable[font] = lvFont;
}
}

#endif // BOOT

// used to set the line height to the line heights used in Edgetx < 2.7 and OpenTX
Expand All @@ -66,6 +105,7 @@ const lv_font_t* getFont(LcdFlags flags)
return LV_FONT_DEFAULT;
#else
auto fontIndex = FONT_INDEX(flags);
initFont(fontIndex);
if (fontIndex >= FONTS_COUNT) return LV_FONT_DEFAULT;
return lvglFontTable[fontIndex];
#endif
Expand Down
8 changes: 8 additions & 0 deletions radio/src/lv_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -738,11 +738,19 @@
#endif

/*API for FATFS (needs to be added separately). Uses f_open, f_read, etc*/
#if defined(BOOT)
#define LV_USE_FS_FATFS 0
#if LV_USE_FS_FATFS
#define LV_FS_FATFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
#define LV_FS_FATFS_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/
#endif
#else
#define LV_USE_FS_FATFS 1
#if LV_USE_FS_FATFS
#define LV_FS_FATFS_LETTER 'F' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
#define LV_FS_FATFS_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/
#endif
#endif

/*PNG decoder library*/
#if !defined(BOOT)
Expand Down

0 comments on commit 5d01588

Please sign in to comment.