No need for FontSwap intermediary

This commit is contained in:
Willy-JL
2024-02-12 22:34:18 +00:00
parent 90111a2aa7
commit abaa8c83ad
3 changed files with 13 additions and 22 deletions

View File

@@ -137,7 +137,7 @@ uint8_t canvas_current_font_width(const Canvas* canvas) {
const CanvasFontParameters* canvas_get_font_params(const Canvas* canvas, Font font) { const CanvasFontParameters* canvas_get_font_params(const Canvas* canvas, Font font) {
furi_assert(canvas); furi_assert(canvas);
furi_assert(font < FontTotalNumber); furi_assert(font < FontTotalNumber);
if((FontSwap)font < FontSwapCount && xtreme_assets.font_params[font]) { if(xtreme_assets.font_params[font]) {
return xtreme_assets.font_params[font]; return xtreme_assets.font_params[font];
} }
return &canvas_font_params[font]; return &canvas_font_params[font];
@@ -176,7 +176,7 @@ void canvas_invert_color(Canvas* canvas) {
void canvas_set_font(Canvas* canvas, Font font) { void canvas_set_font(Canvas* canvas, Font font) {
furi_assert(canvas); furi_assert(canvas);
u8g2_SetFontMode(&canvas->fb, 1); u8g2_SetFontMode(&canvas->fb, 1);
if((FontSwap)font < FontSwapCount && xtreme_assets.fonts[font]) { if(xtreme_assets.fonts[font]) {
u8g2_SetFont(&canvas->fb, xtreme_assets.fonts[font]); u8g2_SetFont(&canvas->fb, xtreme_assets.fonts[font]);
return; return;
} }

View File

@@ -111,7 +111,7 @@ void free_icon(const Icon* icon) {
free(frames); free(frames);
} }
void load_font(FontSwap font, const char* name, FuriString* path, File* file) { void load_font(Font font, const char* name, FuriString* path, File* file) {
furi_string_printf(path, FONTS_FMT, xtreme_settings.asset_pack, name); furi_string_printf(path, FONTS_FMT, xtreme_settings.asset_pack, name);
if(storage_file_open(file, furi_string_get_cstr(path), FSAM_READ, FSOM_OPEN_EXISTING)) { if(storage_file_open(file, furi_string_get_cstr(path), FSAM_READ, FSOM_OPEN_EXISTING)) {
uint64_t size = storage_file_size(file); uint64_t size = storage_file_size(file);
@@ -133,7 +133,7 @@ void load_font(FontSwap font, const char* name, FuriString* path, File* file) {
storage_file_close(file); storage_file_close(file);
} }
void free_font(FontSwap font) { void free_font(Font font) {
free(xtreme_assets.fonts[font]); free(xtreme_assets.fonts[font]);
xtreme_assets.fonts[font] = NULL; xtreme_assets.fonts[font] = NULL;
free(xtreme_assets.font_params[font]); free(xtreme_assets.font_params[font]);
@@ -141,11 +141,11 @@ void free_font(FontSwap font) {
} }
static const char* font_names[] = { static const char* font_names[] = {
[FontSwapPrimary] = "Primary", [FontPrimary] = "Primary",
[FontSwapSecondary] = "Secondary", [FontSecondary] = "Secondary",
[FontSwapKeyboard] = "Keyboard", [FontKeyboard] = "Keyboard",
[FontSwapBigNumbers] = "BigNumbers", [FontBigNumbers] = "BigNumbers",
[FontSwapBatteryPercent] = "BatteryPercent", [FontBatteryPercent] = "BatteryPercent",
}; };
void XTREME_ASSETS_LOAD() { void XTREME_ASSETS_LOAD() {
@@ -171,7 +171,7 @@ void XTREME_ASSETS_LOAD() {
} }
} }
for(FontSwap font = 0; font < FontSwapCount; font++) { for(Font font = 0; font < FontTotalNumber; font++) {
load_font(font, font_names[font], p, f); load_font(font, font_names[font], p, f);
} }
@@ -188,7 +188,7 @@ void XTREME_ASSETS_FREE() {
} }
} }
for(FontSwap font = 0; font < FontSwapCount; font++) { for(Font font = 0; font < FontTotalNumber; font++) {
if(xtreme_assets.fonts[font] != NULL) { if(xtreme_assets.fonts[font] != NULL) {
free_font(font); free_font(font);
} }

View File

@@ -85,19 +85,10 @@ typedef struct {
bool file_naming_prefix_after; bool file_naming_prefix_after;
} XtremeSettings; } XtremeSettings;
typedef enum {
FontSwapPrimary,
FontSwapSecondary,
FontSwapKeyboard,
FontSwapBigNumbers,
FontSwapBatteryPercent,
FontSwapCount,
} FontSwap;
typedef struct { typedef struct {
bool is_nsfw; // TODO: replace with packs text support bool is_nsfw; // TODO: replace with packs text support
uint8_t* fonts[FontSwapCount]; uint8_t* fonts[FontTotalNumber];
CanvasFontParameters* font_params[FontSwapCount]; CanvasFontParameters* font_params[FontTotalNumber];
} XtremeAssets; } XtremeAssets;
void XTREME_SETTINGS_LOAD(); void XTREME_SETTINGS_LOAD();