Swadge ESP32-S2
APIs to develop for the Magfest Swadge
Toggle main menu visibility
Loading...
Searching...
No Matches
menuMegaRenderer.h
Go to the documentation of this file.
1
26
27
#pragma once
28
29
#include "
hdw-led.h
"
30
#include "
menu.h
"
31
#include "
fs_wsg.h
"
32
#include "
fs_font.h
"
33
#include "
wsgPalette.h
"
34
38
typedef
struct
39
{
40
wsg_t
bg
;
41
wsg_t
body_top
;
42
wsg_t
body_bottom
;
43
wsg_t
item
;
44
wsg_t
item_sel
;
45
wsg_t
up
;
46
wsg_t
down
;
47
wsg_t
next
;
48
wsg_t
prev
;
49
wsg_t
submenu
;
50
wsg_t
back
;
51
wsg_t
batt
[4];
52
wsgPalette_t
palette
;
53
54
paletteColor_t
textFillColor
;
55
paletteColor_t
textOutlineColor
;
56
font_t
*
titleFont
;
57
font_t
*
titleFontOutline
;
58
font_t
*
menuFont
;
59
bool
titleFontAllocated
;
61
bool
titleFontOutlineAllocated
;
63
bool
menuFontAllocated
;
65
66
int32_t
selectedMarqueeTimer
;
67
int32_t
shadowMarqueeTimer
;
68
int32_t
pageArrowTimer
;
69
node_t
*
currentItem
;
70
71
const
paletteColor_t
*
bgColors
;
72
int32_t
numBgColors
;
73
int32_t
bgColorTimer
;
74
int32_t
bgColorDeg
;
76
int32_t
yOff
;
77
int32_t
bgColorIdx
;
78
79
led_t
leds
[CONFIG_NUM_LEDS];
80
bool
ledsOn
;
81
82
bool
drawBody
;
83
uint16_t
bodyHeight
;
84
bool
conveyorBeltStyle
;
85
}
menuMegaRenderer_t
;
86
87
menuMegaRenderer_t
*
initMenuMegaRenderer
(
font_t
* titleFont,
font_t
* titleFontOutline,
font_t
* menuFont);
88
void
deinitMenuMegaRenderer
(
menuMegaRenderer_t
* renderer);
89
void
drawMenuBody
(uint16_t topLeftX, uint16_t topLeftY, uint8_t expansionHeight,
bool
flipLR,
90
menuMegaRenderer_t
* renderer);
91
void
drawMenuMega
(
menu_t
* menu,
menuMegaRenderer_t
* renderer, int64_t elapsedUs);
92
void
setMegaLedsOn
(
menuMegaRenderer_t
* renderer,
bool
ledsOn);
93
void
setDrawBody
(
menuMegaRenderer_t
* renderer,
bool
drawBody);
94
void
setBodyHeight
(
menuMegaRenderer_t
* renderer, int16_t height);
95
void
recolorMenuMegaRenderer
(
menuMegaRenderer_t
* renderer,
paletteColor_t
textFill,
paletteColor_t
textOutline,
96
paletteColor_t
hexaBackground,
paletteColor_t
bodyBackground,
97
paletteColor_t
bodyAccentDark,
paletteColor_t
bodyAccentLight,
paletteColor_t
bodyArrowBg,
98
paletteColor_t
rowUnselectedBg,
paletteColor_t
rowUnselectedShadow,
99
paletteColor_t
rowSelectedBg,
paletteColor_t
rowSelectedAccent,
100
paletteColor_t
rowSelectedOutline,
paletteColor_t
rowArrowBg,
101
const
paletteColor_t
* bgColors, int32_t numBgColors);
font_t
A font is a collection of font_ch_t for all ASCII characters. Each character has the same height and ...
Definition
font.h:66
fs_font.h
fs_wsg.h
hdw-led.h
led_t
LED colors, with red, green, and blue components.
Definition
hdw-led.h:63
node_t
struct node node_t
A node in a doubly linked list with pointers to the previous and next values (which may be NULL),...
menuMegaRenderer_t::batt
wsg_t batt[4]
Images for the battery levels.
Definition
menuMegaRenderer.h:51
setBodyHeight
void setBodyHeight(menuMegaRenderer_t *renderer, int16_t height)
Set the height of the body between top and bottom decorated parts If the given height is negative,...
Definition
menuMegaRenderer.c:215
drawMenuBody
void drawMenuBody(uint16_t topLeftX, uint16_t topLeftY, uint8_t expansionHeight, bool flipLR, menuMegaRenderer_t *renderer)
Draw the menu body background.
Definition
menuMegaRenderer.c:368
menuMegaRenderer_t::bgColorTimer
int32_t bgColorTimer
A timer to increment bgColorDeg in order to cycle through bgColors.
Definition
menuMegaRenderer.h:73
menuMegaRenderer_t::bgColorIdx
int32_t bgColorIdx
The current index into bgColors.
Definition
menuMegaRenderer.h:77
menuMegaRenderer_t::leds
led_t leds[CONFIG_NUM_LEDS]
An array with the RGB LED state to be output.
Definition
menuMegaRenderer.h:79
menuMegaRenderer_t::conveyorBeltStyle
bool conveyorBeltStyle
true to draw a sliding background and sliding lights
Definition
menuMegaRenderer.h:84
menuMegaRenderer_t::submenu
wsg_t submenu
A double right arrow (enter submenu).
Definition
menuMegaRenderer.h:49
menuMegaRenderer_t::menuFontAllocated
bool menuFontAllocated
Definition
menuMegaRenderer.h:63
menuMegaRenderer_t::drawBody
bool drawBody
true to draw the sci-fi rectangle body background, false to skip it
Definition
menuMegaRenderer.h:82
menuMegaRenderer_t::titleFontAllocated
bool titleFontAllocated
Definition
menuMegaRenderer.h:59
initMenuMegaRenderer
menuMegaRenderer_t * initMenuMegaRenderer(font_t *titleFont, font_t *titleFontOutline, font_t *menuFont)
Initialize a and return a menu renderer.
Definition
menuMegaRenderer.c:65
deinitMenuMegaRenderer
void deinitMenuMegaRenderer(menuMegaRenderer_t *renderer)
Deinitialize a menu renderer and free associated memory. This will not free the font passed into init...
Definition
menuMegaRenderer.c:158
menuMegaRenderer_t::titleFontOutlineAllocated
bool titleFontOutlineAllocated
Definition
menuMegaRenderer.h:61
menuMegaRenderer_t::item_sel
wsg_t item_sel
Background image for the selected item.
Definition
menuMegaRenderer.h:44
menuMegaRenderer_t::palette
wsgPalette_t palette
A palette to recolor menu images with.
Definition
menuMegaRenderer.h:52
menuMegaRenderer_t::item
wsg_t item
Background image for non-selected items.
Definition
menuMegaRenderer.h:43
menuMegaRenderer_t::body_top
wsg_t body_top
The top part of the menu's background image.
Definition
menuMegaRenderer.h:41
menuMegaRenderer_t::body_bottom
wsg_t body_bottom
The bottom part of the menu's background image.
Definition
menuMegaRenderer.h:42
menuMegaRenderer_t::bgColorDeg
int32_t bgColorDeg
Definition
menuMegaRenderer.h:74
menuMegaRenderer_t::prev
wsg_t prev
A single left arrow (previous option).
Definition
menuMegaRenderer.h:48
menuMegaRenderer_t::bg
wsg_t bg
The screen's background image with cutout hexagons.
Definition
menuMegaRenderer.h:40
menuMegaRenderer_t::bodyHeight
uint16_t bodyHeight
the height of the middle portion of the body, between top and bottom decorated parts
Definition
menuMegaRenderer.h:83
menuMegaRenderer_t::up
wsg_t up
A single up arrow (previous page).
Definition
menuMegaRenderer.h:45
menuMegaRenderer_t::numBgColors
int32_t numBgColors
The number of colors in bgColors.
Definition
menuMegaRenderer.h:72
menuMegaRenderer_t::shadowMarqueeTimer
int32_t shadowMarqueeTimer
The timer for marquee-ing the selected item text, if too long to fit.
Definition
menuMegaRenderer.h:67
setDrawBody
void setDrawBody(menuMegaRenderer_t *renderer, bool drawBody)
Set whether or not to draw the sci-fi rectangle background body.
Definition
menuMegaRenderer.c:203
menuMegaRenderer_t::currentItem
node_t * currentItem
The currently selected menu item, resets selectedMarqueeTimer when changed.
Definition
menuMegaRenderer.h:69
menuMegaRenderer_t::down
wsg_t down
A single down arrow (next page).
Definition
menuMegaRenderer.h:46
menuMegaRenderer_t::yOff
int32_t yOff
An offset to the hexagons to make them scroll smoothly.
Definition
menuMegaRenderer.h:76
menuMegaRenderer_t::ledsOn
bool ledsOn
true if LEDs should be set by this renderer, false to leave LEDs alone
Definition
menuMegaRenderer.h:80
setMegaLedsOn
void setMegaLedsOn(menuMegaRenderer_t *renderer, bool ledsOn)
Set the renderer's LEDs to be on or off.
Definition
menuMegaRenderer.c:595
menuMegaRenderer_t::selectedMarqueeTimer
int32_t selectedMarqueeTimer
The timer for marquee-ing the selected item text, if too long to fit.
Definition
menuMegaRenderer.h:66
menuMegaRenderer_t::pageArrowTimer
int32_t pageArrowTimer
The timer for blinking page up/down arrows.
Definition
menuMegaRenderer.h:68
menuMegaRenderer_t::next
wsg_t next
A single right arrow (next option).
Definition
menuMegaRenderer.h:47
menuMegaRenderer_t::textOutlineColor
paletteColor_t textOutlineColor
The color to outline text with.
Definition
menuMegaRenderer.h:55
menuMegaRenderer_t::bgColors
const paletteColor_t * bgColors
A list of colors to cycle through for the background hexagons.
Definition
menuMegaRenderer.h:71
menuMegaRenderer_t::titleFont
font_t * titleFont
The font to render the title with.
Definition
menuMegaRenderer.h:56
menuMegaRenderer_t::menuFont
font_t * menuFont
The font to render the menu with.
Definition
menuMegaRenderer.h:58
recolorMenuMegaRenderer
void recolorMenuMegaRenderer(menuMegaRenderer_t *renderer, paletteColor_t textFill, paletteColor_t textOutline, paletteColor_t hexaBackground, paletteColor_t bodyBackground, paletteColor_t bodyAccentDark, paletteColor_t bodyAccentLight, paletteColor_t bodyArrowBg, paletteColor_t rowUnselectedBg, paletteColor_t rowUnselectedShadow, paletteColor_t rowSelectedBg, paletteColor_t rowSelectedAccent, paletteColor_t rowSelectedOutline, paletteColor_t rowArrowBg, const paletteColor_t *bgColors, int32_t numBgColors)
Recolor the Mega menu renderer.
Definition
menuMegaRenderer.c:247
menuMegaRenderer_t::textFillColor
paletteColor_t textFillColor
The color to fill text with.
Definition
menuMegaRenderer.h:54
menuMegaRenderer_t::back
wsg_t back
A double left arrow (exit submenu).
Definition
menuMegaRenderer.h:50
menuMegaRenderer_t::titleFontOutline
font_t * titleFontOutline
The font to render the title outline with.
Definition
menuMegaRenderer.h:57
drawMenuMega
void drawMenuMega(menu_t *menu, menuMegaRenderer_t *renderer, int64_t elapsedUs)
Draw a themed menu to the display and control the LEDs.
Definition
menuMegaRenderer.c:395
menuMegaRenderer_t
A struct containing all the state data to render a mega-style menu and LEDs.
Definition
menuMegaRenderer.h:39
menu.h
menu_t
struct _menu_t menu_t
The underlying data for a menu. This fundamentally is a list of menuItem_t.
Definition
menu.h:153
paletteColor_t
paletteColor_t
All 216 possible colors, named like cRGB.
Definition
palette.h:23
wsgPalette.h
Provides palette swap functionality for Swadge.
wsgPalette_t
Definition
wsgPalette.h:74
wsg_t
A sprite using paletteColor_t colors that can be drawn to the display.
Definition
wsg.h:57
main
utils
menu
menuMegaRenderer.h
Generated by
1.17.0