diff --git a/.gitignore b/.gitignore index b409a9d..a87b059 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ .vscode/ build/ +research + *.pio.h \ No newline at end of file diff --git a/assets/don_l.bmp b/assets/don_l.bmp new file mode 100644 index 0000000..6adf74f Binary files /dev/null and b/assets/don_l.bmp differ diff --git a/assets/don_r.bmp b/assets/don_r.bmp new file mode 100644 index 0000000..b65c825 Binary files /dev/null and b/assets/don_r.bmp differ diff --git a/assets/drum.bmp b/assets/drum.bmp new file mode 100644 index 0000000..859eccb Binary files /dev/null and b/assets/drum.bmp differ diff --git a/assets/drum.xcf b/assets/drum.xcf new file mode 100644 index 0000000..36cfc1d Binary files /dev/null and b/assets/drum.xcf differ diff --git a/assets/idle_screen.xcf b/assets/idle_screen.xcf index f64b236..d73b52b 100644 Binary files a/assets/idle_screen.xcf and b/assets/idle_screen.xcf differ diff --git a/assets/ka_l.bmp b/assets/ka_l.bmp new file mode 100644 index 0000000..bbe0941 Binary files /dev/null and b/assets/ka_l.bmp differ diff --git a/assets/ka_r.bmp b/assets/ka_r.bmp new file mode 100644 index 0000000..523b00c Binary files /dev/null and b/assets/ka_r.bmp differ diff --git a/src/peripherals/Display.cpp b/src/peripherals/Display.cpp index ad73696..02598cd 100644 --- a/src/peripherals/Display.cpp +++ b/src/peripherals/Display.cpp @@ -10,68 +10,160 @@ namespace Doncon::Peripherals { -static const std::array idle_screen = { - 0x42, 0x4d, 0x82, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x80, - 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, +static const std::array drum_bmp = { + 0x42, 0x4d, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x34, + 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, + 0x23, 0x2e, 0x00, 0x00, 0x23, 0x2e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x42, 0x47, 0x52, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf8, + 0x01, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0x87, 0xfe, 0x1f, 0xff, 0xf0, 0x00, 0xff, 0xfe, 0x7f, 0xff, 0xe7, 0xff, + 0xf0, 0x00, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xf0, 0x00, 0xff, 0xe7, 0xff, 0xff, 0xfe, 0x7f, 0xf0, 0x00, 0xff, + 0xcf, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x00, 0xff, 0xbf, 0xfc, 0x03, 0xff, 0xdf, 0xf0, 0x00, 0xff, 0x7f, 0xc1, 0xf8, + 0x3f, 0xef, 0xf0, 0x00, 0xfe, 0xff, 0x1f, 0xff, 0x8f, 0xf7, 0xf0, 0x00, 0xfd, 0xfe, 0x7f, 0xff, 0xe7, 0xfb, 0xf0, + 0x00, 0xfb, 0xf8, 0xff, 0xff, 0xf1, 0xfd, 0xf0, 0x00, 0xf3, 0xf3, 0xff, 0xff, 0xfc, 0xfc, 0xf0, 0x00, 0xf7, 0xe7, + 0xff, 0xff, 0xfe, 0x7e, 0xf0, 0x00, 0xef, 0xcf, 0xff, 0xff, 0xff, 0x3f, 0x70, 0x00, 0xef, 0xdf, 0xff, 0xff, 0xff, + 0xbf, 0x70, 0x00, 0xdf, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xb0, 0x00, 0xdf, 0x3f, 0xff, 0xff, 0xff, 0xcf, 0xb0, 0x00, + 0xbf, 0x7f, 0xff, 0xff, 0xff, 0xef, 0xd0, 0x00, 0xbe, 0x7f, 0xff, 0xff, 0xff, 0xe7, 0xd0, 0x00, 0xbe, 0xff, 0xff, + 0xff, 0xff, 0xf7, 0xd0, 0x00, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xd0, 0x00, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xf7, + 0xe0, 0x00, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xe0, 0x00, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xe0, 0x00, 0x7d, + 0xff, 0xff, 0xff, 0xff, 0xfb, 0xe0, 0x00, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xe0, 0x00, 0x7d, 0xff, 0xff, 0xff, + 0xff, 0xfb, 0xe0, 0x00, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xe0, 0x00, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xe0, + 0x00, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xe0, 0x00, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xe0, 0x00, 0xbe, 0xff, + 0xff, 0xff, 0xff, 0xf7, 0xd0, 0x00, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xd0, 0x00, 0xbe, 0x7f, 0xff, 0xff, 0xff, + 0xe7, 0xd0, 0x00, 0xbf, 0x7f, 0xff, 0xff, 0xff, 0xef, 0xd0, 0x00, 0xdf, 0x3f, 0xff, 0xff, 0xff, 0xcf, 0xb0, 0x00, + 0xdf, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xb0, 0x00, 0xef, 0xdf, 0xff, 0xff, 0xff, 0xbf, 0x70, 0x00, 0xef, 0xcf, 0xff, + 0xff, 0xff, 0x3f, 0x70, 0x00, 0xf7, 0xe7, 0xff, 0xff, 0xfe, 0x7e, 0xf0, 0x00, 0xf3, 0xf3, 0xff, 0xff, 0xfc, 0xfc, + 0xf0, 0x00, 0xfb, 0xf8, 0xff, 0xff, 0xf1, 0xfd, 0xf0, 0x00, 0xfd, 0xfe, 0x7f, 0xff, 0xe7, 0xfb, 0xf0, 0x00, 0xfe, + 0xff, 0x1f, 0xff, 0x8f, 0xf7, 0xf0, 0x00, 0xff, 0x7f, 0xc1, 0xf8, 0x3f, 0xef, 0xf0, 0x00, 0xff, 0xbf, 0xfc, 0x03, + 0xff, 0xdf, 0xf0, 0x00, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x00, 0xff, 0xe7, 0xff, 0xff, 0xfe, 0x7f, 0xf0, + 0x00, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xf0, 0x00, 0xff, 0xfe, 0x7f, 0xff, 0xe7, 0xff, 0xf0, 0x00, 0xff, 0xff, + 0x87, 0xfe, 0x1f, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xf8, 0x01, 0xff, 0xff, 0xf0, 0x00}; + +static const std::array don_l_bmp = { + 0x42, 0x4d, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x34, + 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x23, 0x2e, 0x00, 0x00, 0x23, 0x2e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x42, 0x47, 0x52, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xfe, 0x1f, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, - 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xfe, 0xff, 0xf0, 0x0f, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xfd, 0xff, 0x07, 0xe0, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfc, 0x7f, - 0xfe, 0x3f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf9, 0xff, 0xff, 0x9f, 0xef, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xe3, 0xff, 0xff, 0xc7, 0xf7, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, 0xff, 0xf3, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xdf, 0x9f, 0xff, 0xff, 0xf9, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0x3f, 0xff, 0xff, 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x7f, - 0xff, 0xff, 0xfe, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x7f, 0xff, 0xff, 0xfe, - 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x7f, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xfe, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfb, - 0xff, 0xff, 0xff, 0xff, 0xdf, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfb, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xbf, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xef, 0xbf, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xef, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xfd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xef, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, - 0xf7, 0xff, 0xff, 0xff, 0xff, 0xef, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf7, 0xff, 0xff, - 0xff, 0xff, 0xef, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xef, - 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xbf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xfe, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xfe, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xff, - 0xff, 0xff, 0xff, 0x9f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfd, 0xff, 0xff, 0xff, 0xff, - 0xbf, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x7f, 0xff, 0xff, 0xfe, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x7f, 0xff, 0xff, 0xfe, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xbf, 0x3f, 0xff, 0xff, 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, - 0x9f, 0xff, 0xff, 0xf9, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, 0xff, - 0xf3, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xe3, 0xff, 0xff, 0xc7, 0xf7, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf9, 0xff, 0xff, 0x9f, 0xef, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfc, 0x7f, 0xfe, 0x3f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xfd, 0xff, 0x07, 0xe0, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xfe, 0xff, 0xf0, 0x0f, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, - 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xf9, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xfe, 0x3f, + 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xf0, + 0x00, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xf8, + 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xe0, 0x00, 0x3f, 0xff, + 0xff, 0xf0, 0x00, 0xff, 0xe0, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xc0, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, + 0xff, 0x80, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0x80, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0x00, 0x00, + 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, + 0xf0, 0x00, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xfe, + 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xfe, 0x00, 0x00, 0x3f, + 0xff, 0xff, 0xf0, 0x00, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, + 0x00, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0x00, + 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0x80, 0x00, 0x3f, 0xff, + 0xff, 0xf0, 0x00, 0xff, 0x80, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xc0, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, + 0xff, 0xe0, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xe0, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xf0, 0x00, + 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xff, + 0xf0, 0x00, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, + 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00}; + +static const std::array don_r_bmp = { + 0x42, 0x4d, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x34, + 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, + 0x23, 0x2e, 0x00, 0x00, 0x23, 0x2e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x42, 0x47, 0x52, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc7, + 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xf0, + 0x00, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xf0, 0x00, 0xff, 0xff, + 0xff, 0xc0, 0x01, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, + 0x7f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x3f, 0xf0, 0x00, + 0xff, 0xff, 0xff, 0xc0, 0x00, 0x1f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x1f, 0xf0, 0x00, 0xff, 0xff, 0xff, + 0xc0, 0x00, 0x0f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x0f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x0f, + 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x0f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x07, 0xf0, 0x00, 0xff, + 0xff, 0xff, 0xc0, 0x00, 0x07, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x07, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, + 0x00, 0x07, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x07, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x07, 0xf0, + 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x0f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x0f, 0xf0, 0x00, 0xff, 0xff, + 0xff, 0xc0, 0x00, 0x0f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x0f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, + 0x1f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x1f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x3f, 0xf0, 0x00, + 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xf0, 0x00, 0xff, 0xff, 0xff, + 0xc0, 0x00, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, + 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xf0, 0x00, 0xff, + 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00}; + +static const std::array ka_l_bmp = { + 0x42, 0x4d, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x34, + 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, + 0x23, 0x2e, 0x00, 0x00, 0x23, 0x2e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x42, 0x47, 0x52, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xff, + 0xf0, 0x00, 0xff, 0xfe, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, + 0xf0, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0x80, 0x3f, 0xff, + 0xff, 0xff, 0xf0, 0x00, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf0, + 0x00, 0xfc, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xf8, 0x1f, + 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xf0, 0x3f, 0xff, 0xff, 0xff, + 0xff, 0xf0, 0x00, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xc1, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf0, 0x00, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf0, 0x00, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x83, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x83, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf0, 0x00, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, + 0x00, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xc1, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xc1, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xf0, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, + 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xf0, 0x3f, 0xff, + 0xff, 0xff, 0xff, 0xf0, 0x00, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, + 0xf0, 0x00, 0xfc, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xc0, 0x03, 0xff, + 0xff, 0xff, 0xf0, 0x00, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xff, 0xf0, + 0x00, 0xff, 0xfe, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, + 0xf8, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00}; + +static const std::array ka_r_bmp = { + 0x42, 0x4d, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x34, + 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, + 0x23, 0x2e, 0x00, 0x00, 0x23, 0x2e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x42, 0x47, 0x52, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, + 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xf0, 0x00, 0xff, + 0xff, 0xff, 0xc0, 0x00, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xc0, 0x1f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xf0, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x03, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xf0, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x81, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xc0, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x70, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x70, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x30, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x30, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf8, 0x30, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x30, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, + 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfc, 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x10, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x10, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf8, 0x30, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x30, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf8, 0x30, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x30, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x70, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x70, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf0, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xc0, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x03, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xf0, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xfc, + 0x00, 0x3f, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xf0, + 0x00, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xf0, 0x00, 0xff, 0xff, + 0xff, 0xc1, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00}; Display::Display(const Config &config) : m_config(config), m_state(State::Idle) { m_display.external_vcc = false; @@ -82,9 +174,37 @@ Display::Display(const Config &config) : m_config(config), m_state(State::Idle) void Display::showIdle() { m_state = State::Idle; } void Display::showMenu() { m_state = State::Menu; } +static std::string modeToString(usb_mode_t mode) { + switch (mode) { + case USB_MODE_XBOX360: + return "Xbox 360"; + case USB_MODE_DEBUG: + return "Debug"; + } + return "?"; +} + void Display::drawIdleScreen() { - // Background - ssd1306_bmp_show_image(&m_display, idle_screen.data(), idle_screen.size()); + // Header + std::string mode_string = modeToString(m_usb_mode) + " mode"; + ssd1306_draw_string(&m_display, 0, 0, 1, mode_string.c_str()); + ssd1306_draw_line(&m_display, 0, 10, 128, 10); + + // Drum + ssd1306_bmp_show_image_with_offset(&m_display, drum_bmp.data(), drum_bmp.size(), 64 - 26, 12); + + if (m_input_state.drum.don_left.triggered) { + ssd1306_bmp_show_image_with_offset(&m_display, don_l_bmp.data(), don_l_bmp.size(), 64 - 26, 12); + } + if (m_input_state.drum.don_right.triggered) { + ssd1306_bmp_show_image_with_offset(&m_display, don_r_bmp.data(), don_r_bmp.size(), 64 - 26, 12); + } + if (m_input_state.drum.ka_left.triggered) { + ssd1306_bmp_show_image_with_offset(&m_display, ka_l_bmp.data(), ka_l_bmp.size(), 64 - 26, 12); + } + if (m_input_state.drum.ka_right.triggered) { + ssd1306_bmp_show_image_with_offset(&m_display, ka_r_bmp.data(), ka_r_bmp.size(), 64 - 26, 12); + } } void Display::drawMenuScreen() {}