Files
hsc26-artemis2/firmware/app/ui/temp_ui.c
2026-05-09 10:02:46 -07:00

130 lines
2.4 KiB
C

/*
* temp_ui.c: temporary ui shit until I can write something better
*/
#include "ch32x035_conf.h"
#include "btn.h"
#include "led/matrix.h"
#include "led/ledprog.h"
static uint32_t brt = 28;
uint8_t ribbon_prog = 0;
uint8_t aii_prog = 0;
static void brt_set(uint8_t idx)
{
switch (idx) {
case 1: {
if (brt > 4)
brt--;
break;
}
case 2: {
brt++;
if (brt > 44) brt = 44;
break;
}
}
aw20x_set_dim_global(&awled, brt);
}
static void prog_set(uint8_t idx)
{
switch (idx) {
case 3: { // trio bottom left
ribbon_prog = 0;
lp_ribbon_init();
break;
}
case 4: { // trio upper
ribbon_prog = 1;
lp_ribbon_init();
break;
}
case 5: { // da erf
ribbon_prog = 3;
lp_ribbon_init();
break;
}
case 6: { // big crater
aii_prog = 1;
lp_aii_init();
break;
}
case 7: { // next to big crater
aii_prog = 2;
lp_aii_init();
break;
}
case 8: { // bottom crater
aii_prog = 0;
lp_aii_init();
break;
}
case 9: { // trio right
ribbon_prog = 2;
lp_ribbon_init();
break;
}
}
}
void tempui_init()
{
int i;
btn[2].cb_push = brt_set;
btn[2].cb_hold = brt_set;
btn[2].repeat = 200;
btn[1].cb_push = brt_set;
btn[1].cb_hold = brt_set;
btn[1].repeat = 200;
for (i = 3; i < 10; i++) {
btn[i].cb_push = prog_set;
}
}
void tempui_lp_runprog()
{
switch (ribbon_prog) {
case 0: {
lp_ribbon_upward(400, 3, 4);
break;
}
case 1: {
lp_ribbon_upward(800, 1, 2);
break;
}
case 2: {
lp_ribbon_upward(1500, 4, 7);
break;
}
case 3: {
lp_ribbon_twinkle(3, 0x5f, 0x1f, 0xfd);
break;
}
}
switch (aii_prog) {
case 0: {
// do nothing
break;
}
case 1: {
lp_aii_filldown(800, 14, 1200, 3, 0x60);
break;
}
case 2: {
lp_aii_bounce(7, 0x3f, 2, 3);
}
}
}