From f9103d13f620cb06642aacdff9dcaf05e87d671f Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 27 Jan 2024 22:03:00 -0800 Subject: [PATCH] altos/telelco-v3: Add logo to 'info' page Make the info page a bit more fun Signed-off-by: Keith Packard --- src/draw/ao_draw.h | 6 ++++++ src/draw/ao_logo.c | 15 +++++++++++++-- src/telelco-v3.0/ao_lco_v3.c | 6 ++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/draw/ao_draw.h b/src/draw/ao_draw.h index 6b0bc2ce..7f1a413c 100644 --- a/src/draw/ao_draw.h +++ b/src/draw/ao_draw.h @@ -169,6 +169,12 @@ ao_text(struct ao_bitmap *dst, uint32_t fill, uint8_t rop); +void +ao_logo_poly(struct ao_bitmap *dst, + const struct ao_transform *transform, + uint32_t fill, + uint8_t rop); + void ao_logo(struct ao_bitmap *dst, const struct ao_transform *transform, diff --git a/src/draw/ao_logo.c b/src/draw/ao_logo.c index 74733276..53b9a3c2 100644 --- a/src/draw/ao_logo.c +++ b/src/draw/ao_logo.c @@ -21,6 +21,18 @@ #define ARRAYSIZE(a) (sizeof(a) / sizeof((a)[0])) +void +ao_logo_poly(struct ao_bitmap *dst, + const struct ao_transform *transform, + uint32_t fill, + uint8_t rop) +{ + if (!transform) + transform = &ao_identity; + ao_poly(dst, ao_logo_top, ARRAYSIZE(ao_logo_top), transform, fill, rop); + ao_poly(dst, ao_logo_bottom, ARRAYSIZE(ao_logo_bottom), transform, fill, rop); +} + void ao_logo(struct ao_bitmap *dst, const struct ao_transform *transform, @@ -33,8 +45,7 @@ ao_logo(struct ao_bitmap *dst, int16_t name_x = ao_t_xi(ao_logo_width, 0.0f, transform); int16_t name_y1 = ao_t_yi(ao_logo_width, 0.5f, transform); int16_t name_y2 = ao_t_yi(ao_logo_width, 0.98f, transform); - ao_poly(dst, ao_logo_top, ARRAYSIZE(ao_logo_top), transform, fill, rop); - ao_poly(dst, ao_logo_bottom, ARRAYSIZE(ao_logo_bottom), transform, fill, rop); + ao_logo_poly(dst, transform, fill, rop); ao_text(dst, font, name_x, name_y1, "Altus", fill, rop); ao_text(dst, font, name_x, name_y2, "Metrum", fill, rop); } diff --git a/src/telelco-v3.0/ao_lco_v3.c b/src/telelco-v3.0/ao_lco_v3.c index e1a6dcad..2055701b 100644 --- a/src/telelco-v3.0/ao_lco_v3.c +++ b/src/telelco-v3.0/ao_lco_v3.c @@ -44,6 +44,11 @@ static const struct ao_transform logo_transform = { .y_scale = 48, .y_off = 0, }; +static const struct ao_transform show_transform = { + .x_scale = 36, .x_off = 100, + .y_scale = 36, .y_off = 0, +}; + #define BIG_FONT BitstreamVeraSans_Roman_58_font #define VOLT_FONT BitstreamVeraSans_Roman_58_font #define SMALL_FONT BitstreamVeraSans_Roman_12_font @@ -172,6 +177,7 @@ static void _ao_lco_show_info(void) { info_y = INFO_START_Y; + ao_logo_poly(&fb, &show_transform, AO_BLACK, AO_COPY); _ao_lco_info("%s", ao_product); _ao_lco_info("Version: %s", ao_version); _ao_lco_info("Serial: %d", ao_serial_number); -- 2.30.2