Swadge ESP32-S2
APIs to develop for the Magfest Swadge
Toggle main menu visibility
Loading...
Searching...
No Matches
menuZorldoRenderer.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 "
vector2d.h
"
34
#include "
wsgPalette.h
"
35
36
typedef
struct
37
{
38
float
x
;
39
int16_t
y
;
40
float
speed
;
41
wsg_t
wsg
;
42
bool
mirrored
;
43
}
menuZorldoCloud_t
;
44
48
typedef
struct
49
{
50
wsg_t
corner
;
51
wsg_t
ewi
;
52
wsg_t
battery
;
53
wsg_t
tomi
;
54
55
wsg_t
arrowPageUp
;
56
wsg_t
arrowRight
;
57
wsg_t
arrowSubmenu
;
58
59
paletteColor_t
textFillColor
;
60
paletteColor_t
textOutlineColor
;
61
font_t
*
titleFont
;
62
font_t
*
menuFont
;
63
bool
titleFontAllocated
;
65
bool
menuFontAllocated
;
67
68
int32_t
selectedMarqueeTimer
;
69
int32_t
shadowMarqueeTimer
;
70
int32_t
pageArrowTimer
;
71
node_t
*
currentItem
;
72
73
menuZorldoCloud_t
clouds
[4];
74
float
tomiYPos
;
75
float
tomiYTarget
;
76
float
tomiXDegrees
;
77
float
tomiYDegrees
;
78
79
led_t
leds
[CONFIG_NUM_LEDS];
80
bool
ledsOn
;
81
82
bool
drawBody
;
83
uint16_t
bodyHeight
;
84
}
menuZorldoRenderer_t
;
85
86
menuZorldoRenderer_t
*
initMenuZorldoRenderer
(
font_t
* titleFont,
font_t
* menuFont);
87
void
deinitMenuZorldoRenderer
(
menuZorldoRenderer_t
* renderer);
88
void
drawMenuZorldoBody
(uint16_t topLeftX, uint16_t topLeftY,
menuZorldoRenderer_t
* renderer, int64_t elapsedUs);
89
void
drawMenuZorldo
(
menu_t
* menu,
menuZorldoRenderer_t
* renderer, int64_t elapsedUs);
90
void
setZorldoLedsOn
(
menuZorldoRenderer_t
* renderer,
bool
ledsOn);
91
void
setDrawMenuZorldoBody
(
menuZorldoRenderer_t
* renderer,
bool
drawBody);
92
void
setMenuZorldoBodyHeight
(
menuZorldoRenderer_t
* renderer, int16_t height);
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),...
menuZorldoRenderer_t::clouds
menuZorldoCloud_t clouds[4]
Clouds to drift behind the menu.
Definition
menuZorldoRenderer.h:73
drawMenuZorldo
void drawMenuZorldo(menu_t *menu, menuZorldoRenderer_t *renderer, int64_t elapsedUs)
Draw a themed menu to the display and control the LEDs.
Definition
menuZorldoRenderer.c:420
menuZorldoRenderer_t::leds
led_t leds[CONFIG_NUM_LEDS]
An array with the RGB LED state to be output.
Definition
menuZorldoRenderer.h:79
setDrawMenuZorldoBody
void setDrawMenuZorldoBody(menuZorldoRenderer_t *renderer, bool drawBody)
Set whether or not to draw the menu background.
Definition
menuZorldoRenderer.c:191
menuZorldoRenderer_t::menuFontAllocated
bool menuFontAllocated
Definition
menuZorldoRenderer.h:65
menuZorldoRenderer_t::drawBody
bool drawBody
true to draw the body background, false to skip it
Definition
menuZorldoRenderer.h:82
deinitMenuZorldoRenderer
void deinitMenuZorldoRenderer(menuZorldoRenderer_t *renderer)
Deinitialize a menu renderer and free associated memory. This will not free the font passed into init...
Definition
menuZorldoRenderer.c:154
menuZorldoRenderer_t::titleFontAllocated
bool titleFontAllocated
Definition
menuZorldoRenderer.h:63
menuZorldoRenderer_t::tomiYTarget
float tomiYTarget
Y position Tomi is moving towards. Will match the selected menu item.
Definition
menuZorldoRenderer.h:75
menuZorldoRenderer_t::tomiXDegrees
float tomiXDegrees
Sine degrees for Tomi's x offset.
Definition
menuZorldoRenderer.h:76
menuZorldoRenderer_t::corner
wsg_t corner
The corner cap for the border.
Definition
menuZorldoRenderer.h:50
menuZorldoRenderer_t::arrowSubmenu
wsg_t arrowSubmenu
A double right arrow (enter submenu). Mirror it for...you know.
Definition
menuZorldoRenderer.h:57
setMenuZorldoBodyHeight
void setMenuZorldoBodyHeight(menuZorldoRenderer_t *renderer, int16_t height)
Set the height of the body between top and bottom decorated parts If the given height is negative,...
Definition
menuZorldoRenderer.c:203
menuZorldoRenderer_t::battery
wsg_t battery
Battery container.
Definition
menuZorldoRenderer.h:52
drawMenuZorldoBody
void drawMenuZorldoBody(uint16_t topLeftX, uint16_t topLeftY, menuZorldoRenderer_t *renderer, int64_t elapsedUs)
Draw the menu body background.
Definition
menuZorldoRenderer.c:341
menuZorldoRenderer_t::bodyHeight
uint16_t bodyHeight
the height of the middle portion of the body, between top and bottom decorated parts
Definition
menuZorldoRenderer.h:83
menuZorldoRenderer_t::tomiYPos
float tomiYPos
Tomi's Y position.
Definition
menuZorldoRenderer.h:74
menuZorldoCloud_t::speed
float speed
Speed in px/us.
Definition
menuZorldoRenderer.h:40
menuZorldoCloud_t::mirrored
bool mirrored
Definition
menuZorldoRenderer.h:42
menuZorldoRenderer_t::shadowMarqueeTimer
int32_t shadowMarqueeTimer
The timer for marquee-ing the selected item text, if too long to fit.
Definition
menuZorldoRenderer.h:69
menuZorldoRenderer_t::arrowRight
wsg_t arrowRight
A single right arrow (next option). Mirror it for left.
Definition
menuZorldoRenderer.h:56
menuZorldoRenderer_t::tomi
wsg_t tomi
Hey! Listen!
Definition
menuZorldoRenderer.h:53
menuZorldoRenderer_t::currentItem
node_t * currentItem
The currently selected menu item, resets selectedMarqueeTimer when changed.
Definition
menuZorldoRenderer.h:71
menuZorldoRenderer_t::arrowPageUp
wsg_t arrowPageUp
A single up arrow (previous page). Mirror it for down.
Definition
menuZorldoRenderer.h:55
menuZorldoCloud_t::wsg
wsg_t wsg
Definition
menuZorldoRenderer.h:41
menuZorldoRenderer_t::ledsOn
bool ledsOn
true if LEDs should be set by this renderer, false to leave LEDs alone
Definition
menuZorldoRenderer.h:80
menuZorldoRenderer_t::selectedMarqueeTimer
int32_t selectedMarqueeTimer
The timer for marquee-ing the selected item text, if too long to fit.
Definition
menuZorldoRenderer.h:68
menuZorldoRenderer_t::pageArrowTimer
int32_t pageArrowTimer
The timer for blinking page up/down arrows.
Definition
menuZorldoRenderer.h:70
menuZorldoRenderer_t::tomiYDegrees
float tomiYDegrees
Sine degrees for Tomi's y offset.
Definition
menuZorldoRenderer.h:77
menuZorldoCloud_t::x
float x
Definition
menuZorldoRenderer.h:38
menuZorldoRenderer_t::textOutlineColor
paletteColor_t textOutlineColor
The color to outline text with.
Definition
menuZorldoRenderer.h:60
menuZorldoRenderer_t::ewi
wsg_t ewi
Ewi Of Time.
Definition
menuZorldoRenderer.h:51
initMenuZorldoRenderer
menuZorldoRenderer_t * initMenuZorldoRenderer(font_t *titleFont, font_t *menuFont)
Initialize a and return a menu renderer.
Definition
menuZorldoRenderer.c:81
menuZorldoRenderer_t::titleFont
font_t * titleFont
The font to render the title with.
Definition
menuZorldoRenderer.h:61
menuZorldoRenderer_t::menuFont
font_t * menuFont
The font to render the menu with.
Definition
menuZorldoRenderer.h:62
menuZorldoRenderer_t::textFillColor
paletteColor_t textFillColor
The color to fill text with.
Definition
menuZorldoRenderer.h:59
setZorldoLedsOn
void setZorldoLedsOn(menuZorldoRenderer_t *renderer, bool ledsOn)
Set the renderer's LEDs to be on or off.
Definition
menuZorldoRenderer.c:613
menuZorldoCloud_t::y
int16_t y
Definition
menuZorldoRenderer.h:39
menuZorldoCloud_t
Definition
menuZorldoRenderer.h:37
menuZorldoRenderer_t
A struct containing all the state data to render a Zorldo-style menu and LEDs.
Definition
menuZorldoRenderer.h:49
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
vector2d.h
wsgPalette.h
Provides palette swap functionality for Swadge.
wsg_t
A sprite using paletteColor_t colors that can be drawn to the display.
Definition
wsg.h:57
main
utils
menu
menuZorldoRenderer.h
Generated by
1.17.0