From 504a985a490db8c53a9182a6ce877e5a5ab8fa3a Mon Sep 17 00:00:00 2001 From: Sheikah <> Date: Thu, 2 Feb 2023 01:21:22 +0800 Subject: [PATCH] improve flash useage --- Core/App/Graphic/Fonts/unifont16x16.h | 284 +++++++++----------------- Core/App/Graphic/asciifont.c | 10 +- Core/App/Graphic/asciifont.h | 2 +- Core/App/Graphic/bmfont.c | 11 +- Core/App/Graphic/ui.c | 28 +-- tools/{char16x16 => char8x16}/100.pbm | Bin tools/{char16x16 => char8x16}/101.pbm | Bin tools/{char16x16 => char8x16}/102.pbm | Bin tools/{char16x16 => char8x16}/103.pbm | Bin tools/{char16x16 => char8x16}/104.pbm | Bin tools/{char16x16 => char8x16}/105.pbm | Bin tools/{char16x16 => char8x16}/106.pbm | Bin tools/{char16x16 => char8x16}/107.pbm | Bin tools/{char16x16 => char8x16}/108.pbm | Bin tools/{char16x16 => char8x16}/109.pbm | Bin tools/{char16x16 => char8x16}/110.pbm | Bin tools/{char16x16 => char8x16}/111.pbm | Bin tools/{char16x16 => char8x16}/112.pbm | Bin tools/{char16x16 => char8x16}/113.pbm | Bin tools/{char16x16 => char8x16}/114.pbm | Bin tools/{char16x16 => char8x16}/115.pbm | Bin tools/{char16x16 => char8x16}/116.pbm | Bin tools/{char16x16 => char8x16}/117.pbm | Bin tools/{char16x16 => char8x16}/118.pbm | Bin tools/{char16x16 => char8x16}/119.pbm | Bin tools/{char16x16 => char8x16}/120.pbm | Bin tools/{char16x16 => char8x16}/121.pbm | Bin tools/{char16x16 => char8x16}/122.pbm | Bin tools/{char16x16 => char8x16}/123.pbm | Bin tools/{char16x16 => char8x16}/124.pbm | Bin tools/{char16x16 => char8x16}/125.pbm | Bin tools/{char16x16 => char8x16}/126.pbm | Bin tools/{char16x16 => char8x16}/33.pbm | Bin tools/{char16x16 => char8x16}/34.pbm | Bin tools/{char16x16 => char8x16}/35.pbm | Bin tools/{char16x16 => char8x16}/36.pbm | Bin tools/{char16x16 => char8x16}/37.pbm | Bin tools/{char16x16 => char8x16}/38.pbm | Bin tools/{char16x16 => char8x16}/39.pbm | Bin tools/{char16x16 => char8x16}/40.pbm | Bin tools/{char16x16 => char8x16}/41.pbm | Bin tools/{char16x16 => char8x16}/42.pbm | Bin tools/{char16x16 => char8x16}/43.pbm | Bin tools/{char16x16 => char8x16}/44.pbm | Bin tools/{char16x16 => char8x16}/45.pbm | Bin tools/{char16x16 => char8x16}/46.pbm | Bin tools/{char16x16 => char8x16}/47.pbm | Bin tools/{char16x16 => char8x16}/48.pbm | Bin tools/{char16x16 => char8x16}/49.pbm | Bin tools/{char16x16 => char8x16}/50.pbm | Bin tools/{char16x16 => char8x16}/51.pbm | Bin tools/{char16x16 => char8x16}/52.pbm | Bin tools/{char16x16 => char8x16}/53.pbm | Bin tools/{char16x16 => char8x16}/54.pbm | Bin tools/{char16x16 => char8x16}/55.pbm | Bin tools/{char16x16 => char8x16}/56.pbm | Bin tools/{char16x16 => char8x16}/57.pbm | Bin tools/{char16x16 => char8x16}/58.pbm | Bin tools/{char16x16 => char8x16}/59.pbm | Bin tools/{char16x16 => char8x16}/60.pbm | Bin tools/{char16x16 => char8x16}/61.pbm | Bin tools/{char16x16 => char8x16}/62.pbm | Bin tools/{char16x16 => char8x16}/63.pbm | Bin tools/{char16x16 => char8x16}/64.pbm | Bin tools/{char16x16 => char8x16}/65.pbm | Bin tools/{char16x16 => char8x16}/66.pbm | Bin tools/{char16x16 => char8x16}/67.pbm | Bin tools/{char16x16 => char8x16}/68.pbm | Bin tools/{char16x16 => char8x16}/69.pbm | Bin tools/{char16x16 => char8x16}/70.pbm | Bin tools/{char16x16 => char8x16}/71.pbm | Bin tools/{char16x16 => char8x16}/72.pbm | Bin tools/{char16x16 => char8x16}/73.pbm | Bin tools/{char16x16 => char8x16}/74.pbm | Bin tools/{char16x16 => char8x16}/75.pbm | Bin tools/{char16x16 => char8x16}/76.pbm | Bin tools/{char16x16 => char8x16}/77.pbm | Bin tools/{char16x16 => char8x16}/78.pbm | Bin tools/{char16x16 => char8x16}/79.pbm | Bin tools/{char16x16 => char8x16}/80.pbm | Bin tools/{char16x16 => char8x16}/81.pbm | Bin tools/{char16x16 => char8x16}/82.pbm | Bin tools/{char16x16 => char8x16}/83.pbm | Bin tools/{char16x16 => char8x16}/84.pbm | Bin tools/{char16x16 => char8x16}/85.pbm | Bin tools/{char16x16 => char8x16}/86.pbm | Bin tools/{char16x16 => char8x16}/87.pbm | Bin tools/{char16x16 => char8x16}/88.pbm | Bin tools/{char16x16 => char8x16}/89.pbm | Bin tools/{char16x16 => char8x16}/90.pbm | Bin tools/{char16x16 => char8x16}/91.pbm | Bin tools/{char16x16 => char8x16}/92.pbm | Bin tools/{char16x16 => char8x16}/93.pbm | Bin tools/{char16x16 => char8x16}/94.pbm | Bin tools/{char16x16 => char8x16}/95.pbm | Bin tools/{char16x16 => char8x16}/96.pbm | Bin tools/{char16x16 => char8x16}/97.pbm | Bin tools/{char16x16 => char8x16}/98.pbm | Bin tools/{char16x16 => char8x16}/99.pbm | Bin tools/make_font_unifont_16x16.py | 2 +- 100 files changed, 121 insertions(+), 216 deletions(-) rename tools/{char16x16 => char8x16}/100.pbm (100%) rename tools/{char16x16 => char8x16}/101.pbm (100%) rename tools/{char16x16 => char8x16}/102.pbm (100%) rename tools/{char16x16 => char8x16}/103.pbm (100%) rename tools/{char16x16 => char8x16}/104.pbm (100%) rename tools/{char16x16 => char8x16}/105.pbm (100%) rename tools/{char16x16 => char8x16}/106.pbm (100%) rename tools/{char16x16 => char8x16}/107.pbm (100%) rename tools/{char16x16 => char8x16}/108.pbm (100%) rename tools/{char16x16 => char8x16}/109.pbm (100%) rename tools/{char16x16 => char8x16}/110.pbm (100%) rename tools/{char16x16 => char8x16}/111.pbm (100%) rename tools/{char16x16 => char8x16}/112.pbm (100%) rename tools/{char16x16 => char8x16}/113.pbm (100%) rename tools/{char16x16 => char8x16}/114.pbm (100%) rename tools/{char16x16 => char8x16}/115.pbm (100%) rename tools/{char16x16 => char8x16}/116.pbm (100%) rename tools/{char16x16 => char8x16}/117.pbm (100%) rename tools/{char16x16 => char8x16}/118.pbm (100%) rename tools/{char16x16 => char8x16}/119.pbm (100%) rename tools/{char16x16 => char8x16}/120.pbm (100%) rename tools/{char16x16 => char8x16}/121.pbm (100%) rename tools/{char16x16 => char8x16}/122.pbm (100%) rename tools/{char16x16 => char8x16}/123.pbm (100%) rename tools/{char16x16 => char8x16}/124.pbm (100%) rename tools/{char16x16 => char8x16}/125.pbm (100%) rename tools/{char16x16 => char8x16}/126.pbm (100%) rename tools/{char16x16 => char8x16}/33.pbm (100%) rename tools/{char16x16 => char8x16}/34.pbm (100%) rename tools/{char16x16 => char8x16}/35.pbm (100%) rename tools/{char16x16 => char8x16}/36.pbm (100%) rename tools/{char16x16 => char8x16}/37.pbm (100%) rename tools/{char16x16 => char8x16}/38.pbm (100%) rename tools/{char16x16 => char8x16}/39.pbm (100%) rename tools/{char16x16 => char8x16}/40.pbm (100%) rename tools/{char16x16 => char8x16}/41.pbm (100%) rename tools/{char16x16 => char8x16}/42.pbm (100%) rename tools/{char16x16 => char8x16}/43.pbm (100%) rename tools/{char16x16 => char8x16}/44.pbm (100%) rename tools/{char16x16 => char8x16}/45.pbm (100%) rename tools/{char16x16 => char8x16}/46.pbm (100%) rename tools/{char16x16 => char8x16}/47.pbm (100%) rename tools/{char16x16 => char8x16}/48.pbm (100%) rename tools/{char16x16 => char8x16}/49.pbm (100%) rename tools/{char16x16 => char8x16}/50.pbm (100%) rename tools/{char16x16 => char8x16}/51.pbm (100%) rename tools/{char16x16 => char8x16}/52.pbm (100%) rename tools/{char16x16 => char8x16}/53.pbm (100%) rename tools/{char16x16 => char8x16}/54.pbm (100%) rename tools/{char16x16 => char8x16}/55.pbm (100%) rename tools/{char16x16 => char8x16}/56.pbm (100%) rename tools/{char16x16 => char8x16}/57.pbm (100%) rename tools/{char16x16 => char8x16}/58.pbm (100%) rename tools/{char16x16 => char8x16}/59.pbm (100%) rename tools/{char16x16 => char8x16}/60.pbm (100%) rename tools/{char16x16 => char8x16}/61.pbm (100%) rename tools/{char16x16 => char8x16}/62.pbm (100%) rename tools/{char16x16 => char8x16}/63.pbm (100%) rename tools/{char16x16 => char8x16}/64.pbm (100%) rename tools/{char16x16 => char8x16}/65.pbm (100%) rename tools/{char16x16 => char8x16}/66.pbm (100%) rename tools/{char16x16 => char8x16}/67.pbm (100%) rename tools/{char16x16 => char8x16}/68.pbm (100%) rename tools/{char16x16 => char8x16}/69.pbm (100%) rename tools/{char16x16 => char8x16}/70.pbm (100%) rename tools/{char16x16 => char8x16}/71.pbm (100%) rename tools/{char16x16 => char8x16}/72.pbm (100%) rename tools/{char16x16 => char8x16}/73.pbm (100%) rename tools/{char16x16 => char8x16}/74.pbm (100%) rename tools/{char16x16 => char8x16}/75.pbm (100%) rename tools/{char16x16 => char8x16}/76.pbm (100%) rename tools/{char16x16 => char8x16}/77.pbm (100%) rename tools/{char16x16 => char8x16}/78.pbm (100%) rename tools/{char16x16 => char8x16}/79.pbm (100%) rename tools/{char16x16 => char8x16}/80.pbm (100%) rename tools/{char16x16 => char8x16}/81.pbm (100%) rename tools/{char16x16 => char8x16}/82.pbm (100%) rename tools/{char16x16 => char8x16}/83.pbm (100%) rename tools/{char16x16 => char8x16}/84.pbm (100%) rename tools/{char16x16 => char8x16}/85.pbm (100%) rename tools/{char16x16 => char8x16}/86.pbm (100%) rename tools/{char16x16 => char8x16}/87.pbm (100%) rename tools/{char16x16 => char8x16}/88.pbm (100%) rename tools/{char16x16 => char8x16}/89.pbm (100%) rename tools/{char16x16 => char8x16}/90.pbm (100%) rename tools/{char16x16 => char8x16}/91.pbm (100%) rename tools/{char16x16 => char8x16}/92.pbm (100%) rename tools/{char16x16 => char8x16}/93.pbm (100%) rename tools/{char16x16 => char8x16}/94.pbm (100%) rename tools/{char16x16 => char8x16}/95.pbm (100%) rename tools/{char16x16 => char8x16}/96.pbm (100%) rename tools/{char16x16 => char8x16}/97.pbm (100%) rename tools/{char16x16 => char8x16}/98.pbm (100%) rename tools/{char16x16 => char8x16}/99.pbm (100%) diff --git a/Core/App/Graphic/Fonts/unifont16x16.h b/Core/App/Graphic/Fonts/unifont16x16.h index 1376241..8e93c9e 100644 --- a/Core/App/Graphic/Fonts/unifont16x16.h +++ b/Core/App/Graphic/Fonts/unifont16x16.h @@ -1,197 +1,103 @@ #pragma once #include -const uint8_t FONT_UNIFONT_16_16[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x7E, 0x00, - 0x24, 0x00, 0x24, 0x00, 0x7E, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3E, 0x00, 0x49, 0x00, 0x48, 0x00, - 0x38, 0x00, 0x0E, 0x00, 0x09, 0x00, 0x49, 0x00, 0x3E, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x4A, 0x00, 0x4C, 0x00, 0x34, 0x00, - 0x08, 0x00, 0x18, 0x00, 0x16, 0x00, 0x29, 0x00, 0x49, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x22, 0x00, 0x14, 0x00, - 0x18, 0x00, 0x29, 0x00, 0x45, 0x00, 0x42, 0x00, 0x46, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, - 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x49, 0x00, - 0x2A, 0x00, 0x1C, 0x00, 0x2A, 0x00, 0x49, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x7F, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x42, 0x00, 0x46, 0x00, - 0x4A, 0x00, 0x52, 0x00, 0x62, 0x00, 0x42, 0x00, 0x24, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x28, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x02, 0x00, 0x02, 0x00, - 0x0C, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x02, 0x00, 0x02, 0x00, - 0x1E, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x14, 0x00, 0x24, 0x00, - 0x44, 0x00, 0x44, 0x00, 0x7E, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, - 0x7C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, - 0x7C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, - 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x3C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x3E, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, +const uint8_t FONT_UNIFONT_8_16[] = { + 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x12, 0x12, 0x12, 0x7E, 0x24, 0x24, 0x7E, 0x48, 0x48, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x3E, 0x49, 0x48, 0x38, 0x0E, 0x09, 0x49, 0x3E, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x31, 0x4A, 0x4C, 0x34, 0x08, 0x18, 0x16, 0x29, 0x49, 0x46, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x22, 0x14, 0x18, 0x29, 0x45, 0x42, 0x46, 0x39, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x49, 0x2A, 0x1C, 0x2A, 0x49, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x7F, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, - 0x10, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, - 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x02, 0x00, 0x02, 0x00, - 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x4A, 0x00, 0x56, 0x00, - 0x52, 0x00, 0x52, 0x00, 0x52, 0x00, 0x4E, 0x00, 0x20, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x24, 0x00, 0x42, 0x00, - 0x42, 0x00, 0x7E, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x7C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x40, 0x00, 0x40, 0x00, - 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x44, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x44, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, - 0x7C, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, - 0x7C, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x40, 0x00, 0x40, 0x00, - 0x40, 0x00, 0x4E, 0x00, 0x42, 0x00, 0x42, 0x00, 0x46, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x7E, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, - 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x44, 0x00, 0x48, 0x00, 0x50, 0x00, - 0x60, 0x00, 0x60, 0x00, 0x50, 0x00, 0x48, 0x00, 0x44, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, - 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, 0x66, 0x00, 0x66, 0x00, - 0x5A, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x62, 0x00, 0x62, 0x00, 0x52, 0x00, - 0x52, 0x00, 0x4A, 0x00, 0x4A, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x7C, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x5A, 0x00, 0x66, 0x00, 0x3C, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x7C, 0x00, 0x48, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x40, 0x00, 0x40, 0x00, - 0x30, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x22, 0x00, - 0x22, 0x00, 0x22, 0x00, 0x14, 0x00, 0x14, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x5A, 0x00, 0x66, 0x00, 0x66, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, 0x24, 0x00, 0x24, 0x00, - 0x18, 0x00, 0x24, 0x00, 0x24, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41, 0x00, 0x22, 0x00, 0x22, 0x00, - 0x14, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, 0x00, - 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, - 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, - 0x02, 0x00, 0x3E, 0x00, 0x42, 0x00, 0x42, 0x00, 0x46, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x5C, 0x00, 0x62, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x62, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, - 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3A, 0x00, 0x46, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x46, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, - 0x42, 0x00, 0x7E, 0x00, 0x40, 0x00, 0x40, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7C, 0x00, - 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x44, 0x00, 0x44, 0x00, - 0x44, 0x00, 0x38, 0x00, 0x20, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x5C, 0x00, 0x62, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x04, 0x00, - 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x48, 0x00, 0x30, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x00, 0x48, 0x00, - 0x50, 0x00, 0x60, 0x00, 0x50, 0x00, 0x48, 0x00, 0x44, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x00, 0x49, 0x00, - 0x49, 0x00, 0x49, 0x00, 0x49, 0x00, 0x49, 0x00, 0x49, 0x00, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x62, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x62, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x62, 0x00, 0x5C, 0x00, 0x40, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x46, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x46, 0x00, 0x3A, 0x00, 0x02, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x62, 0x00, - 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, - 0x40, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7C, 0x00, - 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x46, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x42, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x49, 0x00, - 0x49, 0x00, 0x49, 0x00, 0x49, 0x00, 0x49, 0x00, 0x49, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x24, 0x00, 0x18, 0x00, 0x24, 0x00, 0x24, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, - 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x26, 0x00, 0x1A, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x02, 0x00, - 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, - 0x10, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x0C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x30, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x49, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x46, 0x4A, 0x52, 0x62, 0x42, 0x24, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x02, 0x02, 0x0C, 0x10, 0x20, 0x40, 0x40, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x02, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x0C, 0x14, 0x24, 0x44, 0x44, 0x7E, 0x04, 0x04, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x40, 0x40, 0x40, 0x7C, 0x02, 0x02, 0x02, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x40, 0x40, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x02, 0x02, 0x04, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x02, 0x02, 0x04, 0x08, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x4A, 0x56, 0x52, 0x52, 0x52, 0x4E, 0x20, 0x1E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x24, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0x42, 0x42, 0x42, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x44, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x40, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x40, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x40, 0x40, 0x40, 0x4E, 0x42, 0x42, 0x46, 0x3A, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x44, 0x44, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x42, 0x44, 0x48, 0x50, 0x60, 0x60, 0x50, 0x48, 0x44, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x66, 0x66, 0x5A, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x42, 0x62, 0x62, 0x52, 0x52, 0x4A, 0x4A, 0x46, 0x42, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x5A, 0x66, 0x3C, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0x42, 0x42, 0x42, 0x7C, 0x48, 0x44, 0x44, 0x44, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x40, 0x40, 0x30, 0x0C, 0x02, 0x02, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x41, 0x41, 0x41, 0x22, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x5A, 0x66, 0x66, 0x42, 0x42, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x24, 0x24, 0x18, 0x24, 0x24, 0x42, 0x42, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x41, 0x41, 0x22, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x40, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x70, 0x00, + 0x00, 0x00, 0x18, 0x24, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x20, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x02, 0x3E, 0x42, 0x42, 0x46, 0x3A, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x5C, 0x62, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x40, 0x40, 0x40, 0x40, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x3A, 0x46, 0x42, 0x42, 0x42, 0x42, 0x46, 0x3A, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x7E, 0x40, 0x40, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0C, 0x10, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x44, 0x44, 0x44, 0x38, 0x20, 0x3C, 0x42, 0x42, 0x3C, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x5C, 0x62, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x48, 0x30, + 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x44, 0x48, 0x50, 0x60, 0x50, 0x48, 0x44, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x62, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x62, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5C, 0x40, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x46, 0x42, 0x42, 0x42, 0x42, 0x46, 0x3A, 0x02, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x62, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x40, 0x30, 0x0C, 0x02, 0x42, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x46, 0x3A, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x24, 0x24, 0x24, 0x24, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x24, 0x18, 0x24, 0x24, 0x42, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x26, 0x1A, 0x02, 0x02, 0x3C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, + 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x00, 0x00, 0x00, 0x30, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x30, + 0x00, 0x00, 0x00, 0x31, 0x49, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -const uint8_t FONT_UNIFONT_ASCII_WIDTH_16_16[] = { +const uint8_t FONT_UNIFONT_ASCII_WIDTH_8_16[] = { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, diff --git a/Core/App/Graphic/asciifont.c b/Core/App/Graphic/asciifont.c index a370876..9b462fa 100644 --- a/Core/App/Graphic/asciifont.c +++ b/Core/App/Graphic/asciifont.c @@ -32,13 +32,13 @@ bmf_BitmapFont font_quan_8x8_obj = { FONT_QUAN_ASCII_WIDTH_8_8 }; -bmf_BitmapFont font_unifont_16x16_obj = { +bmf_BitmapFont font_unifont_8x16_obj = { af_get_char_data, - FONT_UNIFONT_16_16, + FONT_UNIFONT_8_16, + 8, 16, - 16, - FONT_UNIFONT_ASCII_WIDTH_16_16 + FONT_UNIFONT_ASCII_WIDTH_8_16 }; bmf_BitmapFont *font_quan_8x8 = &font_quan_8x8_obj; -bmf_BitmapFont *font_unifont_16x16 = &font_unifont_16x16_obj; +bmf_BitmapFont *font_unifont_8x16 = &font_unifont_8x16_obj; diff --git a/Core/App/Graphic/asciifont.h b/Core/App/Graphic/asciifont.h index 6ae5ee3..ecf8f19 100644 --- a/Core/App/Graphic/asciifont.h +++ b/Core/App/Graphic/asciifont.h @@ -3,4 +3,4 @@ #include "bmfont.h" extern bmf_BitmapFont *font_quan_8x8; -extern bmf_BitmapFont *font_unifont_16x16; +extern bmf_BitmapFont *font_unifont_8x16; diff --git a/Core/App/Graphic/bmfont.c b/Core/App/Graphic/bmfont.c index 8f996ce..1a93e2a 100644 --- a/Core/App/Graphic/bmfont.c +++ b/Core/App/Graphic/bmfont.c @@ -1,11 +1,8 @@ #include -#include #include "bmfont.h" #include "st7735.h" -#define malloc(s) malloc(s) -#define free(p) free(p) - +#define BMFONT_CHAR_BUFFER_SIZE 32 #define bmf_TAB_SIZE 2 #define bmf_ASCII_EOF 0 #define bmf_ASCII_T 9 @@ -147,7 +144,10 @@ uint32_t bmf_draw_text(bmf_BitmapFont *font, uint8_t *text, uint32_t bytes_len, uint8_t wp = ch_w / 8; wp += (ch_w % 8) ? 1 : 0; uint16_t buffer_size = wp * ch_h; - uint8_t *buffer = malloc(buffer_size); + if (buffer_size > BMFONT_CHAR_BUFFER_SIZE) { + return 0; + } + uint8_t buffer[BMFONT_CHAR_BUFFER_SIZE]; while (state_obj.is_looping) { place_next_char(font, state); if (state_obj.is_looping && state_obj.unicode != bmf_ASCII_R && state_obj.unicode != bmf_ASCII_N && state_obj.unicode != bmf_ASCII_T && state_obj.unicode != bmf_ASCII_SPACE) { @@ -175,7 +175,6 @@ uint32_t bmf_draw_text(bmf_BitmapFont *font, uint8_t *text, uint32_t bytes_len, } } } - free(buffer); return state_obj.byte_offset; } diff --git a/Core/App/Graphic/ui.c b/Core/App/Graphic/ui.c index 9c77ed8..8ae4a59 100644 --- a/Core/App/Graphic/ui.c +++ b/Core/App/Graphic/ui.c @@ -72,8 +72,8 @@ void ui_com_title_bar(uint8_t clear, uint8_t *text, uint32_t bytes_len) { if (clear) { ST7735_FillRectangle(1, 1, ST7735_WIDTH - 2, 16, ST7735_BLACK); } - uint16_t off_x = (ST7735_WIDTH - 2 - bmf_get_text_width(font_unifont_16x16, text, bytes_len)) / 2 + 1; - bmf_draw_text(font_unifont_16x16, text, bytes_len, off_x, 1, ST7735_WIDTH - 2, 16, ST7735_YELLOW); + uint16_t off_x = (ST7735_WIDTH - 2 - bmf_get_text_width(font_unifont_8x16, text, bytes_len)) / 2 + 1; + bmf_draw_text(font_unifont_8x16, text, bytes_len, off_x, 1, ST7735_WIDTH - 2, 16, ST7735_YELLOW); } void ui_com_freq_digital(uint8_t clear, uint8_t only_pointer) { @@ -138,15 +138,15 @@ void ui_com_fm_am(uint8_t clear) { ST7735_FillRectangle(ST7735_WIDTH - area_w - 1 - 1, off_y, area_w, 16, ST7735_BLACK); } if (global_data.rf_mode == G_RF_MODE_AM) { - off_x = (area_w - bmf_get_text_width(font_unifont_16x16, u8str("AM"), 2)) / 2; - bmf_draw_text(font_unifont_16x16, u8str("AM"), 2, off_x, off_y, area_w, 16, ST7735_YELLOW); - off_x = ST7735_WIDTH - area_w - 1 + (area_w - bmf_get_text_width(font_unifont_16x16, u8str("KHz"), 3)) / 2; - bmf_draw_text(font_unifont_16x16, u8str("KHz"), 3, off_x, off_y, area_w, 16, ST7735_BLUE); + off_x = (area_w - bmf_get_text_width(font_unifont_8x16, u8str("AM"), 2)) / 2; + bmf_draw_text(font_unifont_8x16, u8str("AM"), 2, off_x, off_y, area_w, 16, ST7735_YELLOW); + off_x = ST7735_WIDTH - area_w - 1 + (area_w - bmf_get_text_width(font_unifont_8x16, u8str("KHz"), 3)) / 2; + bmf_draw_text(font_unifont_8x16, u8str("KHz"), 3, off_x, off_y, area_w, 16, ST7735_BLUE); } else { - off_x = (area_w - bmf_get_text_width(font_unifont_16x16, u8str("FM"), 2)) / 2; - bmf_draw_text(font_unifont_16x16, u8str("FM"), 2, off_x, off_y, area_w, 16, ST7735_GREEN); - off_x = ST7735_WIDTH - area_w - 1 + (area_w - bmf_get_text_width(font_unifont_16x16, u8str("MHz"), 3)) / 2; - bmf_draw_text(font_unifont_16x16, u8str("MHz"), 3, off_x, off_y, area_w, 16, ST7735_BLUE); + off_x = (area_w - bmf_get_text_width(font_unifont_8x16, u8str("FM"), 2)) / 2; + bmf_draw_text(font_unifont_8x16, u8str("FM"), 2, off_x, off_y, area_w, 16, ST7735_GREEN); + off_x = ST7735_WIDTH - area_w - 1 + (area_w - bmf_get_text_width(font_unifont_8x16, u8str("MHz"), 3)) / 2; + bmf_draw_text(font_unifont_8x16, u8str("MHz"), 3, off_x, off_y, area_w, 16, ST7735_BLUE); } } @@ -176,8 +176,8 @@ void ui_com_vol_bar(uint8_t clear) { } uint16_t color_skyblue = ST7735_COLOR565(0, 0x7F, 0xFF); // text, 32x16 - off_x = off_x + (32 - bmf_get_text_width(font_unifont_16x16, u8str("VOL"), 3)) / 2; - bmf_draw_text(font_unifont_16x16, u8str("VOL"), 3, off_x, off_y, 32, 16, color_skyblue); + off_x = off_x + (32 - bmf_get_text_width(font_unifont_8x16, u8str("VOL"), 3)) / 2; + bmf_draw_text(font_unifont_8x16, u8str("VOL"), 3, off_x, off_y, 32, 16, color_skyblue); // bar off_x = 1 + 32; ui_com_progress_bar(clear, 33, off_y + 2, ST7735_WIDTH - 34 - 3, 13, ST7735_WHITE, color_skyblue, global_data.volumn, 16); @@ -190,8 +190,8 @@ void ui_com_sig_bar(uint8_t clear) { ST7735_FillRectangle(off_x, off_y, ST7735_WIDTH - 2, 16, ST7735_BLACK); } // text, 32x16 - off_x = off_x + (32 - bmf_get_text_width(font_unifont_16x16, u8str("SIG"), 3)) / 2; - bmf_draw_text(font_unifont_16x16, u8str("SIG"), 3, off_x, off_y, 32, 16, ST7735_GREEN); + off_x = off_x + (32 - bmf_get_text_width(font_unifont_8x16, u8str("SIG"), 3)) / 2; + bmf_draw_text(font_unifont_8x16, u8str("SIG"), 3, off_x, off_y, 32, 16, ST7735_GREEN); // bar off_x = 1 + 32; ui_com_progress_bar(clear, 33, off_y + 1, ST7735_WIDTH - 34 - 3, 13, ST7735_WHITE, ST7735_GREEN, global_data.signal, 255); diff --git a/tools/char16x16/100.pbm b/tools/char8x16/100.pbm similarity index 100% rename from tools/char16x16/100.pbm rename to tools/char8x16/100.pbm diff --git a/tools/char16x16/101.pbm b/tools/char8x16/101.pbm similarity index 100% rename from tools/char16x16/101.pbm rename to tools/char8x16/101.pbm diff --git a/tools/char16x16/102.pbm b/tools/char8x16/102.pbm similarity index 100% rename from tools/char16x16/102.pbm rename to tools/char8x16/102.pbm diff --git a/tools/char16x16/103.pbm b/tools/char8x16/103.pbm similarity index 100% rename from tools/char16x16/103.pbm rename to tools/char8x16/103.pbm diff --git a/tools/char16x16/104.pbm b/tools/char8x16/104.pbm similarity index 100% rename from tools/char16x16/104.pbm rename to tools/char8x16/104.pbm diff --git a/tools/char16x16/105.pbm b/tools/char8x16/105.pbm similarity index 100% rename from tools/char16x16/105.pbm rename to tools/char8x16/105.pbm diff --git a/tools/char16x16/106.pbm b/tools/char8x16/106.pbm similarity index 100% rename from tools/char16x16/106.pbm rename to tools/char8x16/106.pbm diff --git a/tools/char16x16/107.pbm b/tools/char8x16/107.pbm similarity index 100% rename from tools/char16x16/107.pbm rename to tools/char8x16/107.pbm diff --git a/tools/char16x16/108.pbm b/tools/char8x16/108.pbm similarity index 100% rename from tools/char16x16/108.pbm rename to tools/char8x16/108.pbm diff --git a/tools/char16x16/109.pbm b/tools/char8x16/109.pbm similarity index 100% rename from tools/char16x16/109.pbm rename to tools/char8x16/109.pbm diff --git a/tools/char16x16/110.pbm b/tools/char8x16/110.pbm similarity index 100% rename from tools/char16x16/110.pbm rename to tools/char8x16/110.pbm diff --git a/tools/char16x16/111.pbm b/tools/char8x16/111.pbm similarity index 100% rename from tools/char16x16/111.pbm rename to tools/char8x16/111.pbm diff --git a/tools/char16x16/112.pbm b/tools/char8x16/112.pbm similarity index 100% rename from tools/char16x16/112.pbm rename to tools/char8x16/112.pbm diff --git a/tools/char16x16/113.pbm b/tools/char8x16/113.pbm similarity index 100% rename from tools/char16x16/113.pbm rename to tools/char8x16/113.pbm diff --git a/tools/char16x16/114.pbm b/tools/char8x16/114.pbm similarity index 100% rename from tools/char16x16/114.pbm rename to tools/char8x16/114.pbm diff --git a/tools/char16x16/115.pbm b/tools/char8x16/115.pbm similarity index 100% rename from tools/char16x16/115.pbm rename to tools/char8x16/115.pbm diff --git a/tools/char16x16/116.pbm b/tools/char8x16/116.pbm similarity index 100% rename from tools/char16x16/116.pbm rename to tools/char8x16/116.pbm diff --git a/tools/char16x16/117.pbm b/tools/char8x16/117.pbm similarity index 100% rename from tools/char16x16/117.pbm rename to tools/char8x16/117.pbm diff --git a/tools/char16x16/118.pbm b/tools/char8x16/118.pbm similarity index 100% rename from tools/char16x16/118.pbm rename to tools/char8x16/118.pbm diff --git a/tools/char16x16/119.pbm b/tools/char8x16/119.pbm similarity index 100% rename from tools/char16x16/119.pbm rename to tools/char8x16/119.pbm diff --git a/tools/char16x16/120.pbm b/tools/char8x16/120.pbm similarity index 100% rename from tools/char16x16/120.pbm rename to tools/char8x16/120.pbm diff --git a/tools/char16x16/121.pbm b/tools/char8x16/121.pbm similarity index 100% rename from tools/char16x16/121.pbm rename to tools/char8x16/121.pbm diff --git a/tools/char16x16/122.pbm b/tools/char8x16/122.pbm similarity index 100% rename from tools/char16x16/122.pbm rename to tools/char8x16/122.pbm diff --git a/tools/char16x16/123.pbm b/tools/char8x16/123.pbm similarity index 100% rename from tools/char16x16/123.pbm rename to tools/char8x16/123.pbm diff --git a/tools/char16x16/124.pbm b/tools/char8x16/124.pbm similarity index 100% rename from tools/char16x16/124.pbm rename to tools/char8x16/124.pbm diff --git a/tools/char16x16/125.pbm b/tools/char8x16/125.pbm similarity index 100% rename from tools/char16x16/125.pbm rename to tools/char8x16/125.pbm diff --git a/tools/char16x16/126.pbm b/tools/char8x16/126.pbm similarity index 100% rename from tools/char16x16/126.pbm rename to tools/char8x16/126.pbm diff --git a/tools/char16x16/33.pbm b/tools/char8x16/33.pbm similarity index 100% rename from tools/char16x16/33.pbm rename to tools/char8x16/33.pbm diff --git a/tools/char16x16/34.pbm b/tools/char8x16/34.pbm similarity index 100% rename from tools/char16x16/34.pbm rename to tools/char8x16/34.pbm diff --git a/tools/char16x16/35.pbm b/tools/char8x16/35.pbm similarity index 100% rename from tools/char16x16/35.pbm rename to tools/char8x16/35.pbm diff --git a/tools/char16x16/36.pbm b/tools/char8x16/36.pbm similarity index 100% rename from tools/char16x16/36.pbm rename to tools/char8x16/36.pbm diff --git a/tools/char16x16/37.pbm b/tools/char8x16/37.pbm similarity index 100% rename from tools/char16x16/37.pbm rename to tools/char8x16/37.pbm diff --git a/tools/char16x16/38.pbm b/tools/char8x16/38.pbm similarity index 100% rename from tools/char16x16/38.pbm rename to tools/char8x16/38.pbm diff --git a/tools/char16x16/39.pbm b/tools/char8x16/39.pbm similarity index 100% rename from tools/char16x16/39.pbm rename to tools/char8x16/39.pbm diff --git a/tools/char16x16/40.pbm b/tools/char8x16/40.pbm similarity index 100% rename from tools/char16x16/40.pbm rename to tools/char8x16/40.pbm diff --git a/tools/char16x16/41.pbm b/tools/char8x16/41.pbm similarity index 100% rename from tools/char16x16/41.pbm rename to tools/char8x16/41.pbm diff --git a/tools/char16x16/42.pbm b/tools/char8x16/42.pbm similarity index 100% rename from tools/char16x16/42.pbm rename to tools/char8x16/42.pbm diff --git a/tools/char16x16/43.pbm b/tools/char8x16/43.pbm similarity index 100% rename from tools/char16x16/43.pbm rename to tools/char8x16/43.pbm diff --git a/tools/char16x16/44.pbm b/tools/char8x16/44.pbm similarity index 100% rename from tools/char16x16/44.pbm rename to tools/char8x16/44.pbm diff --git a/tools/char16x16/45.pbm b/tools/char8x16/45.pbm similarity index 100% rename from tools/char16x16/45.pbm rename to tools/char8x16/45.pbm diff --git a/tools/char16x16/46.pbm b/tools/char8x16/46.pbm similarity index 100% rename from tools/char16x16/46.pbm rename to tools/char8x16/46.pbm diff --git a/tools/char16x16/47.pbm b/tools/char8x16/47.pbm similarity index 100% rename from tools/char16x16/47.pbm rename to tools/char8x16/47.pbm diff --git a/tools/char16x16/48.pbm b/tools/char8x16/48.pbm similarity index 100% rename from tools/char16x16/48.pbm rename to tools/char8x16/48.pbm diff --git a/tools/char16x16/49.pbm b/tools/char8x16/49.pbm similarity index 100% rename from tools/char16x16/49.pbm rename to tools/char8x16/49.pbm diff --git a/tools/char16x16/50.pbm b/tools/char8x16/50.pbm similarity index 100% rename from tools/char16x16/50.pbm rename to tools/char8x16/50.pbm diff --git a/tools/char16x16/51.pbm b/tools/char8x16/51.pbm similarity index 100% rename from tools/char16x16/51.pbm rename to tools/char8x16/51.pbm diff --git a/tools/char16x16/52.pbm b/tools/char8x16/52.pbm similarity index 100% rename from tools/char16x16/52.pbm rename to tools/char8x16/52.pbm diff --git a/tools/char16x16/53.pbm b/tools/char8x16/53.pbm similarity index 100% rename from tools/char16x16/53.pbm rename to tools/char8x16/53.pbm diff --git a/tools/char16x16/54.pbm b/tools/char8x16/54.pbm similarity index 100% rename from tools/char16x16/54.pbm rename to tools/char8x16/54.pbm diff --git a/tools/char16x16/55.pbm b/tools/char8x16/55.pbm similarity index 100% rename from tools/char16x16/55.pbm rename to tools/char8x16/55.pbm diff --git a/tools/char16x16/56.pbm b/tools/char8x16/56.pbm similarity index 100% rename from tools/char16x16/56.pbm rename to tools/char8x16/56.pbm diff --git a/tools/char16x16/57.pbm b/tools/char8x16/57.pbm similarity index 100% rename from tools/char16x16/57.pbm rename to tools/char8x16/57.pbm diff --git a/tools/char16x16/58.pbm b/tools/char8x16/58.pbm similarity index 100% rename from tools/char16x16/58.pbm rename to tools/char8x16/58.pbm diff --git a/tools/char16x16/59.pbm b/tools/char8x16/59.pbm similarity index 100% rename from tools/char16x16/59.pbm rename to tools/char8x16/59.pbm diff --git a/tools/char16x16/60.pbm b/tools/char8x16/60.pbm similarity index 100% rename from tools/char16x16/60.pbm rename to tools/char8x16/60.pbm diff --git a/tools/char16x16/61.pbm b/tools/char8x16/61.pbm similarity index 100% rename from tools/char16x16/61.pbm rename to tools/char8x16/61.pbm diff --git a/tools/char16x16/62.pbm b/tools/char8x16/62.pbm similarity index 100% rename from tools/char16x16/62.pbm rename to tools/char8x16/62.pbm diff --git a/tools/char16x16/63.pbm b/tools/char8x16/63.pbm similarity index 100% rename from tools/char16x16/63.pbm rename to tools/char8x16/63.pbm diff --git a/tools/char16x16/64.pbm b/tools/char8x16/64.pbm similarity index 100% rename from tools/char16x16/64.pbm rename to tools/char8x16/64.pbm diff --git a/tools/char16x16/65.pbm b/tools/char8x16/65.pbm similarity index 100% rename from tools/char16x16/65.pbm rename to tools/char8x16/65.pbm diff --git a/tools/char16x16/66.pbm b/tools/char8x16/66.pbm similarity index 100% rename from tools/char16x16/66.pbm rename to tools/char8x16/66.pbm diff --git a/tools/char16x16/67.pbm b/tools/char8x16/67.pbm similarity index 100% rename from tools/char16x16/67.pbm rename to tools/char8x16/67.pbm diff --git a/tools/char16x16/68.pbm b/tools/char8x16/68.pbm similarity index 100% rename from tools/char16x16/68.pbm rename to tools/char8x16/68.pbm diff --git a/tools/char16x16/69.pbm b/tools/char8x16/69.pbm similarity index 100% rename from tools/char16x16/69.pbm rename to tools/char8x16/69.pbm diff --git a/tools/char16x16/70.pbm b/tools/char8x16/70.pbm similarity index 100% rename from tools/char16x16/70.pbm rename to tools/char8x16/70.pbm diff --git a/tools/char16x16/71.pbm b/tools/char8x16/71.pbm similarity index 100% rename from tools/char16x16/71.pbm rename to tools/char8x16/71.pbm diff --git a/tools/char16x16/72.pbm b/tools/char8x16/72.pbm similarity index 100% rename from tools/char16x16/72.pbm rename to tools/char8x16/72.pbm diff --git a/tools/char16x16/73.pbm b/tools/char8x16/73.pbm similarity index 100% rename from tools/char16x16/73.pbm rename to tools/char8x16/73.pbm diff --git a/tools/char16x16/74.pbm b/tools/char8x16/74.pbm similarity index 100% rename from tools/char16x16/74.pbm rename to tools/char8x16/74.pbm diff --git a/tools/char16x16/75.pbm b/tools/char8x16/75.pbm similarity index 100% rename from tools/char16x16/75.pbm rename to tools/char8x16/75.pbm diff --git a/tools/char16x16/76.pbm b/tools/char8x16/76.pbm similarity index 100% rename from tools/char16x16/76.pbm rename to tools/char8x16/76.pbm diff --git a/tools/char16x16/77.pbm b/tools/char8x16/77.pbm similarity index 100% rename from tools/char16x16/77.pbm rename to tools/char8x16/77.pbm diff --git a/tools/char16x16/78.pbm b/tools/char8x16/78.pbm similarity index 100% rename from tools/char16x16/78.pbm rename to tools/char8x16/78.pbm diff --git a/tools/char16x16/79.pbm b/tools/char8x16/79.pbm similarity index 100% rename from tools/char16x16/79.pbm rename to tools/char8x16/79.pbm diff --git a/tools/char16x16/80.pbm b/tools/char8x16/80.pbm similarity index 100% rename from tools/char16x16/80.pbm rename to tools/char8x16/80.pbm diff --git a/tools/char16x16/81.pbm b/tools/char8x16/81.pbm similarity index 100% rename from tools/char16x16/81.pbm rename to tools/char8x16/81.pbm diff --git a/tools/char16x16/82.pbm b/tools/char8x16/82.pbm similarity index 100% rename from tools/char16x16/82.pbm rename to tools/char8x16/82.pbm diff --git a/tools/char16x16/83.pbm b/tools/char8x16/83.pbm similarity index 100% rename from tools/char16x16/83.pbm rename to tools/char8x16/83.pbm diff --git a/tools/char16x16/84.pbm b/tools/char8x16/84.pbm similarity index 100% rename from tools/char16x16/84.pbm rename to tools/char8x16/84.pbm diff --git a/tools/char16x16/85.pbm b/tools/char8x16/85.pbm similarity index 100% rename from tools/char16x16/85.pbm rename to tools/char8x16/85.pbm diff --git a/tools/char16x16/86.pbm b/tools/char8x16/86.pbm similarity index 100% rename from tools/char16x16/86.pbm rename to tools/char8x16/86.pbm diff --git a/tools/char16x16/87.pbm b/tools/char8x16/87.pbm similarity index 100% rename from tools/char16x16/87.pbm rename to tools/char8x16/87.pbm diff --git a/tools/char16x16/88.pbm b/tools/char8x16/88.pbm similarity index 100% rename from tools/char16x16/88.pbm rename to tools/char8x16/88.pbm diff --git a/tools/char16x16/89.pbm b/tools/char8x16/89.pbm similarity index 100% rename from tools/char16x16/89.pbm rename to tools/char8x16/89.pbm diff --git a/tools/char16x16/90.pbm b/tools/char8x16/90.pbm similarity index 100% rename from tools/char16x16/90.pbm rename to tools/char8x16/90.pbm diff --git a/tools/char16x16/91.pbm b/tools/char8x16/91.pbm similarity index 100% rename from tools/char16x16/91.pbm rename to tools/char8x16/91.pbm diff --git a/tools/char16x16/92.pbm b/tools/char8x16/92.pbm similarity index 100% rename from tools/char16x16/92.pbm rename to tools/char8x16/92.pbm diff --git a/tools/char16x16/93.pbm b/tools/char8x16/93.pbm similarity index 100% rename from tools/char16x16/93.pbm rename to tools/char8x16/93.pbm diff --git a/tools/char16x16/94.pbm b/tools/char8x16/94.pbm similarity index 100% rename from tools/char16x16/94.pbm rename to tools/char8x16/94.pbm diff --git a/tools/char16x16/95.pbm b/tools/char8x16/95.pbm similarity index 100% rename from tools/char16x16/95.pbm rename to tools/char8x16/95.pbm diff --git a/tools/char16x16/96.pbm b/tools/char8x16/96.pbm similarity index 100% rename from tools/char16x16/96.pbm rename to tools/char8x16/96.pbm diff --git a/tools/char16x16/97.pbm b/tools/char8x16/97.pbm similarity index 100% rename from tools/char16x16/97.pbm rename to tools/char8x16/97.pbm diff --git a/tools/char16x16/98.pbm b/tools/char8x16/98.pbm similarity index 100% rename from tools/char16x16/98.pbm rename to tools/char8x16/98.pbm diff --git a/tools/char16x16/99.pbm b/tools/char8x16/99.pbm similarity index 100% rename from tools/char16x16/99.pbm rename to tools/char8x16/99.pbm diff --git a/tools/make_font_unifont_16x16.py b/tools/make_font_unifont_16x16.py index 6a5ab2f..ed15ebf 100644 --- a/tools/make_font_unifont_16x16.py +++ b/tools/make_font_unifont_16x16.py @@ -5,7 +5,7 @@ import framebuf current_path = os.path.abspath(os.path.dirname(__file__)) def main(): - block_width = 16 + block_width = 8 block_height = 16 preview_path = os.path.join(current_path, "pix{}x{}.png".format(block_width, block_height)) c_output_path = os.path.join(current_path, "pix{}x{}.h".format(block_width, block_height))