feat(ui): match system-settings cards and type size to the hub

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
yuquanjun 2026-09-26 15:06:35 +08:00
parent 03062543e4
commit cde5a80a3d
4 changed files with 375 additions and 297 deletions

View File

@ -196,12 +196,13 @@ void CallUI_UsbConfirm(void);
#define UI0902_SUB_SEP_Y 38 #define UI0902_SUB_SEP_Y 38
/* 0904 / 0902-07 系统设置四行(稿面行框 ≈x16 w207) */ /* 0904 / 0902-07 系统设置四行(稿面行框 ≈x16 w207) */
#define UI0902_SET_ROW_X 16 /* 与设置入口卡片同一套:x=8、宽 223、圆角 12、间距 8。四行排不下 66 高,改为 62。 */
#define UI0902_SET_ROW_W 207 #define UI0902_SET_ROW_X 8
#define UI0902_SET_ROW_H 58 #define UI0902_SET_ROW_W 223
#define UI0902_SET_ROW_Y0 51 #define UI0902_SET_ROW_H 62
#define UI0902_SET_ROW_PITCH 63 #define UI0902_SET_ROW_Y0 42
#define UI0902_SET_ROW_FONT UI0902_FONT_BODY /* 13 */ #define UI0902_SET_ROW_PITCH 70
#define UI0902_SET_ROW_FONT UI0902_FONT_HERO
/* 0904 / 0902-08 恢复出厂:竖排确认(灰)/取消(蓝) */ /* 0904 / 0902-08 恢复出厂:竖排确认(灰)/取消(蓝) */
#define UI0902_RESTORE_BTN_X 10 #define UI0902_RESTORE_BTN_X 10

View File

@ -2,302 +2,332 @@
/* Auto-generated by tools/gen_sysset_font.py — MiSans Medium */ /* Auto-generated by tools/gen_sysset_font.py — MiSans Medium */
const unsigned char gImage_SysSet_Title_64x16[128] = { /* 64x16 1-bit MSB */ const unsigned char gImage_SysSet_Title_72x18[162] = { /* 72x18 1-bit MSB */
0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x1F,0xFC,0x18,0x60,0x31,0xF8,0x3F,0xFC, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x03,0x0C,0x03,0x0F,0xE0,
0x3F,0xFC,0x13,0xFE,0x39,0xF8,0x26,0x64,0x07,0x10,0x33,0xFE,0x19,0x98,0x3F,0xFC, 0xFF,0xFC,0x3F,0xFF,0x06,0x0E,0x03,0x8F,0xE0,0xFF,0xFC,0x3F,0xC0,0x06,0x7F,0xE1,
0x0C,0x38,0x6C,0xC0,0x03,0x1E,0x01,0x80,0x3F,0xE0,0x7D,0x98,0x77,0x0E,0x7F,0xFE, 0xCC,0x60,0xCC,0xCC,0x07,0x0C,0x0C,0xFF,0xC0,0x8C,0x60,0xFF,0xFC,0x0E,0x1C,0x1D,
0x1F,0xD0,0x7B,0x0C,0x70,0x00,0x01,0x80,0x07,0x38,0x13,0xFE,0x33,0xFC,0x1F,0xF8, 0x99,0x00,0x18,0x78,0x03,0x00,0x1F,0xF0,0x1F,0x31,0x87,0x30,0x79,0xFF,0xFE,0x1F,
0x3E,0xFC,0x31,0xF4,0x33,0x0C,0x1F,0xF8,0x3F,0xFE,0x7C,0xB0,0x31,0x98,0x1F,0xF8, 0xE8,0x1F,0x61,0xC7,0x80,0x00,0x03,0x00,0x03,0x8C,0x06,0x7F,0xC1,0x9F,0xF0,0x7F,
0x01,0x84,0x71,0xB0,0x35,0xD8,0x1F,0xF8,0x1D,0xB8,0x01,0xB2,0x3C,0xF0,0x18,0x18, 0xF8,0x1E,0x0E,0x0C,0x7F,0x61,0x9F,0xF0,0x60,0x18,0x3F,0xFF,0x0F,0x13,0x01,0x98,
0x39,0x9C,0x7D,0xB2,0x38,0xF8,0x1F,0xF8,0x77,0x86,0x7F,0x1E,0x37,0x9E,0x7F,0xFE, 0x60,0x7F,0xF8,0x3F,0xE3,0x1F,0x13,0x01,0x8C,0xE0,0x60,0x18,0x04,0xC8,0x00,0x33,
0x07,0x80,0x06,0x1E,0x06,0x06,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x21,0xE7,0xC0,0x7F,0xF8,0x0C,0xDE,0x01,0x33,0x61,0xE3,0x80,0x60,0x18,0x38,0xC7,
0x1F,0xF3,0x61,0xCF,0xC0,0x7F,0xF8,0x73,0xC3,0x9F,0xE3,0xE3,0xBC,0xF9,0xFF,0xFE,
0x03,0xC0,0x00,0xC3,0xC0,0x30,0x39,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_Title = { gImage_SysSet_Title_64x16, 64, 16, 64, 0, 0 }; const SysSetGlyph g_SysSet_Title = { gImage_SysSet_Title_72x18, 72, 18, 72, 0, 0 };
const unsigned char gImage_SysSet_LblVer_51x13[91] = { /* 51x13 1-bit MSB */ const unsigned char gImage_SysSet_LblVer_71x18[162] = { /* 71x18 1-bit MSB */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC1,0x08,0x14,0x18,0x08,0x00,0xFF,0xE1, 0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x06,0x0C,0x06,0xC0,0x60,
0x68,0x3D,0xF8,0x08,0x00,0xC4,0x63,0x7E,0x3D,0x01,0xFF,0xC0,0xFF,0xE3,0x7F,0x3D, 0x06,0x00,0x7F,0xFE,0x06,0xCC,0x06,0xDF,0xF0,0x06,0x00,0x61,0x86,0x0C,0xCC,0x06,
0xF0,0x1C,0x00,0xC4,0x67,0xC8,0x3F,0xF8,0x3E,0x00,0xDF,0x67,0xC8,0x31,0xD8,0x2A, 0xDF,0x81,0xFF,0xF8,0x61,0x86,0x0C,0xFF,0x86,0xD8,0x03,0xFF,0xFC,0x7F,0xFE,0x1C,
0x00,0xDF,0x67,0x0C,0x3D,0xD0,0x6B,0x00,0xD1,0x63,0xFF,0x3D,0x70,0xC9,0x80,0xDF, 0xFF,0xC6,0xD8,0x00,0x0F,0x00,0x7F,0xFE,0x1D,0x8C,0x07,0xFF,0xE0,0x1F,0x80,0x61,
0x63,0x08,0x35,0x71,0xBE,0xC0,0xC0,0x63,0x08,0x37,0x71,0x7F,0x40,0xFF,0xE3,0x08, 0x86,0x3D,0x8C,0x07,0xDF,0xE0,0x1F,0x80,0x6F,0xF6,0x3D,0x8C,0x06,0x1E,0x60,0x36,
0x26,0xD8,0x08,0x00,0xC0,0x62,0x08,0x24,0x88,0x08,0x00, 0xC0,0x6F,0xF6,0x2C,0x0C,0x07,0xDE,0x60,0x76,0xE0,0x6C,0x36,0x2D,0xFF,0xC7,0xDB,
0x40,0xE6,0x70,0x6C,0x36,0x0D,0xFF,0xC6,0xDB,0xC1,0xC6,0x38,0x6F,0xF6,0x0C,0x0C,
0x06,0xD9,0xC3,0xBF,0xDC,0x67,0xE6,0x0C,0x0C,0x06,0xF1,0x83,0x3F,0xCC,0x60,0x06,
0x0C,0x0C,0x04,0xF3,0xC0,0x06,0x00,0x7F,0xFE,0x0C,0x0C,0x0C,0xFE,0x70,0x06,0x00,
0x7F,0xFE,0x0C,0x0C,0x0C,0xEC,0x30,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_LblVer = { gImage_SysSet_LblVer_51x13, 51, 13, 51, 0, 0 }; const SysSetGlyph g_SysSet_LblVer = { gImage_SysSet_LblVer_71x18, 71, 18, 71, 0, 0 };
const unsigned char gImage_SysSet_LblUsb_52x13[91] = { /* 52x13 1-bit MSB */ const unsigned char gImage_SysSet_LblUsb_70x18[162] = { /* 70x18 1-bit MSB */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x90,0x02,0x80,0x61,0x9F, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x08,0x80,
0x3F,0x0B,0xFC,0x02,0x40,0x61,0xB3,0x3F,0x9E,0x90,0xFF,0xE0,0x61,0xA0,0x31,0x9D, 0x01,0xA0,0xC0,0x61,0xF0,0xFF,0x03,0x7F,0xF0,0x01,0xB8,0xE0,0xE3,0xFC,0xFF,0x83,
0xFC,0xFF,0xE0,0x61,0xB0,0x31,0x8D,0x0C,0x03,0x00,0x61,0xBC,0x3F,0x1D,0xFC,0xFF, 0x7F,0xF0,0x01,0x98,0xE0,0xE7,0x1C,0xE3,0xCF,0x88,0x83,0xFF,0xFC,0xE0,0xE6,0x00,
0x00,0x61,0x8F,0x3F,0x9F,0xFC,0x7B,0x00,0x61,0x83,0xB1,0x98,0x60,0x33,0x00,0x61, 0xE1,0xCF,0xBF,0xE3,0xFF,0xFC,0xE0,0xE6,0x00,0xE1,0xC3,0x3F,0xE0,0x01,0x80,0xE0,
0x21,0xB1,0x8B,0xFC,0x31,0x20,0x73,0x33,0x33,0x88,0x70,0x3D,0xA0,0x3E,0x3F,0x3F, 0xE7,0x00,0xE3,0x87,0x3F,0xE0,0x01,0x80,0xE0,0xE3,0xE0,0xFF,0x07,0xBF,0xE3,0xFD,
0x09,0xD8,0xF8,0xE0,0x00,0x00,0x00,0x0B,0x0C,0x00,0xC0, 0x80,0xE0,0xE1,0xF8,0xFF,0x8F,0xF0,0x61,0xFD,0x80,0xE0,0xE0,0x3C,0xE1,0xCF,0x3F,
0xE0,0x61,0x80,0xE0,0xE0,0x0E,0xE0,0xCB,0x06,0x00,0x61,0x80,0xE0,0xE0,0x0E,0xE0,
0xEB,0x7F,0xF0,0x60,0xCC,0x70,0xC6,0x0C,0xE1,0xC3,0x7F,0xE0,0x7E,0xCC,0x7F,0xC7,
0xFC,0xFF,0xC3,0x0F,0x83,0xFE,0xEC,0x3F,0x83,0xF8,0xFF,0x03,0x79,0xE3,0xF0,0x78,
0x00,0x00,0x00,0x00,0x03,0x70,0x70,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_LblUsb = { gImage_SysSet_LblUsb_52x13, 52, 13, 52, 0, 0 }; const SysSetGlyph g_SysSet_LblUsb = { gImage_SysSet_LblUsb_70x18, 70, 18, 70, 0, 0 };
const unsigned char gImage_SysSet_LblAuto_51x13[91] = { /* 51x13 1-bit MSB */ const unsigned char gImage_SysSet_LblAuto_69x18[162] = { /* 69x18 1-bit MSB */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x08,0x08,0x60,0xC0,0x00,0x7F,0xC7, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x10,0x03,0x03,0x01,
0xC8,0x0C,0x40,0xCF,0x00,0x7F,0xC0,0x3F,0x1F,0xF1,0xE9,0x00,0x40,0x40,0x3F,0x1F, 0x80,0x00,0x06,0x00,0x3F,0x10,0x01,0x86,0x01,0x8F,0xC0,0x7F,0xFC,0x3F,0x10,0x01,
0xF1,0xE9,0x00,0x7F,0xC7,0xD9,0x01,0x00,0xC9,0x00,0x7F,0xC3,0x1B,0x03,0x00,0xE9, 0x8E,0x01,0x8F,0xC0,0x7F,0xFC,0x00,0x7F,0x0F,0xFF,0xC7,0xEC,0xC0,0x60,0x1C,0x00,
0x00,0x40,0x43,0x9B,0x3F,0xF9,0xF9,0x00,0x7F,0xC2,0xDB,0x03,0x81,0xC9,0x00,0x60, 0x7F,0x0F,0xFF,0xC7,0xEC,0xC0,0x60,0x1C,0x7F,0x31,0x00,0x30,0x01,0x8C,0xC0,0x7F,
0x46,0x53,0x03,0x80,0xD9,0x40,0x40,0x47,0xF3,0x0E,0xE0,0xD9,0x40,0x7F,0xC4,0x3F, 0xFC,0x7F,0xB1,0x00,0x30,0x01,0x8C,0xC0,0x60,0x1C,0x18,0x31,0x00,0x30,0x03,0xEC,
0x38,0x78,0xF1,0xC0,0x40,0x40,0x26,0x30,0x18,0xF0,0xC0, 0xC0,0x60,0x1C,0x18,0x31,0x1F,0xFF,0xE3,0xFC,0xC0,0x7F,0xFC,0x1A,0x31,0x0F,0xFF,
0xC7,0xAC,0xC0,0x7F,0xFC,0x33,0x33,0x00,0x78,0x07,0x8C,0xC8,0x60,0x1C,0x33,0x33,
0x00,0xFC,0x05,0x8C,0xD8,0x60,0x1C,0x7F,0xE3,0x01,0xCE,0x01,0x98,0xD8,0x7F,0xFC,
0x7F,0xE3,0x07,0x87,0x01,0x98,0xD8,0x7F,0xFC,0x00,0xFF,0x1F,0x03,0xE1,0xB0,0xF8,
0x60,0x1C,0x00,0xCE,0x1C,0x00,0xE1,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_LblAuto = { gImage_SysSet_LblAuto_51x13, 51, 13, 51, 0, 0 }; const SysSetGlyph g_SysSet_LblAuto = { gImage_SysSet_LblAuto_69x18, 69, 18, 69, 0, 0 };
const unsigned char gImage_SysSet_LblRestore_78x13[130] = { /* 78x13 1-bit MSB */ const unsigned char gImage_SysSet_LblRestore_108x18[252] = { /* 108x18 1-bit MSB */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0xC0,0x00,0x80,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xC0,
0x02,0x3C,0x1F,0xF0,0x37,0xF1,0xFF,0x88,0x88,0x7F,0xE3,0x3E,0x36,0xD8,0x7F,0xF3, 0x03,0x00,0x00,0x0C,0x00,0x00,0x00,0x30,0xFE,0x0F,0xFF,0xC0,0x18,0xC0,0x07,0xFF,
0x80,0x08,0x88,0x60,0x01,0x66,0x3F,0xF8,0x7A,0xC3,0xFF,0x08,0x88,0x60,0x00,0x67, 0xE1,0x0C,0x20,0x7F,0xFE,0x38,0xFE,0x0F,0xFF,0xC0,0x1B,0xFF,0x87,0xFF,0xC3,0x0C,
0x03,0x80,0x76,0xD1,0xFF,0x0F,0xF8,0x60,0x06,0x40,0x3F,0xF8,0x77,0xF1,0x81,0x0F, 0x30,0x7F,0xFE,0x1C,0xC6,0x0C,0xCC,0xC0,0x7C,0xC0,0x0F,0xFF,0x83,0x0C,0x30,0x60,
0xF8,0x60,0x02,0x7E,0x1F,0xF0,0x77,0xE1,0xFF,0x00,0x80,0x60,0x02,0x66,0x1F,0xF0, 0x00,0x08,0xC6,0x0F,0xFF,0xC0,0x7E,0xC8,0x1F,0xFF,0x83,0x0C,0x30,0x60,0x00,0x01,
0x3D,0xC0,0xC0,0x18,0x8C,0x60,0x02,0x26,0x1F,0xF0,0x3D,0xC1,0xFF,0x18,0x8C,0x40, 0x87,0x80,0x30,0x00,0x78,0xD8,0x16,0x01,0x83,0x0C,0x30,0x60,0x00,0x73,0x07,0x9F,
0x03,0xBC,0x1F,0xF0,0x39,0x63,0x7E,0x18,0x8C,0xC0,0x03,0x9C,0x1F,0xF0,0x37,0x30, 0xFF,0xE0,0x79,0xD9,0x87,0xFF,0x83,0xFF,0xF0,0x60,0x00,0x78,0x00,0x00,0x30,0x00,
0xFF,0x1F,0xFC,0xC0,0x03,0xF7,0x18,0x30,0x34,0x13,0xC3,0x80,0x0C,0x80,0x00,0xC1, 0x59,0xFB,0x06,0x01,0x81,0xFF,0xE0,0x60,0x00,0x19,0xFF,0x07,0xFF,0x80,0x59,0xFB,
0x3F,0xF8, 0x07,0xFF,0x80,0x0C,0x00,0x60,0x00,0x19,0xFF,0x06,0x01,0x80,0x19,0xBE,0x01,0x80,
0x03,0x0C,0x30,0x60,0x00,0x19,0x86,0x07,0xFF,0x80,0x1B,0x1C,0x03,0xFF,0x83,0x0C,
0x30,0x60,0x00,0x18,0xCE,0x06,0x01,0x80,0x1B,0x3C,0x07,0xFF,0x83,0x0C,0x30,0xE0,
0x00,0x1E,0x7C,0x07,0xFF,0x80,0x1E,0x36,0x1D,0xC7,0x03,0x0C,0x30,0xC0,0x00,0x1E,
0x38,0x06,0x01,0x80,0x1E,0x67,0x08,0x7E,0x03,0x0C,0x30,0xC0,0x00,0x1C,0xFC,0x07,
0xFF,0x80,0x19,0xC3,0x83,0xFF,0xC3,0xFF,0xF1,0xC0,0x00,0x3B,0xCF,0x9F,0xFF,0xE0,
0x19,0x81,0x9F,0x83,0xE0,0x00,0x31,0x80,0x00,0x03,0x03,0x9F,0xFF,0xE0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
}; };
const SysSetGlyph g_SysSet_LblRestore = { gImage_SysSet_LblRestore_78x13, 78, 13, 78, 0, 0 }; const SysSetGlyph g_SysSet_LblRestore = { gImage_SysSet_LblRestore_108x18, 108, 18, 108, 0, 0 };
const unsigned char gImage_SysSet_UsbUpdate_52x13[91] = { /* 52x13 1-bit MSB */ const unsigned char gImage_SysSet_UsbUpdate_71x18[162] = { /* 71x18 1-bit MSB */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFC,0x20,0x20,0x61,0x9F, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xF0,
0x3F,0x1F,0xFC,0xFF,0xE0,0x61,0xB3,0x3F,0x8F,0xF8,0x5B,0x00,0x61,0xA0,0x31,0x8F, 0x60,0x08,0xC0,0x61,0xF0,0xFF,0x0F,0xFF,0xF1,0xFD,0xFC,0xE0,0xE3,0xFC,0xFF,0x80,
0xF8,0x5B,0x00,0x61,0xB0,0x31,0x8D,0xC8,0xFF,0xE0,0x61,0xBC,0x3F,0x0F,0xF8,0x33, 0x18,0x03,0xFD,0xF0,0xE0,0xE7,0x1C,0xE3,0xC3,0xFF,0xC0,0x99,0x80,0xE0,0xE6,0x00,
0xE0,0x61,0x8F,0x3F,0x8C,0xC8,0xFF,0x40,0x61,0x83,0xB1,0x8F,0xF8,0xFB,0x40,0x61, 0xE1,0xC3,0xFF,0xE0,0xD9,0x80,0xE0,0xE6,0x00,0xE1,0xC2,0x18,0x63,0xFD,0x80,0xE0,
0x21,0xB1,0x85,0x80,0xFA,0x40,0x73,0x33,0x33,0x87,0x80,0xBE,0x40,0x3E,0x3F,0x3F, 0xE7,0x00,0xE3,0x83,0xFF,0xE3,0xFF,0xFC,0xE0,0xE3,0xE0,0xFF,0x03,0xFF,0xE0,0x21,
0x0F,0xFC,0xF6,0x40,0x00,0x00,0x00,0x18,0x3C,0x64,0x40, 0xFC,0xE0,0xE1,0xF8,0xFF,0x82,0x18,0x60,0x71,0x90,0xE0,0xE0,0x3C,0xE1,0xC3,0xFF,
0xE3,0xFD,0x90,0xE0,0xE0,0x0E,0xE0,0xC3,0xFF,0xC0,0x61,0x90,0xE0,0xE0,0x0E,0xE0,
0xE3,0x98,0x01,0xB9,0x90,0x70,0xC6,0x0C,0xE1,0xC1,0xF0,0x01,0x2F,0x90,0x7F,0xC7,
0xFC,0xFF,0xC0,0xF8,0x03,0x27,0x10,0x3F,0x83,0xF8,0xFF,0x07,0xFF,0xF3,0xE3,0x10,
0x00,0x00,0x00,0x00,0x0F,0x03,0xF0,0xE6,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_UsbUpdate = { gImage_SysSet_UsbUpdate_52x13, 52, 13, 52, 0, 0 }; const SysSetGlyph g_SysSet_UsbUpdate = { gImage_SysSet_UsbUpdate_71x18, 71, 18, 71, 0, 0 };
const unsigned char gImage_SysSet_UsbMidi_59x12[96] = { /* 59x12 1-bit MSB */ const unsigned char gImage_SysSet_UsbMidi_80x16[160] = { /* 80x16 1-bit MSB */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x9F,0x3F,0x00,0xC0,0xCD,0xF8,0x60, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x61,0xF0,0xFF,0x00,0x38,
0x61,0xB3,0x3F,0x80,0xC1,0xCD,0xFC,0x60,0x61,0xA0,0x31,0x80,0xE1,0xCD,0x86,0x60, 0x03,0x31,0xFE,0x06,0xE0,0xE3,0xFC,0xFF,0x80,0x38,0x07,0x39,0xFF,0x07,0xE0,0xE7,
0x61,0xB0,0x31,0x80,0xF3,0xCD,0x86,0x60,0x61,0xBC,0x3F,0x00,0xF2,0xCD,0x86,0x60, 0x1C,0xE3,0xC0,0x3C,0x0F,0x39,0xC3,0x87,0xE0,0xE6,0x00,0xE1,0xC0,0x3C,0x0F,0x39,
0x61,0x8F,0x3F,0x80,0xDE,0xCD,0x82,0x60,0x61,0x83,0xB1,0x80,0xCC,0xCD,0x86,0x60, 0xC1,0xC7,0xE0,0xE6,0x00,0xE1,0xC0,0x3E,0x1F,0x39,0xC0,0xC7,0xE0,0xE7,0x00,0xE3,
0x61,0x21,0xB1,0x80,0xC8,0xCD,0x86,0x60,0x73,0x33,0x33,0x80,0xC0,0xCD,0xBC,0x60, 0x80,0x37,0x1B,0x39,0xC0,0xE7,0xE0,0xE3,0xE0,0xFF,0x00,0x33,0x33,0x39,0xC0,0xE7,
0x3E,0x3F,0x3F,0x00,0xC0,0xCD,0xF8,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xE0,0xE1,0xF8,0xFF,0x80,0x33,0xF3,0x39,0xC0,0x67,0xE0,0xE0,0x3C,0xE1,0xC0,0x31,
0xE3,0x39,0xC0,0xE7,0xE0,0xE0,0x0E,0xE0,0xC0,0x30,0xE3,0x39,0xC0,0xE7,0xE0,0xE0,
0x0E,0xE0,0xE0,0x30,0xC3,0x39,0xC0,0xC7,0x70,0xC6,0x0C,0xE1,0xC0,0x30,0x03,0x39,
0xC3,0xC7,0x7F,0xC7,0xFC,0xFF,0xC0,0x30,0x03,0x39,0xFF,0x87,0x3F,0x83,0xF8,0xFF,
0x00,0x30,0x03,0x39,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
}; };
const SysSetGlyph g_SysSet_UsbMidi = { gImage_SysSet_UsbMidi_59x12, 59, 12, 59, 0, 0 }; const SysSetGlyph g_SysSet_UsbMidi = { gImage_SysSet_UsbMidi_80x16, 80, 16, 80, 0, 0 };
const unsigned char gImage_SysSet_Off_25x13[52] = { /* 25x13 1-bit MSB */ const unsigned char gImage_SysSet_Off_34x18[90] = { /* 34x18 1-bit MSB */
0x00,0x00,0x00,0x00,0x10,0xC1,0x3F,0x00,0x18,0x81,0xBF,0x80,0x3F,0xE0,0x89,0x80, 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x0C,0x30,0x0E,0xFF,0x80,0x0C,
0x3F,0xE3,0x0D,0x80,0x02,0x03,0xFF,0x80,0x06,0x03,0x1D,0x80,0x7F,0xF3,0x3D,0x80, 0x70,0x06,0x01,0x80,0x7F,0xFE,0x10,0x19,0x80,0x7F,0xFE,0x18,0x19,0x80,0x01,0x80,
0x07,0x03,0x6D,0x80,0x07,0x03,0xCD,0x80,0x1D,0xC3,0x9D,0x80,0x70,0xF3,0x3F,0x80, 0x1B,0xFF,0x80,0x01,0x80,0x1B,0xFF,0x80,0x01,0x80,0x18,0x79,0x80,0xFF,0xFF,0x18,
0x60,0x33,0x07,0x00, 0x79,0x80,0x7F,0xFE,0x18,0xD9,0x80,0x03,0xC0,0x19,0x99,0x80,0x07,0xE0,0x1F,0x19,
0x80,0x0E,0x70,0x1E,0x19,0x80,0x3C,0x38,0x18,0xF9,0x80,0xF8,0x1F,0x18,0x7F,0x80,
0xE0,0x07,0x18,0x07,0x80,0x00,0x00,0x00,0x00,0x00,
}; };
const SysSetGlyph g_SysSet_Off = { gImage_SysSet_Off_25x13, 25, 13, 25, 0, 0 }; const SysSetGlyph g_SysSet_Off = { gImage_SysSet_Off_34x18, 34, 18, 34, 0, 0 };
const unsigned char gImage_SysSet_D0_8x13[13] = { /* 8x13 1-bit MSB */ const unsigned char gImage_SysSet_D0_10x25[50] = { /* 10x25 1-bit MSB */
0x00,0x3C,0x76,0x62,0x63,0x43,0x43,0x63,0x63,0x76,0x3C,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x7F,0x00,0x63,0x80,
0xE1,0x80,0xE1,0xC0,0xC1,0xC0,0xC1,0xC0,0xC1,0xC0,0xC1,0xC0,0xC1,0xC0,0xE1,0x80,
0x63,0x80,0x7F,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_D0 = { gImage_SysSet_D0_8x13, 8, 13, 8, 0, 0 }; const SysSetGlyph g_SysSet_D0 = { gImage_SysSet_D0_10x25, 10, 25, 12, 1, 0 };
const unsigned char gImage_SysSet_D1_4x13[13] = { /* 4x13 1-bit MSB */ const unsigned char gImage_SysSet_D1_5x25[25] = { /* 5x25 1-bit MSB */
0x00,0x30,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x38,0xF8,0xF8,0x98,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
}; };
const SysSetGlyph g_SysSet_D1 = { gImage_SysSet_D1_4x13, 4, 13, 6, 0, 0 }; const SysSetGlyph g_SysSet_D1 = { gImage_SysSet_D1_5x25, 5, 25, 8, 1, 0 };
const unsigned char gImage_SysSet_D2_7x13[13] = { /* 7x13 1-bit MSB */ const unsigned char gImage_SysSet_D2_10x25[50] = { /* 10x25 1-bit MSB */
0x00,0x3C,0x6E,0x46,0x06,0x0C,0x0C,0x18,0x30,0x60,0xFE,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x3F,0x80,0x71,0x80,
0x61,0x80,0x01,0x80,0x01,0x80,0x03,0x80,0x07,0x00,0x0E,0x00,0x1C,0x00,0x18,0x00,
0x38,0x00,0x7F,0xC0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_D2 = { gImage_SysSet_D2_7x13, 7, 13, 8, 0, 0 }; const SysSetGlyph g_SysSet_D2 = { gImage_SysSet_D2_10x25, 10, 25, 11, 0, 0 };
const unsigned char gImage_SysSet_D3_7x13[13] = { /* 7x13 1-bit MSB */ const unsigned char gImage_SysSet_D3_9x25[50] = { /* 9x25 1-bit MSB */
0x00,0xFC,0xFC,0x18,0x30,0x78,0x0C,0x04,0x04,0xCC,0x78,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,0x07,0x00,
0x0E,0x00,0x1C,0x00,0x38,0x00,0x3E,0x00,0x1F,0x00,0x03,0x80,0x01,0x80,0x01,0x80,
0xC3,0x80,0xFF,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_D3 = { gImage_SysSet_D3_7x13, 7, 13, 8, 1, 0 }; const SysSetGlyph g_SysSet_D3 = { gImage_SysSet_D3_9x25, 9, 25, 11, 1, 0 };
const unsigned char gImage_SysSet_D4_8x13[13] = { /* 8x13 1-bit MSB */ const unsigned char gImage_SysSet_D4_11x25[50] = { /* 11x25 1-bit MSB */
0x00,0x0C,0x1C,0x1C,0x34,0x24,0x64,0xFE,0xFF,0x04,0x04,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x07,0x80,0x0F,0x80,
0x0F,0x80,0x1D,0x80,0x19,0x80,0x39,0x80,0x31,0x80,0x61,0x80,0x7F,0xC0,0xFF,0xE0,
0x03,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_D4 = { gImage_SysSet_D4_8x13, 8, 13, 8, 0, 0 }; const SysSetGlyph g_SysSet_D4 = { gImage_SysSet_D4_11x25, 11, 25, 11, 0, 0 };
const unsigned char gImage_SysSet_D5_7x13[13] = { /* 7x13 1-bit MSB */ const unsigned char gImage_SysSet_D5_9x25[50] = { /* 9x25 1-bit MSB */
0x00,0xFC,0xF8,0xC0,0xC0,0xF8,0xCC,0x04,0x04,0xCC,0x78,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x7F,0x00,0x60,0x00,
0x60,0x00,0xE0,0x00,0xFC,0x00,0xFF,0x00,0xF7,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0xC3,0x80,0xFF,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_D5 = { gImage_SysSet_D5_7x13, 7, 13, 8, 1, 0 }; const SysSetGlyph g_SysSet_D5 = { gImage_SysSet_D5_9x25, 9, 25, 11, 1, 0 };
const unsigned char gImage_SysSet_D6_8x13[13] = { /* 8x13 1-bit MSB */ const unsigned char gImage_SysSet_D6_10x25[50] = { /* 10x25 1-bit MSB */
0x00,0x18,0x18,0x30,0x30,0x7E,0x66,0x43,0x43,0x66,0x3C,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x1C,0x00,0x18,0x00,
0x38,0x00,0x30,0x00,0x7E,0x00,0x7F,0x00,0xE3,0x80,0xC1,0x80,0xC1,0x80,0xC1,0x80,
0xE1,0x80,0x7F,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_D6 = { gImage_SysSet_D6_8x13, 8, 13, 8, 0, 0 }; const SysSetGlyph g_SysSet_D6 = { gImage_SysSet_D6_10x25, 10, 25, 11, 1, 0 };
const unsigned char gImage_SysSet_D7_7x13[13] = { /* 7x13 1-bit MSB */ const unsigned char gImage_SysSet_D7_9x25[50] = { /* 9x25 1-bit MSB */
0x00,0xFE,0x7E,0x0C,0x0C,0x18,0x18,0x10,0x30,0x30,0x60,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0xFF,0x80,0x03,0x80,
0x03,0x00,0x03,0x00,0x07,0x00,0x06,0x00,0x0E,0x00,0x0C,0x00,0x1C,0x00,0x18,0x00,
0x18,0x00,0x38,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_D7 = { gImage_SysSet_D7_7x13, 7, 13, 7, 0, 0 }; const SysSetGlyph g_SysSet_D7 = { gImage_SysSet_D7_9x25, 9, 25, 10, 0, 0 };
const unsigned char gImage_SysSet_D8_8x13[13] = { /* 8x13 1-bit MSB */ const unsigned char gImage_SysSet_D8_10x25[50] = { /* 10x25 1-bit MSB */
0x00,0x3C,0x66,0x62,0x66,0x3C,0x7E,0x63,0x43,0x67,0x3E,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x7F,0x00,0x63,0x80,
0xE1,0x80,0x61,0x80,0x73,0x80,0x3F,0x00,0x7F,0x00,0xE1,0x80,0xC1,0xC0,0xC1,0xC0,
0xE1,0xC0,0x7F,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_D8 = { gImage_SysSet_D8_8x13, 8, 13, 8, 0, 0 }; const SysSetGlyph g_SysSet_D8 = { gImage_SysSet_D8_10x25, 10, 25, 12, 1, 0 };
const unsigned char gImage_SysSet_D9_8x13[13] = { /* 8x13 1-bit MSB */ const unsigned char gImage_SysSet_D9_11x25[50] = { /* 11x25 1-bit MSB */
0x00,0x3C,0x66,0x42,0xC2,0x66,0x7E,0x1C,0x0C,0x18,0x18,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x3F,0x80,0x71,0xC0,
0x60,0xC0,0x60,0xC0,0x60,0xC0,0x71,0xC0,0x3F,0xC0,0x1F,0x80,0x03,0x80,0x03,0x00,
0x07,0x00,0x0E,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_D9 = { gImage_SysSet_D9_8x13, 8, 13, 8, 0, 0 }; const SysSetGlyph g_SysSet_D9 = { gImage_SysSet_D9_11x25, 11, 25, 11, 0, 0 };
const unsigned char gImage_SysSet_Dot_2x13[13] = { /* 2x13 1-bit MSB */ const unsigned char gImage_SysSet_Dot_3x25[25] = { /* 3x25 1-bit MSB */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x00,0x00,
};
const SysSetGlyph g_SysSet_Dot = { gImage_SysSet_Dot_2x13, 2, 13, 3, 1, 0 };
const unsigned char gImage_SysSet_Back_29x24[96] = { /* 29x24 1-bit MSB */
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,0x00,
0x00,0x78,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xFF,0xFE,0x00,0x01,0xFF,0xFE,0x00,
0x01,0xFF,0xFE,0x00,0x00,0xF0,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x3C,0x00,0x00,
0x00,0x1C,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,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
}; };
const SysSetGlyph g_SysSet_Back = { gImage_SysSet_Back_29x24, 29, 24, 29, 0, 0 }; const SysSetGlyph g_SysSet_Dot = { gImage_SysSet_Dot_3x25, 3, 25, 5, 1, 0 };
const unsigned char gImage_SysSet_Chevron_10x17[34] = { /* 10x17 1-bit MSB */ const unsigned char gImage_SysSet_Back_16x10[20] = { /* 16x10 1-bit MSB */
0x1E,0x00,0x3C,0x00,0x38,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x78,0x00,0x3C,0x00,
0x1E,0x00,0x0E,0x00,
};
const SysSetGlyph g_SysSet_Back = { gImage_SysSet_Back_16x10, 16, 10, 16, 0, 0 };
const unsigned char gImage_SysSet_Chevron_10x16[32] = { /* 10x16 1-bit MSB */
0xC0,0x00,0x60,0x00,0x78,0x00,0x3C,0x00,0x1E,0x00,0x07,0x00,0x03,0x80,0x01,0xC0, 0xC0,0x00,0x60,0x00,0x78,0x00,0x3C,0x00,0x1E,0x00,0x07,0x00,0x03,0x80,0x01,0xC0,
0x01,0xC0,0x03,0xC0,0x07,0x80,0x0E,0x00,0x3C,0x00,0x78,0x00,0x70,0x00,0xE0,0x00, 0x01,0xC0,0x03,0xC0,0x07,0x80,0x0E,0x00,0x3C,0x00,0x78,0x00,0x70,0x00,0xE0,0x00,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_Chevron = { gImage_SysSet_Chevron_10x17, 10, 17, 10, 0, 0 }; const SysSetGlyph g_SysSet_Chevron = { gImage_SysSet_Chevron_10x16, 10, 16, 10, 0, 0 };
const unsigned char gImage_SysSet_TriL_22x21[924] = { /* 22x21 RGB565 BE */ const unsigned char gImage_SysSet_TriL_19x18[684] = { /* 19x18 RGB565 BE */
0x00,0x00,0x00,0x00,0x08,0x62,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83, 0x00,0x00,0x00,0x20,0x08,0x62,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,
0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83, 0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,
0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x62,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x83, 0x08,0x62,0x00,0x20,0x00,0x00,0x00,0x20,0x08,0x83,0x10,0x83,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0x83,0x08,0xA4,0x00,0x21,0x08,0x62,0x08,0x84,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x08,0xA4,0x00,0x00,0x08,0x62,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xC4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x08,0x83,0x08,0x63,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x00,0x01,0x08,0x63,0x10,0xA4,
0x10,0xA4,0x08,0x83,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x08,0x83,0x00,0x22,0x39,0xE8,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0xA5,0x34,0x4A,0x8B,0x08,0x63,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,
0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x08,0x63,0x08,0x63,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x29,0x67,0xA5,0x34,0xEF,0x7D,0xFF,0xFF,0xA5,0x35,0x00,0x42,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xC4,0x08,0x63,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x00,0x01,0x29,0x67,0x84,0x31,0xE7,0x5D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA5,0x55,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x6B,0x6E,0xE7,0x1C,0x7B,0xF0,0x10,0xA4,0x10,0xA4, 0x00,0x42,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x08,0x83,
0x10,0xA4,0x00,0x01,0x21,0x25,0x4A,0x69,0xE7,0x5D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xF7,0xDE,0xFF,0xFF,0xA5,0x35,0x00,0x42,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x08,0x83,0x10,0xA4,0x10,0xA4,0x08,0x83,0x31,0xA7,0xBE,0x18,0xFF,0xFF,0xFF,0xFF,
0xF7,0xDE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA5,0x35,0x00,0x42,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xC4,0x00,0x01,0x94,0xB3,
0xFF,0xFF,0xF7,0xDE,0xF7,0xDE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xA5,0x35,0x00,0x42,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,
0x10,0xA4,0x08,0x83,0x19,0x25,0x6B,0x8E,0xDE,0xFC,0xFF,0xFF,0xFF,0xFF,0xF7,0xDE,
0xF7,0xDE,0xFF,0xFF,0xFF,0xFF,0xA5,0x35,0x00,0x42,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x63,0x08,0x63,0x21,0x46,
0x94,0x92,0xEF,0x9D,0xFF,0xFF,0xFF,0xFF,0xF7,0xDE,0xFF,0xFF,0xA5,0x35,0x00,0x42,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x5B,0x0D, 0x10,0xA4,0x10,0xA4,0x08,0x83,0x08,0x63,0x21,0x46,0x94,0xB2,0xE7,0x3C,0xFF,0xFF,
0xE7,0x1C,0xFF,0xFF,0xFF,0xFF,0xC6,0x39,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0xFF,0xFF,0xAD,0x96,0x00,0x22,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,
0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x4A,0x8B,0xC6,0x39,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xC6,0x39,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x00,
0xC6,0x39,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x39,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x00,0xA5,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x00,0x31,0xA7,0xA5,0x34,0xDE,0xFB,0x73,0xCF,0x08,0x63,0x10,0xA4,0x10,0xA4,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x39,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x08,0x62,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xC4,0x08,0x83,0x00,0x00,0x31,0xA7,0x00,0x00,
0x10,0xA4,0xC6,0x39,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x39,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0xA5,0x55,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xC6,0x39,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x4A,0x8B,0xC6,0x39,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x39,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x6B,0x6E,0xE7,0x1C,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x39,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x6B,0x6E,0xE7,0x1C,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x39,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x00,0x8C,0x52,0xF7,0x9E,
0xFF,0xFF,0xC6,0x39,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x00,0x7B,0xF0,0x00,0x00,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,
0x10,0xC5,0x08,0x63,0x10,0xC4,0x10,0xA3,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0xA4,
0x00,0x21,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x08,0x62,0x00,0x00,0x08,0x82,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0x83,0x08,0x83,0x00,0x00,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x08,0xA4,0x00,0x00,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x62,
0x00,0x00,0x08,0x62,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x00,0x00,
}; };
const SysSetGlyph g_SysSet_TriL = { gImage_SysSet_TriL_22x21, 22, 21, 22, 0, 1 }; const SysSetGlyph g_SysSet_TriL = { gImage_SysSet_TriL_19x18, 19, 18, 19, 0, 1 };
const unsigned char gImage_SysSet_TriR_21x21[882] = { /* 21x21 RGB565 BE */ const unsigned char gImage_SysSet_TriR_18x18[648] = { /* 18x18 RGB565 BE */
0x00,0x00,0x00,0x00,0x08,0x63,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83, 0x00,0x00,0x00,0x21,0x08,0x63,0x08,0x82,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,
0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83, 0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x83,0x08,0x82,0x08,0x83,
0x08,0x83,0x08,0x83,0x08,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xA4,0x10,0xA4, 0x00,0x21,0x00,0x00,0x00,0x21,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x62,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xC4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x08,0x83,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x22,0x00,0x22,0x08,0x83,0x10,0xA4,0x08,0x83,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x08,0x62,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x63,0x73,0xD0,0x8C,0x72,0x19,0x25,
0x00,0x42,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x22,0xDF,0x1B,
0xFF,0xDF,0xE7,0x3C,0x5B,0x0C,0x00,0x20,0x08,0x83,0x08,0x63,0x10,0xC4,0x10,0xA4,
0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x00,0x22,0xDE,0xFB,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,0xD6,0xDA,0x39,0xE8,0x10,0xA4,
0x00,0x21,0x08,0x83,0x10,0xA4,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x00,0x22,0xDE,0xFB,0xFF,0xFF,0xF7,0xDE,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xBE,0x18,0x39,0xE7,0x10,0xC4,0x00,0x21,0x10,0xA4,0x08,0x83,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x22,0xDE,0xFB,0xFF,0xFF,0xF7,0xDE,
0xFF,0xFF,0xFF,0xFF,0xF7,0xDE,0xFF,0xFF,0xFF,0xFF,0x9C,0xD3,0x18,0xE4,0x08,0x84,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x22,0xDE,0xFB,
0xFF,0xFF,0xF7,0xDE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xBE,0xFF,0xFF,0xFF,0xFF,
0x4A,0x6A,0x00,0x42,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x00,0x22,0xDE,0xFB,0xFF,0xFF,0xF7,0xDE,0xF7,0xDE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xB5,0xB6,0x31,0xA6,0x18,0xE5,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x00,0x22,0xDE,0xFB,0xFF,0xFF,0xF7,0xDE,0xFF,0xFF,0xFF,0xFF,
0xD6,0xDB,0x6B,0x6E,0x10,0xC4,0x00,0x01,0x08,0x83,0x08,0x83,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x22,0xE7,0x3C,0xFF,0xFF,0xFF,0xFF,
0xD6,0xDB,0x6B,0xAF,0x18,0xE5,0x08,0x63,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x42,0xB5,0xF7,
0xDE,0xFB,0x94,0x92,0x21,0x46,0x00,0x42,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x08,0x83,0x21,0x26,0x29,0x87,0x00,0x01,0x08,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0x83,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,0x08,0x83,0x10,0xC4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0x83,
0x08,0xA3,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x00,0x20,0x08,0xA3,0x10,0x83,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4, 0x10,0xA4,0x10,0x83,0x08,0xA4,0x00,0x20,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0xB5,0xB7,
0xC6,0x39,0x4A,0x8B,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x39,
0x00,0x00,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA5,0x55,0x00,0x00,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x94,0xD4,0x00,0x00,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,0x8C,0x52,0x00,0x00,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x8C,0x52,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x6B,0x6E,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xA5,0x55,0x00,0x00,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x39,0x4A,0x8B,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xC6,0x39,0x4A,0x8B,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0xFF,0xFF,0xFF,0xFF,0xE7,0x1C,0x6B,0x6E,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x4A,0x8B,0x6B,0x6E,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0xA3,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x00,0x00,0x08,0xA3,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,
0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x10,0xA4,0x08,0xA4,
0x00,0x00,
}; };
const SysSetGlyph g_SysSet_TriR = { gImage_SysSet_TriR_21x21, 21, 21, 21, 0, 1 }; const SysSetGlyph g_SysSet_TriR = { gImage_SysSet_TriR_18x18, 18, 18, 18, 0, 1 };

View File

@ -37,23 +37,23 @@ extern const SysSetGlyph g_SysSet_Chevron;
extern const SysSetGlyph g_SysSet_TriL; extern const SysSetGlyph g_SysSet_TriL;
extern const SysSetGlyph g_SysSet_TriR; extern const SysSetGlyph g_SysSet_TriR;
#define SYSSET_BACK_X 8 #define SYSSET_BACK_X 15
#define SYSSET_BACK_Y 7 #define SYSSET_BACK_Y 14
#define SYSSET_CHEV_X 203 #define SYSSET_CHEV_X 211
#define SYSSET_CHEV_Y 261 #define SYSSET_CHEV_Y 275
#define SYSSET_TRIL_X 100 #define SYSSET_TRIL_X 96
#define SYSSET_TRIL_DY 18 #define SYSSET_TRIL_DY 22
#define SYSSET_TRIR_X 191 #define SYSSET_TRIR_X 203
#define SYSSET_TRIR_DY 18 #define SYSSET_TRIR_DY 22
#define SYSSET_TITLE_Y 12 #define SYSSET_TITLE_Y 12
#define SYSSET_LABEL_DX 12 #define SYSSET_LABEL_DX 12
#define SYSSET_VAL_X 122 #define SYSSET_VAL_X 119
#define SYSSET_VAL_W 69 #define SYSSET_VAL_W 80
#define SYSSET_PILL_DX 143 #define SYSSET_PILL_DX 140
#define SYSSET_PILL_DY 18 #define SYSSET_PILL_DY 14
#define SYSSET_PILL_W 54 #define SYSSET_PILL_W 73
#define SYSSET_PILL_H 22 #define SYSSET_PILL_H 33
#define SYSSET_PILL_R 4 #define SYSSET_PILL_R 6
#define SYSSET_CARD_R 7 #define SYSSET_CARD_R 12
#endif #endif

View File

@ -13,9 +13,20 @@ OUT_C = CODE / "device" / "LCD_ILI9341" / "Drv_ILI9341_Lcd_Image_SysSet.c"
OUT_H = CODE / "device" / "LCD_ILI9341" / "Drv_ILI9341_Lcd_Image_SysSet.h" OUT_H = CODE / "device" / "LCD_ILI9341" / "Drv_ILI9341_Lcd_Image_SysSet.h"
PREVIEW = CODE / "tools" / "out" / "sysset_preview.png" PREVIEW = CODE / "tools" / "out" / "sysset_preview.png"
TITLE_PX = 16 # 设置入口字墨高约 19px。USB 行还要放下左右箭头,18px 是同一行里能对齐的最大字号。
LABEL_PX = 13 TITLE_PX = 18
VALUE_PX = 13 LABEL_PX = 18
VALUE_PX = 18
CARD_X = 8
CARD_W = 223
CARD_H = 62
CARD_Y0 = 42
CARD_PITCH = 70
CARD_R = 12
LABEL_DX = 12
RIGHT_PAD = 10
CTRL_GAP = 4
def render_phrase(text, px): def render_phrase(text, px):
@ -29,32 +40,30 @@ def render_phrase(text, px):
return scratch.crop(bbox) return scratch.crop(bbox)
CELL_H = 13
BASELINE = 11
def render_glyph(ch, px): def render_glyph(ch, px):
"""Fixed-height cell so '.' shares the digit baseline. Horizontal crop only.""" """Fixed-height cell so '.' shares the digit baseline. Horizontal crop only."""
font = ImageFont.truetype(str(FONT), px) font = ImageFont.truetype(str(FONT), px)
origin = 8 ascent, descent = font.getmetrics()
scratch = Image.new("RGBA", (72, CELL_H), (0, 0, 0, 0)) cell_h = ascent + max(descent, 1)
baseline = ascent
origin = 4
scratch = Image.new("RGBA", (96, cell_h), (0, 0, 0, 0))
dr = ImageDraw.Draw(scratch) dr = ImageDraw.Draw(scratch)
try: try:
dr.text((origin, BASELINE), ch, font=font, fill=(255, 255, 255, 255), anchor="ls") dr.text((origin, baseline), ch, font=font, fill=(255, 255, 255, 255), anchor="ls")
except TypeError: except TypeError:
ascent, _ = font.getmetrics() dr.text((origin, 0), ch, font=font, fill=(255, 255, 255, 255))
dr.text((origin, BASELINE - ascent), ch, font=font, fill=(255, 255, 255, 255))
alpha = np.array(scratch)[:, :, 3] alpha = np.array(scratch)[:, :, 3]
cols = np.where(alpha.max(axis=0) >= 40)[0] cols = np.where(alpha.max(axis=0) >= 40)[0]
adv = max(1, int(round(font.getlength(ch)))) adv = max(1, int(round(font.getlength(ch))))
if len(cols) == 0: if len(cols) == 0:
im = Image.new("RGBA", (adv, CELL_H), (0, 0, 0, 0)) im = Image.new("RGBA", (adv, cell_h), (0, 0, 0, 0))
return im, 0, adv return im, 0, adv
x0, x1 = int(cols[0]), int(cols[-1]) x0, x1 = int(cols[0]), int(cols[-1])
im = scratch.crop((x0, 0, x1 + 1, CELL_H)) im = scratch.crop((x0, 0, x1 + 1, cell_h))
bear = x0 - origin bear = x0 - origin
if bear < 0: if bear < 0:
pad = Image.new("RGBA", (im.size[0] - bear, CELL_H), (0, 0, 0, 0)) pad = Image.new("RGBA", (im.size[0] - bear, cell_h), (0, 0, 0, 0))
pad.paste(im, (-bear, 0)) pad.paste(im, (-bear, 0))
im = pad im = pad
bear = 0 bear = 0
@ -112,6 +121,11 @@ def is_card(r, g, b):
return 24 <= r <= 48 and 32 <= g <= 56 and 44 <= b <= 72 return 24 <= r <= 48 and 32 <= g <= 56 and 44 <= b <= 72
def scale_to_h(im, h):
w = max(1, int(round(im.size[0] * h / im.size[1])))
return im.resize((w, h), Image.Resampling.LANCZOS)
def to_1bit(im): def to_1bit(im):
"""MSB-first ink. About 1/16 the size of RGB565, which is what internal flash can hold.""" """MSB-first ink. About 1/16 the size of RGB565, which is what internal flash can hold."""
im = im.convert("RGBA") im = im.convert("RGBA")
@ -161,12 +175,43 @@ def main():
print(f"glyph {ch!r:4} {im.size} bear {bear} adv {adv}") print(f"glyph {ch!r:4} {im.size} bear {bear} adv {adv}")
back, back_x, back_y = crop_widget(screen, 8, 6, 36, 32, is_page_bg) back, back_x, back_y = crop_widget(screen, 8, 6, 36, 32, is_page_bg)
chev, chev_x, chev_y = crop_widget(screen, 198, 255, 218, 282, lambda r, g, b: is_card(r, g, b) or is_page_bg(r, g, b)) chev, _, _ = crop_widget(screen, 198, 255, 218, 282, lambda r, g, b: is_card(r, g, b) or is_page_bg(r, g, b))
tri_l, tlx, tly = crop_widget(screen, 100, 132, 121, 152, is_card) tri_l, _, _ = crop_widget(screen, 100, 132, 121, 152, is_card)
tri_r, trx, try_ = crop_widget(screen, 191, 132, 211, 152, is_card) tri_r, _, _ = crop_widget(screen, 191, 132, 211, 152, is_card)
chev = scale_to_h(chev, 16)
tri_l = scale_to_h(tri_l, 18)
tri_r = scale_to_h(tri_r, 18)
midi_w = pics["UsbMidi"].size[0]
upd_w = pics["UsbUpdate"].size[0]
val_w = max(midi_w, upd_w, pics["Off"].size[0])
trir_x = CARD_X + CARD_W - RIGHT_PAD - tri_r.size[0]
val_x = trir_x - CTRL_GAP - val_w
tril_x = val_x - CTRL_GAP - tri_l.size[0]
tri_dy = (CARD_H - tri_l.size[1]) // 2
label_end = CARD_X + LABEL_DX + pics["LblUsb"].size[0]
if label_end + 4 > tril_x:
raise SystemExit(
"USB row overflow: label ends %d, left arrow at %d" % (label_end, tril_x)
)
ver_w = text_w("0.2.35", glyphs)
gh = glyphs["0"][0].size[1]
pill_h = gh + 8
pill_w = ver_w + 18
pill_dy = (CARD_H - pill_h) // 2
pill_dx = CARD_W - RIGHT_PAD - pill_w
if LABEL_DX + pics["LblVer"].size[0] + 8 > pill_dx:
raise SystemExit("version row overflow")
row3 = CARD_Y0 + CARD_PITCH * 3
chev_x = CARD_X + CARD_W - RIGHT_PAD - chev.size[0]
chev_y = row3 + (CARD_H - chev.size[1]) // 2
if LABEL_DX + pics["LblRestore"].size[0] + 8 > (chev_x - CARD_X):
raise SystemExit("restore row overflow")
title_y = max(6, (CARD_Y0 - pics["Title"].size[1]) // 2)
print("back", back.size, back_x, back_y) print("back", back.size, back_x, back_y)
print("chev", chev.size, chev_x, chev_y) print("chev", chev.size, chev_x, chev_y)
print("triL", tri_l.size, tlx, tly, "triR", tri_r.size, trx, try_) print("triL", tri_l.size, tril_x, "triR", tri_r.size, trir_x, "val", val_x, val_w)
print("pill", pill_dx, pill_dy, pill_w, pill_h, "title_y", title_y)
h_lines = [ h_lines = [
"#ifndef __DRV_ILI9341_LCD_IMAGE_SYSSET_H", "#ifndef __DRV_ILI9341_LCD_IMAGE_SYSSET_H",
@ -233,20 +278,20 @@ def main():
f"#define SYSSET_BACK_Y {back_y}", f"#define SYSSET_BACK_Y {back_y}",
f"#define SYSSET_CHEV_X {chev_x}", f"#define SYSSET_CHEV_X {chev_x}",
f"#define SYSSET_CHEV_Y {chev_y}", f"#define SYSSET_CHEV_Y {chev_y}",
f"#define SYSSET_TRIL_X {tlx}", f"#define SYSSET_TRIL_X {tril_x}",
f"#define SYSSET_TRIL_DY {tly - 114}", f"#define SYSSET_TRIL_DY {tri_dy}",
f"#define SYSSET_TRIR_X {trx}", f"#define SYSSET_TRIR_X {trir_x}",
f"#define SYSSET_TRIR_DY {try_ - 114}", f"#define SYSSET_TRIR_DY {tri_dy}",
"#define SYSSET_TITLE_Y 12", f"#define SYSSET_TITLE_Y {title_y}",
"#define SYSSET_LABEL_DX 12", f"#define SYSSET_LABEL_DX {LABEL_DX}",
"#define SYSSET_VAL_X 122", f"#define SYSSET_VAL_X {val_x}",
"#define SYSSET_VAL_W 69", f"#define SYSSET_VAL_W {val_w}",
"#define SYSSET_PILL_DX 143", f"#define SYSSET_PILL_DX {pill_dx}",
"#define SYSSET_PILL_DY 18", f"#define SYSSET_PILL_DY {pill_dy}",
"#define SYSSET_PILL_W 54", f"#define SYSSET_PILL_W {pill_w}",
"#define SYSSET_PILL_H 22", f"#define SYSSET_PILL_H {pill_h}",
"#define SYSSET_PILL_R 4", "#define SYSSET_PILL_R 6",
"#define SYSSET_CARD_R 7", f"#define SYSSET_CARD_R {CARD_R}",
"", "",
"#endif", "#endif",
"", "",
@ -254,8 +299,10 @@ def main():
OUT_H.write_text("\n".join(h_lines), encoding="utf-8", newline="\n") OUT_H.write_text("\n".join(h_lines), encoding="utf-8", newline="\n")
OUT_C.write_text("\n".join(c_lines), encoding="utf-8", newline="\n") OUT_C.write_text("\n".join(c_lines), encoding="utf-8", newline="\n")
print("wrote", OUT_C.stat().st_size, OUT_H.stat().st_size, "payload", payload[0]) print("wrote", OUT_C.stat().st_size, OUT_H.stat().st_size, "payload", payload[0])
preview(screen, pics, glyphs, back, (back_x, back_y), chev, (chev_x, chev_y), preview(pics, glyphs, back, (back_x, back_y), chev, (chev_x, chev_y),
tri_l, (tlx, tly), tri_r, (trx, try_)) tri_l, (tril_x, CARD_Y0 + CARD_PITCH + tri_dy),
tri_r, (trir_x, CARD_Y0 + CARD_PITCH + tri_dy),
val_x, val_w, pill_dx, pill_dy, pill_w, pill_h, title_y)
def fill_round(canvas, x, y, w, h, r, color): def fill_round(canvas, x, y, w, h, r, color):
@ -311,42 +358,42 @@ def draw_text(canvas, x, y, s, glyphs):
x += adv x += adv
def preview(screen, pics, glyphs, back, back_xy, chev, chev_xy, tri_l, tl, tri_r, tr): def preview(pics, glyphs, back, back_xy, chev, chev_xy, tri_l, tl, tri_r, tr,
val_x, val_w, pill_dx, pill_dy, pill_w, pill_h, title_y):
canvas = np.zeros((320, 240, 3), dtype=np.uint8) canvas = np.zeros((320, 240, 3), dtype=np.uint8)
canvas[:, :] = (0, 8, 16) canvas[:, :] = (0, 8, 19)
card = (32, 40, 56) card = (36, 43, 58)
for i in range(4): for i in range(4):
fill_round(canvas, 16, 51 + 63 * i, 207, 58, 7, card) fill_round(canvas, CARD_X, CARD_Y0 + CARD_PITCH * i, CARD_W, CARD_H, CARD_R, card)
paste(canvas, back, back_xy[0], back_xy[1]) paste(canvas, back, back_xy[0], back_xy[1])
title = pics["Title"] title = pics["Title"]
paste(canvas, title, (240 - title.size[0]) // 2, 12) paste(canvas, title, (240 - title.size[0]) // 2, title_y)
labels = ["LblVer", "LblUsb", "LblAuto", "LblRestore"] labels = ["LblVer", "LblUsb", "LblAuto", "LblRestore"]
for i, name in enumerate(labels): for i, name in enumerate(labels):
im = pics[name] im = pics[name]
y = 51 + 63 * i + (58 - im.size[1]) // 2 y = CARD_Y0 + CARD_PITCH * i + (CARD_H - im.size[1]) // 2
paste(canvas, im, 16 + 12, y) paste(canvas, im, CARD_X + LABEL_DX, y)
# buttons on rows 1 and 2 for row_y in (CARD_Y0 + CARD_PITCH, CARD_Y0 + CARD_PITCH * 2):
for row_y in (114, 177): paste(canvas, tri_l, tl[0], row_y + (tl[1] - (CARD_Y0 + CARD_PITCH)))
paste(canvas, tri_l, tl[0], row_y + (tl[1] - 114)) paste(canvas, tri_r, tr[0], row_y + (tr[1] - (CARD_Y0 + CARD_PITCH)))
paste(canvas, tri_r, tr[0], row_y + (tr[1] - 114)) fill_round(canvas, CARD_X + pill_dx, CARD_Y0 + pill_dy, pill_w, pill_h, 6, (0, 8, 19))
# version
fill_round(canvas, 159, 51 + 18, 54, 22, 4, (0, 8, 16))
ver = "0.2.35" ver = "0.2.35"
tw = text_w(ver, glyphs) tw = text_w(ver, glyphs)
gh = glyphs["0"][0].size[1] gh = glyphs["0"][0].size[1]
draw_text(canvas, 159 + (54 - tw) // 2, 51 + 18 + (22 - gh) // 2, ver, glyphs) draw_text(canvas, CARD_X + pill_dx + (pill_w - tw) // 2,
upd = pics["UsbUpdate"] CARD_Y0 + pill_dy + (pill_h - gh) // 2, ver, glyphs)
paste(canvas, upd, 122 + (69 - upd.size[0]) // 2, 114 + (58 - upd.size[1]) // 2) midi = pics["UsbMidi"]
paste(canvas, midi, val_x + (val_w - midi.size[0]) // 2,
CARD_Y0 + CARD_PITCH + (CARD_H - midi.size[1]) // 2)
num = "15" num = "15"
tw = text_w(num, glyphs) tw = text_w(num, glyphs)
draw_text(canvas, 122 + (69 - tw) // 2, 177 + (58 - gh) // 2, num, glyphs) draw_text(canvas, val_x + (val_w - tw) // 2,
CARD_Y0 + CARD_PITCH * 2 + (CARD_H - gh) // 2, num, glyphs)
paste(canvas, chev, chev_xy[0], chev_xy[1]) paste(canvas, chev, chev_xy[0], chev_xy[1])
PREVIEW.parent.mkdir(parents=True, exist_ok=True) PREVIEW.parent.mkdir(parents=True, exist_ok=True)
Image.fromarray(canvas).save(PREVIEW) Image.fromarray(canvas).save(PREVIEW)
ref = np.array(screen.convert("RGB")) print("preview", PREVIEW)
d = np.abs(canvas.astype(int) - ref.astype(int)).sum(axis=2) print("USB MIDI", pics["UsbMidi"].size, "关闭", pics["Off"].size)
print("preview", PREVIEW, "mean", round(float(d.mean()), 2), "pct>40", round(float((d > 40).mean()), 4))
print("USB MIDI w", pics["UsbMidi"].size, "关闭", pics["Off"].size)
if __name__ == "__main__": if __name__ == "__main__":