From 037453fc8de12aa88c25a09082bf4f8b0592b0e4 Mon Sep 17 00:00:00 2001 From: DiSlord Date: Wed, 22 Jul 2020 13:51:27 +0300 Subject: [PATCH] Remove usage blit16bitWidthBitmap Now need use blit8BitWidthBitmap for draw image Now big bitmap image need define as uint8_t bitmap array, for more easy use _BMP16, _BMP24, _BMP32 macro Redefine bitmaps arrays vs this macro Now bitmap image can be any width and height Now any bitmap image can be draw transparent on cell Result code more compact --- ili9341.c | 9 +- nanovna.h | 11 +- numfont20x22.c | 1103 ++++++++++++++++++++++++------------------------ ui.c | 155 +++---- ui_sa.c | 340 +++++++-------- 5 files changed, 814 insertions(+), 804 deletions(-) diff --git a/ili9341.c b/ili9341.c index 2f4c0dc..29a98f2 100644 --- a/ili9341.c +++ b/ili9341.c @@ -598,13 +598,14 @@ void ili9341_set_rotation(uint8_t r) } void blit8BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t height, - const uint8_t *bitmap) + const void *bitmap) { uint16_t *buf = spi_buffer; uint8_t bits = 0; + const uint8_t *b = bitmap; for (uint16_t c = 0; c < height; c++) { for (uint16_t r = 0; r < width; r++) { - if ((r&7) == 0) bits = *bitmap++; + if ((r&7) == 0) bits = *b++; *buf++ = (0x80 & bits) ? foreground_color : background_color; bits <<= 1; } @@ -612,6 +613,7 @@ void blit8BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t height ili9341_bulk(x, y, width, height); } +#if 0 void blit16BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint16_t *bitmap) { @@ -625,6 +627,7 @@ void blit16BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t heigh } ili9341_bulk(x, y, width, height); } +#endif void ili9341_drawchar(uint8_t ch, int x, int y) { @@ -683,7 +686,7 @@ int ili9341_drawchar_size(uint8_t ch, int x, int y, uint8_t size) void ili9341_drawfont(uint8_t ch, int x, int y) { - blit16BitWidthBitmap(x, y, NUM_FONT_GET_WIDTH, NUM_FONT_GET_HEIGHT, + blit8BitWidthBitmap(x, y, NUM_FONT_GET_WIDTH, NUM_FONT_GET_HEIGHT, NUM_FONT_GET_DATA(ch)); } diff --git a/nanovna.h b/nanovna.h index c27095a..c1890b1 100644 --- a/nanovna.h +++ b/nanovna.h @@ -345,8 +345,8 @@ extern const uint8_t x7x11b_bits []; #define bFONT_GET_HEIGHT 11 #define bFONT_STR_HEIGHT 11 -extern const uint16_t numfont16x22[]; -#define NUM_FONT_GET_DATA(ch) (&numfont16x22[ch*22]) +extern const uint8_t numfont16x22[]; +#define NUM_FONT_GET_DATA(ch) (&numfont16x22[ch*2*22]) #define NUM_FONT_GET_WIDTH 16 #define NUM_FONT_GET_HEIGHT 22 @@ -557,6 +557,11 @@ extern uint16_t background_color; extern uint16_t spi_buffer[SPI_BUFFER_SIZE]; +// Used for easy define big Bitmap as 0bXXXXXXXXX image +#define _BMP16(d) ((d>>8)&0xFF), ((d)&0xFF) +#define _BMP24(d) ((d>>16)&0xFF), ((d>>8)&0xFF), ((d)&0xFF) +#define _BMP32(d) ((d>>24)&0xFF), ((d>>16)&0xFF), ((d>>8)&0xFF), ((d)&0xFF) + void ili9341_init(void); void ili9341_test(int mode); void ili9341_bulk(int x, int y, int w, int h); @@ -571,7 +576,7 @@ void ili9341_set_background(uint16_t fg); #endif void ili9341_clear_screen(void); -void blit8BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint8_t *bitmap); +void blit8BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const void *bitmap); void blit16BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint16_t *bitmap); void ili9341_drawchar(uint8_t ch, int x, int y); void ili9341_drawstring(const char *str, int x, int y); diff --git a/numfont20x22.c b/numfont20x22.c index 0b495d3..a7593e5 100644 --- a/numfont20x22.c +++ b/numfont20x22.c @@ -21,581 +21,582 @@ */ #include +#include "nanovna.h" -const uint16_t numfont16x22[] = { +const uint8_t numfont16x22[] = { - 0b0000111111110000, - 0b0011111111111100, - 0b0111111111111110, - 0b0111110000111110, - 0b1111100000011111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111100000011111, - 0b0111110000111110, - 0b0111111111111110, - 0b0011111111111100, - 0b0000111111110000, + _BMP16(0b0000111111110000), + _BMP16(0b0011111111111100), + _BMP16(0b0111111111111110), + _BMP16(0b0111110000111110), + _BMP16(0b1111100000011111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111100000011111), + _BMP16(0b0111110000111110), + _BMP16(0b0111111111111110), + _BMP16(0b0011111111111100), + _BMP16(0b0000111111110000), - 0b0000000011110000, - 0b0000000111110000, - 0b0000001111110000, - 0b0000011111110000, - 0b0000111111110000, - 0b0000111111110000, - 0b0000111011110000, - 0b0000110011110000, - 0b0000000011110000, - 0b0000000011110000, - 0b0000000011110000, - 0b0000000011110000, - 0b0000000011110000, - 0b0000000011110000, - 0b0000000011110000, - 0b0000000011110000, - 0b0000000011110000, - 0b0000000011110000, - 0b0000000011110000, - 0b0000001111111100, - 0b0000001111111100, - 0b0000001111111100, + _BMP16(0b0000000011110000), + _BMP16(0b0000000111110000), + _BMP16(0b0000001111110000), + _BMP16(0b0000011111110000), + _BMP16(0b0000111111110000), + _BMP16(0b0000111111110000), + _BMP16(0b0000111011110000), + _BMP16(0b0000110011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000000011110000), + _BMP16(0b0000001111111100), + _BMP16(0b0000001111111100), + _BMP16(0b0000001111111100), - 0b0000111111110000, - 0b0011111111111100, - 0b0111111111111110, - 0b0111110000111110, - 0b1111100000011111, - 0b1111000000001111, - 0b1111000000001111, - 0b0000000000011111, - 0b0000000000111111, - 0b0000000001111110, - 0b0000000011111100, - 0b0000000111111000, - 0b0000001111110000, - 0b0000011111100000, - 0b0000111111000000, - 0b0001111110000000, - 0b0011111100000000, - 0b0111111000000000, - 0b1111110000000000, - 0b1111111111111111, - 0b1111111111111111, - 0b1111111111111111, + _BMP16(0b0000111111110000), + _BMP16(0b0011111111111100), + _BMP16(0b0111111111111110), + _BMP16(0b0111110000111110), + _BMP16(0b1111100000011111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b0000000000011111), + _BMP16(0b0000000000111111), + _BMP16(0b0000000001111110), + _BMP16(0b0000000011111100), + _BMP16(0b0000000111111000), + _BMP16(0b0000001111110000), + _BMP16(0b0000011111100000), + _BMP16(0b0000111111000000), + _BMP16(0b0001111110000000), + _BMP16(0b0011111100000000), + _BMP16(0b0111111000000000), + _BMP16(0b1111110000000000), + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), - 0b0000111111110000, - 0b0011111111111100, - 0b0111111111111110, - 0b0111110000111110, - 0b1111100000011111, - 0b1111000000001111, - 0b1111000000001111, - 0b0000000000011110, - 0b0000000000111110, - 0b0000000111111100, - 0b0000000111111000, - 0b0000000111111100, - 0b0000000001111110, - 0b0000000000011111, - 0b0000000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111100000011111, - 0b0111110000111110, - 0b0111111111111110, - 0b0011111111111100, - 0b0000111111110000, + _BMP16(0b0000111111110000), + _BMP16(0b0011111111111100), + _BMP16(0b0111111111111110), + _BMP16(0b0111110000111110), + _BMP16(0b1111100000011111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b0000000000011110), + _BMP16(0b0000000000111110), + _BMP16(0b0000000111111100), + _BMP16(0b0000000111111000), + _BMP16(0b0000000111111100), + _BMP16(0b0000000001111110), + _BMP16(0b0000000000011111), + _BMP16(0b0000000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111100000011111), + _BMP16(0b0111110000111110), + _BMP16(0b0111111111111110), + _BMP16(0b0011111111111100), + _BMP16(0b0000111111110000), - 0b0000000111111000, - 0b0000000111111000, - 0b0000001111111000, - 0b0000001111111000, - 0b0000011111111000, - 0b0000011111111000, - 0b0000111111111000, - 0b0000111101111000, - 0b0001111101111000, - 0b0001111001111000, - 0b0011111001111000, - 0b0011110001111000, - 0b0111110001111000, - 0b0111100001111000, - 0b1111100001111000, - 0b1111111111111111, - 0b1111111111111111, - 0b1111111111111111, - 0b0000000001111000, - 0b0000000001111000, - 0b0000000001111000, - 0b0000000001111000, + _BMP16(0b0000000111111000), + _BMP16(0b0000000111111000), + _BMP16(0b0000001111111000), + _BMP16(0b0000001111111000), + _BMP16(0b0000011111111000), + _BMP16(0b0000011111111000), + _BMP16(0b0000111111111000), + _BMP16(0b0000111101111000), + _BMP16(0b0001111101111000), + _BMP16(0b0001111001111000), + _BMP16(0b0011111001111000), + _BMP16(0b0011110001111000), + _BMP16(0b0111110001111000), + _BMP16(0b0111100001111000), + _BMP16(0b1111100001111000), + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b0000000001111000), + _BMP16(0b0000000001111000), + _BMP16(0b0000000001111000), + _BMP16(0b0000000001111000), - 0b1111111111111111, - 0b1111111111111111, - 0b1111111111111111, - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000000000, - 0b1111011111110000, - 0b1111111111111100, - 0b1111111111111110, - 0b1111110000111110, - 0b1111100000011111, - 0b0000000000001111, - 0b0000000000001111, - 0b0000000000001111, - 0b0000000000001111, - 0b1111000000001111, - 0b1111100000011111, - 0b0111110000111110, - 0b0111111111111110, - 0b0011111111111100, - 0b0000111111110000, + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111011111110000), + _BMP16(0b1111111111111100), + _BMP16(0b1111111111111110), + _BMP16(0b1111110000111110), + _BMP16(0b1111100000011111), + _BMP16(0b0000000000001111), + _BMP16(0b0000000000001111), + _BMP16(0b0000000000001111), + _BMP16(0b0000000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111100000011111), + _BMP16(0b0111110000111110), + _BMP16(0b0111111111111110), + _BMP16(0b0011111111111100), + _BMP16(0b0000111111110000), - 0b0000111111110000, - 0b0011111111111100, - 0b0111111111111110, - 0b0111110000111110, - 0b1111100000011111, - 0b1111000000001111, - 0b1111000000000000, - 0b1111000000000000, - 0b1111011111110000, - 0b1111111111111100, - 0b1111111111111110, - 0b1111110000111110, - 0b1111100000011111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111100000011111, - 0b0111110000111110, - 0b0111111111111110, - 0b0011111111111100, - 0b0000111111110000, + _BMP16(0b0000111111110000), + _BMP16(0b0011111111111100), + _BMP16(0b0111111111111110), + _BMP16(0b0111110000111110), + _BMP16(0b1111100000011111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111011111110000), + _BMP16(0b1111111111111100), + _BMP16(0b1111111111111110), + _BMP16(0b1111110000111110), + _BMP16(0b1111100000011111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111100000011111), + _BMP16(0b0111110000111110), + _BMP16(0b0111111111111110), + _BMP16(0b0011111111111100), + _BMP16(0b0000111111110000), - 0b1111111111111111, - 0b1111111111111111, - 0b1111111111111111, - 0b0000000000011111, - 0b0000000000111110, - 0b0000000001111100, - 0b0000000011111000, - 0b0000000111110000, - 0b0000000111100000, - 0b0000001111100000, - 0b0000001111000000, - 0b0000011111000000, - 0b0000011110000000, - 0b0000011110000000, - 0b0000111110000000, - 0b0000111100000000, - 0b0000111100000000, - 0b0000111100000000, - 0b0000111100000000, - 0b0000111100000000, - 0b0000111100000000, - 0b0000111100000000, + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b0000000000011111), + _BMP16(0b0000000000111110), + _BMP16(0b0000000001111100), + _BMP16(0b0000000011111000), + _BMP16(0b0000000111110000), + _BMP16(0b0000000111100000), + _BMP16(0b0000001111100000), + _BMP16(0b0000001111000000), + _BMP16(0b0000011111000000), + _BMP16(0b0000011110000000), + _BMP16(0b0000011110000000), + _BMP16(0b0000111110000000), + _BMP16(0b0000111100000000), + _BMP16(0b0000111100000000), + _BMP16(0b0000111100000000), + _BMP16(0b0000111100000000), + _BMP16(0b0000111100000000), + _BMP16(0b0000111100000000), + _BMP16(0b0000111100000000), - 0b0000011111100000, - 0b0001111111111000, - 0b0011111111111100, - 0b0111110000111110, - 0b0111100000011110, - 0b0111100000011110, - 0b0111100000011110, - 0b0011110000111100, - 0b0001111111111000, - 0b0000111111110000, - 0b0011111111111100, - 0b0111110000111110, - 0b0111100000011110, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111100000011111, - 0b0111110000111110, - 0b0111111111111110, - 0b0011111111111100, - 0b0000111111110000, + _BMP16(0b0000011111100000), + _BMP16(0b0001111111111000), + _BMP16(0b0011111111111100), + _BMP16(0b0111110000111110), + _BMP16(0b0111100000011110), + _BMP16(0b0111100000011110), + _BMP16(0b0111100000011110), + _BMP16(0b0011110000111100), + _BMP16(0b0001111111111000), + _BMP16(0b0000111111110000), + _BMP16(0b0011111111111100), + _BMP16(0b0111110000111110), + _BMP16(0b0111100000011110), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111100000011111), + _BMP16(0b0111110000111110), + _BMP16(0b0111111111111110), + _BMP16(0b0011111111111100), + _BMP16(0b0000111111110000), - 0b0000111111110000, - 0b0011111111111100, - 0b0111111111111110, - 0b0111110000111110, - 0b1111100000011111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111100000011111, - 0b0111110000111111, - 0b0111111111111111, - 0b0011111111111111, - 0b0000111111111111, - 0b0000000000001111, - 0b0000000000001111, - 0b1111000000001111, - 0b1111100000011111, - 0b0111110000111110, - 0b0111111111111110, - 0b0011111111111100, - 0b0000111111110000, + _BMP16(0b0000111111110000), + _BMP16(0b0011111111111100), + _BMP16(0b0111111111111110), + _BMP16(0b0111110000111110), + _BMP16(0b1111100000011111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111100000011111), + _BMP16(0b0111110000111111), + _BMP16(0b0111111111111111), + _BMP16(0b0011111111111111), + _BMP16(0b0000111111111111), + _BMP16(0b0000000000001111), + _BMP16(0b0000000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111100000011111), + _BMP16(0b0111110000111110), + _BMP16(0b0111111111111110), + _BMP16(0b0011111111111100), + _BMP16(0b0000111111110000), - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000001110000000, - 0b0000011111000000, - 0b0000011111000000, - 0b0000001110000000, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000001110000000), + _BMP16(0b0000011111000000), + _BMP16(0b0000011111000000), + _BMP16(0b0000001110000000), + _BMP16(0b0000000000000000), - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0011111111111100, - 0b0011111111111100, - 0b0011111111111100, - 0b0011111111111100, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0011111111111100), + _BMP16(0b0011111111111100), + _BMP16(0b0011111111111100), + _BMP16(0b0011111111111100), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), - 0b0000000000000011, - 0b0000000000000111, - 0b0000000000001111, - 0b0000000000011111, - 0b0000000000111111, - 0b0000000001111111, - 0b0000000000001111, - 0b0000000000001111, - 0b0000000000001111, - 0b0110000011001111, - 0b1111000111101111, - 0b0111101111001111, - 0b0011111110001111, - 0b0001111100001111, - 0b0001111100001111, - 0b0011111110001111, - 0b0111101111001111, - 0b1111000111101111, - 0b0110000011001111, - 0b0000000000001111, - 0b0000000000001111, - 0b0000000000001111, + _BMP16(0b0000000000000011), + _BMP16(0b0000000000000111), + _BMP16(0b0000000000001111), + _BMP16(0b0000000000011111), + _BMP16(0b0000000000111111), + _BMP16(0b0000000001111111), + _BMP16(0b0000000000001111), + _BMP16(0b0000000000001111), + _BMP16(0b0000000000001111), + _BMP16(0b0110000011001111), + _BMP16(0b1111000111101111), + _BMP16(0b0111101111001111), + _BMP16(0b0011111110001111), + _BMP16(0b0001111100001111), + _BMP16(0b0001111100001111), + _BMP16(0b0011111110001111), + _BMP16(0b0111101111001111), + _BMP16(0b1111000111101111), + _BMP16(0b0110000011001111), + _BMP16(0b0000000000001111), + _BMP16(0b0000000000001111), + _BMP16(0b0000000000001111), - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000111110, - 0b1111000001111100, - 0b1111000011111000, - 0b1111000111110000, - 0b1111001111100000, - 0b1111011111000000, - 0b1111111110000000, - 0b1111111100000000, - 0b1111111100000000, - 0b1111111110000000, - 0b1111011111000000, - 0b1111001111100000, - 0b1111000111110000, - 0b1111000011111000, - 0b1111000001111100, - 0b1111000000111110, + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000111110), + _BMP16(0b1111000001111100), + _BMP16(0b1111000011111000), + _BMP16(0b1111000111110000), + _BMP16(0b1111001111100000), + _BMP16(0b1111011111000000), + _BMP16(0b1111111110000000), + _BMP16(0b1111111100000000), + _BMP16(0b1111111100000000), + _BMP16(0b1111111110000000), + _BMP16(0b1111011111000000), + _BMP16(0b1111001111100000), + _BMP16(0b1111000111110000), + _BMP16(0b1111000011111000), + _BMP16(0b1111000001111100), + _BMP16(0b1111000000111110), - 0b1111000000001111, - 0b1111000000001111, - 0b1111100000011111, - 0b1111100000011111, - 0b1111110000111111, - 0b1111110000111111, - 0b1111111001111111, - 0b1111111001111111, - 0b1111111111111111, - 0b1111111111111111, - 0b1111111111111111, - 0b1111111111111111, - 0b1111011111101111, - 0b1111011111101111, - 0b1111001111001111, - 0b1111001111001111, - 0b1111000110001111, - 0b1111000110001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111100000011111), + _BMP16(0b1111100000011111), + _BMP16(0b1111110000111111), + _BMP16(0b1111110000111111), + _BMP16(0b1111111001111111), + _BMP16(0b1111111001111111), + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b1111011111101111), + _BMP16(0b1111011111101111), + _BMP16(0b1111001111001111), + _BMP16(0b1111001111001111), + _BMP16(0b1111000110001111), + _BMP16(0b1111000110001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), - 0b0000111111110000, - 0b0011111111111100, - 0b0111111111111110, - 0b0111110000111110, - 0b1111100000011111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000111111, - 0b1111000000111111, - 0b1111000000111111, - 0b1111000000000111, - 0b1111000000001111, - 0b1111100000011111, - 0b0111110000111111, - 0b0111111111111111, - 0b0011111111110111, - 0b0000111111100111, + _BMP16(0b0000111111110000), + _BMP16(0b0011111111111100), + _BMP16(0b0111111111111110), + _BMP16(0b0111110000111110), + _BMP16(0b1111100000011111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000111111), + _BMP16(0b1111000000111111), + _BMP16(0b1111000000111111), + _BMP16(0b1111000000000111), + _BMP16(0b1111000000001111), + _BMP16(0b1111100000011111), + _BMP16(0b0111110000111111), + _BMP16(0b0111111111111111), + _BMP16(0b0011111111110111), + _BMP16(0b0000111111100111), - 0b0000000000000000, - 0b0000000000000000, - 0b0000000001000000, - 0b0000000011000000, - 0b0000000111000000, - 0b0000001111000000, - 0b0000011111000000, - 0b0000111111111111, - 0b0001111111111111, - 0b0011111111111111, - 0b0111111111111111, - 0b1111111111111111, - 0b0111111111111111, - 0b0011111111111111, - 0b0001111111111111, - 0b0000111111111111, - 0b0000011111000000, - 0b0000001111000000, - 0b0000000111000000, - 0b0000000011000000, - 0b0000000001000000, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000001000000), + _BMP16(0b0000000011000000), + _BMP16(0b0000000111000000), + _BMP16(0b0000001111000000), + _BMP16(0b0000011111000000), + _BMP16(0b0000111111111111), + _BMP16(0b0001111111111111), + _BMP16(0b0011111111111111), + _BMP16(0b0111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b0111111111111111), + _BMP16(0b0011111111111111), + _BMP16(0b0001111111111111), + _BMP16(0b0000111111111111), + _BMP16(0b0000011111000000), + _BMP16(0b0000001111000000), + _BMP16(0b0000000111000000), + _BMP16(0b0000000011000000), + _BMP16(0b0000000001000000), + _BMP16(0b0000000000000000), - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0001111000111100, - 0b0011111101111110, - 0b0111001111100110, - 0b0110000111000011, - 0b1110000111000011, - 0b1100000110000011, - 0b1100000110000011, - 0b1100000110000011, - 0b1100000110000011, - 0b1100001110000111, - 0b1100001110000110, - 0b0110011111001110, - 0b0111111011111100, - 0b0011110001111000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0001111000111100), + _BMP16(0b0011111101111110), + _BMP16(0b0111001111100110), + _BMP16(0b0110000111000011), + _BMP16(0b1110000111000011), + _BMP16(0b1100000110000011), + _BMP16(0b1100000110000011), + _BMP16(0b1100000110000011), + _BMP16(0b1100000110000011), + _BMP16(0b1100001110000111), + _BMP16(0b1100001110000110), + _BMP16(0b0110011111001110), + _BMP16(0b0111111011111100), + _BMP16(0b0011110001111000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000011101111100, - 0b0000011101111110, - 0b0000001101100110, - 0b0000001101100110, - 0b0000001101100110, - 0b0000001101100110, - 0b0000001101100110, - 0b0011101101111100, - 0b0111111101111110, - 0b1110011101100111, - 0b1100001101100011, - 0b1100001101100011, - 0b1100001101100011, - 0b1100001101100011, - 0b1100001101100011, - 0b1100001101100011, - 0b1110011101100111, - 0b0111111101111110, - 0b0011101101111100, + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000011101111100), + _BMP16(0b0000011101111110), + _BMP16(0b0000001101100110), + _BMP16(0b0000001101100110), + _BMP16(0b0000001101100110), + _BMP16(0b0000001101100110), + _BMP16(0b0000001101100110), + _BMP16(0b0011101101111100), + _BMP16(0b0111111101111110), + _BMP16(0b1110011101100111), + _BMP16(0b1100001101100011), + _BMP16(0b1100001101100011), + _BMP16(0b1100001101100011), + _BMP16(0b1100001101100011), + _BMP16(0b1100001101100011), + _BMP16(0b1100001101100011), + _BMP16(0b1110011101100111), + _BMP16(0b0111111101111110), + _BMP16(0b0011101101111100), - 0b0000000000000000, - 0b0000000000000000, - 0b0000001110000000, - 0b0000001110000000, - 0b0000001110000000, - 0b0000001110000000, - 0b0011111111111000, - 0b0011111111111000, - 0b0011111111111000, - 0b0000001110000000, - 0b0000001110000000, - 0b0000001110000000, - 0b0000001110000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0011111111111000, - 0b0011111111111000, - 0b0011111111111000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000001110000000), + _BMP16(0b0000001110000000), + _BMP16(0b0000001110000000), + _BMP16(0b0000001110000000), + _BMP16(0b0011111111111000), + _BMP16(0b0011111111111000), + _BMP16(0b0011111111111000), + _BMP16(0b0000001110000000), + _BMP16(0b0000001110000000), + _BMP16(0b0000001110000000), + _BMP16(0b0000001110000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0011111111111000), + _BMP16(0b0011111111111000), + _BMP16(0b0011111111111000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), - 0b0000000000000000, - 0b0111101111011110, - 0b0111101111011110, - 0b0111101111011110, - 0b0111101111011110, - 0b0000000000000000, - 0b0111101111011110, - 0b0111101111011110, - 0b0111101111011110, - 0b0111101111011110, - 0b0000000000000000, - 0b0111101111011110, - 0b0111101111011110, - 0b0111101111011110, - 0b0111101111011110, - 0b0000000000000000, - 0b0111101111011110, - 0b0111101111011110, - 0b0111101111011110, - 0b0111101111011110, - 0b0000000000000000, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0000000000000000), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0000000000000000), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0000000000000000), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0111101111011110), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), - 0b0000000000000000, // m - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b1110111000011100, - 0b1111111100111110, - 0b1111111111111111, - 0b1111111111111111, - 0b1111001111001111, - 0b1111001111001111, - 0b1111001111001111, - 0b1111001111001111, - 0b1111001111001111, - 0b1111001111001111, - 0b1111001111001111, - 0b1111001111001111, - 0b1111001111001111, - 0b1111001111001111, + _BMP16(0b0000000000000000), // m + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b1110111000011100), + _BMP16(0b1111111100111110), + _BMP16(0b1111111111111111), + _BMP16(0b1111111111111111), + _BMP16(0b1111001111001111), + _BMP16(0b1111001111001111), + _BMP16(0b1111001111001111), + _BMP16(0b1111001111001111), + _BMP16(0b1111001111001111), + _BMP16(0b1111001111001111), + _BMP16(0b1111001111001111), + _BMP16(0b1111001111001111), + _BMP16(0b1111001111001111), + _BMP16(0b1111001111001111), - 0b0000000000000000, // u - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b1111000000011110, - 0b1111000000011110, - 0b1111000000011110, - 0b1111000000011110, - 0b1111000000011110, - 0b1111000000011110, - 0b1111000000011110, - 0b1111000000011110, - 0b1111100000111110, - 0b1111110001111110, - 0b1111111111111110, - 0b1111111111111111, - 0b1111011111001111, - 0b1111001110000111, - 0b1111000000000000, - 0b1111000000000000, + _BMP16(0b0000000000000000), // u + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b1111000000011110), + _BMP16(0b1111000000011110), + _BMP16(0b1111000000011110), + _BMP16(0b1111000000011110), + _BMP16(0b1111000000011110), + _BMP16(0b1111000000011110), + _BMP16(0b1111000000011110), + _BMP16(0b1111000000011110), + _BMP16(0b1111100000111110), + _BMP16(0b1111110001111110), + _BMP16(0b1111111111111110), + _BMP16(0b1111111111111111), + _BMP16(0b1111011111001111), + _BMP16(0b1111001110000111), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), - 0b0000000000000000, // n - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b1111000111110000, - 0b1111011111111100, - 0b1111111111111110, - 0b1111111000111110, - 0b1111110000011111, - 0b1111100000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, - 0b1111000000001111, + _BMP16(0b0000000000000000), // n + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b1111000111110000), + _BMP16(0b1111011111111100), + _BMP16(0b1111111111111110), + _BMP16(0b1111111000111110), + _BMP16(0b1111110000011111), + _BMP16(0b1111100000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), + _BMP16(0b1111000000001111), - 0b0000000000000000, // p - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b1111001111110000, - 0b1111011111111100, - 0b1111111111111110, - 0b1111111000011111, - 0b1111110000001111, - 0b1111100000000111, - 0b1111100000000111, - 0b1111100000000111, - 0b1111110000001111, - 0b1111111000011111, - 0b1111111111111110, - 0b1111011111111100, - 0b1111001111110000, - 0b1111000000000000, - 0b1111000000000000, - 0b1111000000000000, + _BMP16(0b0000000000000000), // p + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b1111001111110000), + _BMP16(0b1111011111111100), + _BMP16(0b1111111111111110), + _BMP16(0b1111111000011111), + _BMP16(0b1111110000001111), + _BMP16(0b1111100000000111), + _BMP16(0b1111100000000111), + _BMP16(0b1111100000000111), + _BMP16(0b1111110000001111), + _BMP16(0b1111111000011111), + _BMP16(0b1111111111111110), + _BMP16(0b1111011111111100), + _BMP16(0b1111001111110000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), + _BMP16(0b1111000000000000), }; diff --git a/ui.c b/ui.c index 992a604..d5bed95 100644 --- a/ui.c +++ b/ui.c @@ -1634,80 +1634,81 @@ static bool menuDisabled(uint8_t type){ #define ICON_WIDTH 16 #define ICON_HEIGHT 11 -static const uint16_t check_box[] = { - 0b0011111111110000, - 0b0010000000010000, - 0b0010000000010000, - 0b0010000000010000, - 0b0010000000010000, - 0b0010000000010000, - 0b0010000000010000, - 0b0010000000010000, - 0b0010000000010000, - 0b0010000000010000, - 0b0011111111110000, - - 0b0011111111110000, - 0b0010000000001000, - 0b0010000000011000, - 0b0010000000110000, - 0b0010000001100000, - 0b0010100011010000, - 0b0010110110010000, - 0b0010011100010000, - 0b0010001000010000, - 0b0010000000010000, - 0b0011111111110000, - - 0b0011111111111000, - 0b0010000000001000, - 0b0010001111101000, - 0b0010011001101000, - 0b0010110001101000, - 0b0010110001101000, - 0b0010111111101000, - 0b0010110001101000, - 0b0010110001101000, - 0b0010000000001000, - 0b0011111111111000, - - 0b0011111111111000, - 0b0010000000001000, - 0b0010110001101000, - 0b0010110001101000, - 0b0010111011101000, - 0b0010111111101000, - 0b0010110101101000, - 0b0010110101101000, - 0b0010110001101000, - 0b0010000000001000, - 0b0011111111111000, - - 0b0000000000000000, - 0b0000011110000000, - 0b0000100001000000, - 0b0001000000100000, - 0b0010000000010000, - 0b0010000000010000, - 0b0010000000010000, - 0b0010000000010000, - 0b0001000000100000, - 0b0000100001000000, - 0b0000011110000000, - - 0b0000000000000000, - 0b0000011110000000, - 0b0000100001000000, - 0b0001001100100000, - 0b0010011110010000, - 0b0010111111010000, - 0b0010111111010000, - 0b0010011110010000, - 0b0001001100100000, - 0b0000100001000000, - 0b0000011110000000, + +static const uint8_t check_box[] = { + _BMP16(0b0011111111110000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0011111111110000), + + _BMP16(0b0011111111110000), + _BMP16(0b0010000000001000), + _BMP16(0b0010000000011000), + _BMP16(0b0010000000110000), + _BMP16(0b0010000001100000), + _BMP16(0b0010100011010000), + _BMP16(0b0010110110010000), + _BMP16(0b0010011100010000), + _BMP16(0b0010001000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0011111111110000), + + _BMP16(0b0011111111111000), + _BMP16(0b0010000000001000), + _BMP16(0b0010001111101000), + _BMP16(0b0010011001101000), + _BMP16(0b0010110001101000), + _BMP16(0b0010110001101000), + _BMP16(0b0010111111101000), + _BMP16(0b0010110001101000), + _BMP16(0b0010110001101000), + _BMP16(0b0010000000001000), + _BMP16(0b0011111111111000), + + _BMP16(0b0011111111111000), + _BMP16(0b0010000000001000), + _BMP16(0b0010110001101000), + _BMP16(0b0010110001101000), + _BMP16(0b0010111011101000), + _BMP16(0b0010111111101000), + _BMP16(0b0010110101101000), + _BMP16(0b0010110101101000), + _BMP16(0b0010110001101000), + _BMP16(0b0010000000001000), + _BMP16(0b0011111111111000), + + _BMP16(0b0000000000000000), + _BMP16(0b0000011110000000), + _BMP16(0b0000100001000000), + _BMP16(0b0001000000100000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0010000000010000), + _BMP16(0b0001000000100000), + _BMP16(0b0000100001000000), + _BMP16(0b0000011110000000), + + _BMP16(0b0000000000000000), + _BMP16(0b0000011110000000), + _BMP16(0b0000100001000000), + _BMP16(0b0001001100100000), + _BMP16(0b0010011110010000), + _BMP16(0b0010111111010000), + _BMP16(0b0010111111010000), + _BMP16(0b0010011110010000), + _BMP16(0b0001001100100000), + _BMP16(0b0000100001000000), + _BMP16(0b0000011110000000), }; -//103492 680 15896 120068 1d504 build/tinySA.elf + static void draw_menu_buttons(const menuitem_t *menu) { @@ -1766,15 +1767,15 @@ draw_menu_buttons(const menuitem_t *menu) draw_button(button_start, y, button_width, button_height, &button); uint16_t text_offs = button_start + 6; if (button.icon >=0){ - blit16BitWidthBitmap(button_start+3, y+(MENU_BUTTON_HEIGHT-ICON_HEIGHT)/2, ICON_WIDTH, ICON_HEIGHT, &check_box[button.icon*ICON_HEIGHT]); + blit8BitWidthBitmap(button_start+3, y+(MENU_BUTTON_HEIGHT-ICON_HEIGHT)/2, ICON_WIDTH, ICON_HEIGHT, &check_box[button.icon*2*ICON_HEIGHT]); text_offs = button_start+6+ICON_WIDTH+1; } ili9341_drawstring_size(button.text, text_offs, y+(button_height-2*FONT_GET_HEIGHT)/2, 2); // ili9341_drawstring_7x13(button.text, text_offs, y+(button_height-bFONT_GET_HEIGHT)/2); #ifdef __ICONS__ if (menu[i].type & MT_ICON) { - blit16BitWidthBitmap(button_start+MENU_FORM_WIDTH-2*FORM_ICON_WIDTH-8,y+(button_height-FORM_ICON_HEIGHT)/2,FORM_ICON_WIDTH,FORM_ICON_HEIGHT,& left_icons[((menu[i].data >>4)&0xf)*FORM_ICON_HEIGHT]); - blit16BitWidthBitmap(button_start+MENU_FORM_WIDTH- FORM_ICON_WIDTH-8,y+(button_height-FORM_ICON_HEIGHT)/2,FORM_ICON_WIDTH,FORM_ICON_HEIGHT,&right_icons[((menu[i].data >>0)&0xf)*FORM_ICON_HEIGHT]); + blit8BitWidthBitmap(button_start+MENU_FORM_WIDTH-2*FORM_ICON_WIDTH-8,y+(button_height-FORM_ICON_HEIGHT)/2,FORM_ICON_WIDTH,FORM_ICON_HEIGHT,& left_icons[((menu[i].data >>4)&0xf)*2*FORM_ICON_HEIGHT]); + blit8BitWidthBitmap(button_start+MENU_FORM_WIDTH- FORM_ICON_WIDTH-8,y+(button_height-FORM_ICON_HEIGHT)/2,FORM_ICON_WIDTH,FORM_ICON_HEIGHT,&right_icons[((menu[i].data >>0)&0xf)*2*FORM_ICON_HEIGHT]); } #endif } else { @@ -1784,7 +1785,7 @@ draw_menu_buttons(const menuitem_t *menu) draw_button(button_start, y, button_width, button_height, &button); uint16_t text_offs = button_start + 7; if (button.icon >=0){ - blit16BitWidthBitmap(button_start+2, y+(MENU_BUTTON_HEIGHT-ICON_HEIGHT)/2, ICON_WIDTH, ICON_HEIGHT, &check_box[button.icon*ICON_HEIGHT]); + blit8BitWidthBitmap(button_start+2, y+(MENU_BUTTON_HEIGHT-ICON_HEIGHT)/2, ICON_WIDTH, ICON_HEIGHT, &check_box[button.icon*2*ICON_HEIGHT]); text_offs = button_start+2+ICON_WIDTH; } int lines = menu_is_multiline(button.text); diff --git a/ui_sa.c b/ui_sa.c index 3d7675a..d8f3c5f 100644 --- a/ui_sa.c +++ b/ui_sa.c @@ -20,195 +20,195 @@ #define FORM_ICON_WIDTH 16 #define FORM_ICON_HEIGHT 16 -static const uint16_t left_icons [] = +static const uint8_t left_icons [] = { #define I_EMPTY (0*16) - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000001, - 0b0000000000000001, - 0b0000000000000001, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000001, - 0b0000000000000001, - 0b0000000000000001, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), #define I_HIGH_INPUT (1*16) - // +----------------+ - 0b0000000000000000, // | | - 0b0000000000000000, // | | - 0b0000000001100000, // | ** | - 0b0000000000111001, // | *** *| - 0b0000111111111111, // | *************| - 0b0000000000111001, // | *** *| - 0b0000000001100000, // | ** | - 0b0000000000000000, // | | - 0b0000000000000000, // | | - 0b0000000000000000, // | | - 0b0000000000000001, // | | - 0b0000000000000001, // | | - 0b0000000000000001, // | | - 0b0000000000000000, // | | - 0b0000000000000000, // | | - 0b0000000000000000, // | | - // +----------------+ + // +----------------+ + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000001100000), // | ** | + _BMP16(0b0000000000111001), // | *** *| + _BMP16(0b0000111111111111), // | *************| + _BMP16(0b0000000000111001), // | *** *| + _BMP16(0b0000000001100000), // | ** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000001), // | | + _BMP16(0b0000000000000001), // | | + _BMP16(0b0000000000000001), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + // +----------------+ #define I_LOW_INPUT (2*16) - // +----------------+ - 0b0000000000000000, // | | - 0b0000000000000000, // | | - 0b0000000000000000, // | | - 0b0000000000000001, // | | - 0b0000000000000001, // | | - 0b0000000000000001, // | | - 0b0000000000000000, // | | - 0b0000000000000000, // | | - 0b0000000000000000, // | | - 0b0000000001100000, // | ** | - 0b0000000000111001, // | **** *| - 0b0000111111111111, // | *************| - 0b0000000000111001, // | **** *| - 0b0000000001100000, // | ** | - 0b0000000000000000, // | | - 0b0000000000000000, // | | - // +----------------+ + // +----------------+ + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000001), // | | + _BMP16(0b0000000000000001), // | | + _BMP16(0b0000000000000001), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000001100000), // | ** | + _BMP16(0b0000000000111001), // | **** *| + _BMP16(0b0000111111111111), // | *************| + _BMP16(0b0000000000111001), // | **** *| + _BMP16(0b0000000001100000), // | ** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + // +----------------+ #define I_LOW_OUTPUT (3*16) - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000001, - 0b0000000000000001, - 0b0000000000000001, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000110000000, - 0b0000011100000001, - 0b0000111111111111, - 0b0000011100000001, - 0b0000000110000000, - 0b0000000000000000, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000110000000), + _BMP16(0b0000011100000001), + _BMP16(0b0000111111111111), + _BMP16(0b0000011100000001), + _BMP16(0b0000000110000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), #define I_HIGH_OUTPUT (4*16) - 0b0000000000000000, - 0b0000000000000000, - 0b0000000110000000, - 0b0000011100000001, - 0b0000111111111111, - 0b0000011100000001, - 0b0000000110000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000001, - 0b0000000000000001, - 0b0000000000000001, - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000110000000), + _BMP16(0b0000011100000001), + _BMP16(0b0000111111111111), + _BMP16(0b0000011100000001), + _BMP16(0b0000000110000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000001), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), #define I_CONNECT (5*16) - 0b0000000000000000, - 0b0000000000000000, - 0b0000000000110000, - 0b0000000000111101, - 0b0000001111111111, - 0b0000010000111101, - 0b0000100000110000, - 0b0001000000000000, - 0b0001000000000000, - 0b0000100000110000, - 0b0000010000111101, - 0b0000001111111111, - 0b0000000000111101, - 0b0000000000110000, - 0b0000000000000000, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000110000), + _BMP16(0b0000000000111101), + _BMP16(0b0000001111111111), + _BMP16(0b0000010000111101), + _BMP16(0b0000100000110000), + _BMP16(0b0001000000000000), + _BMP16(0b0001000000000000), + _BMP16(0b0000100000110000), + _BMP16(0b0000010000111101), + _BMP16(0b0000001111111111), + _BMP16(0b0000000000111101), + _BMP16(0b0000000000110000), + _BMP16(0b0000000000000000), + _BMP16(0b0000000000000000), }; -const uint16_t right_icons [] = +const uint8_t right_icons [] = { #define I_SA 0 - // +----------------+ - 0b0000000000000000, // | | - 0b0111111111111111, // | ***************| - 0b0100000000000001, // | * *| - 0b1100000000000001, // |** *| - 0b1100000000000001, // |** * *| - 0b1100000000000001, // |** * *| - 0b0100100000000001, // | * * * *| - 0b0100100000000001, // | * * * *| - 0b0100101010001001, // | * * * * *| - 0b0100101010101001, // | * * * * * *| - 0b1100101010101001, // |** * * * * * *| - 0b1101111111111101, // |** * * * * * *| - 0b1100000000000001, // |** *********** *| - 0b0100000000000001, // | * *| - 0b0111111111111111, // | ***************| - 0b0000000000000000, // | | - // +----------------+ + // +----------------+ + _BMP16(0b0000000000000000), // | | + _BMP16(0b0111111111111111), // | ***************| + _BMP16(0b0100000000000001), // | * *| + _BMP16(0b1100000000000001), // |** *| + _BMP16(0b1100000000000001), // |** * *| + _BMP16(0b1100000000000001), // |** * *| + _BMP16(0b0100100000000001), // | * * * *| + _BMP16(0b0100100000000001), // | * * * *| + _BMP16(0b0100101010001001), // | * * * * *| + _BMP16(0b0100101010101001), // | * * * * * *| + _BMP16(0b1100101010101001), // |** * * * * * *| + _BMP16(0b1101111111111101), // |** * * * * * *| + _BMP16(0b1100000000000001), // |** *********** *| + _BMP16(0b0100000000000001), // | * *| + _BMP16(0b0111111111111111), // | ***************| + _BMP16(0b0000000000000000), // | | + // +----------------+ #define I_GEN 1 - // +----------------+ - 0b0000000000000000, // | | - 0b0111111111111111, // | ***************| - 0b0100000000000001, // | * *| - 0b1100000000000001, // |** *| - 0b1100111110001101, // |** ***** ** *| - 0b1100100010001001, // |** * * * *| - 0b0100100010001001, // | * * * * *| - 0b0100100010001001, // | * * * * *| - 0b0100100010001001, // | * * * * *| - 0b0100100010001001, // | * * * * *| - 0b1100100010001001, // |** * * * *| - 0b1101100011111001, // |** ** ***** *| - 0b1100000000000001, // |** *| - 0b0100000000000001, // | * *| - 0b0111111111111111, // | ***************| - 0b0000000000000000, // | | - // +----------------+ + // +----------------+ + _BMP16(0b0000000000000000), // | | + _BMP16(0b0111111111111111), // | ***************| + _BMP16(0b0100000000000001), // | * *| + _BMP16(0b1100000000000001), // |** *| + _BMP16(0b1100111110001101), // |** ***** ** *| + _BMP16(0b1100100010001001), // |** * * * *| + _BMP16(0b0100100010001001), // | * * * * *| + _BMP16(0b0100100010001001), // | * * * * *| + _BMP16(0b0100100010001001), // | * * * * *| + _BMP16(0b0100100010001001), // | * * * * *| + _BMP16(0b1100100010001001), // |** * * * *| + _BMP16(0b1101100011111001), // |** ** ***** *| + _BMP16(0b1100000000000001), // |** *| + _BMP16(0b0100000000000001), // | * *| + _BMP16(0b0111111111111111), // | ***************| + _BMP16(0b0000000000000000), // | | + // +----------------+ #define I_CONFIG 2 - 0b0000000000000000, - 0b0111111111111111, - 0b0100000000000001, - 0b1100000010000001, - 0b1100001111000001, - 0b1100011110001001, - 0b0100011100011101, - 0b0100011110111001, - 0b0100001111111001, - 0b0100011111110001, - 0b1100111110000001, - 0b1101111100000001, - 0b1100111000000001, - 0b0100000000000001, - 0b0111111111111111, - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0111111111111111), + _BMP16(0b0100000000000001), + _BMP16(0b1100000010000001), + _BMP16(0b1100001111000001), + _BMP16(0b1100011110001001), + _BMP16(0b0100011100011101), + _BMP16(0b0100011110111001), + _BMP16(0b0100001111111001), + _BMP16(0b0100011111110001), + _BMP16(0b1100111110000001), + _BMP16(0b1101111100000001), + _BMP16(0b1100111000000001), + _BMP16(0b0100000000000001), + _BMP16(0b0111111111111111), + _BMP16(0b0000000000000000), #define I_SINUS 3 - 0b0000000000000000, - 0b0111111111111111, // 1 - 0b0100000000000001, // 2 - 0b1100000000000001, // 3 - 0b1100000000110001, // 4 - 0b1100000001001001, // 5 - 0b0100000010000101, // 6 - 0b0101000010000101, // 7 - 0b0101000010000101, // 8 - 0b0101000010000001, // 9 - 0b1100100100000001, //10 - 0b1100011000000001, //11 - 0b1100000000000001, //12 - 0b0100000000000001, //13 - 0b0111111111111111, //14 - 0b0000000000000000, + _BMP16(0b0000000000000000), + _BMP16(0b0111111111111111), // 1 + _BMP16(0b0100000000000001), // 2 + _BMP16(0b1100000000000001), // 3 + _BMP16(0b1100000000110001), // 4 + _BMP16(0b1100000001001001), // 5 + _BMP16(0b0100000010000101), // 6 + _BMP16(0b0101000010000101), // 7 + _BMP16(0b0101000010000101), // 8 + _BMP16(0b0101000010000001), // 9 + _BMP16(0b1100100100000001), //10 + _BMP16(0b1100011000000001), //11 + _BMP16(0b1100000000000001), //12 + _BMP16(0b0100000000000001), //13 + _BMP16(0b0111111111111111), //14 + _BMP16(0b0000000000000000), }; enum {