aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/fsm-misc.h
blob: 68929c2432d1e591575dbb2edd959fd4b6a4e8b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// fsm-misc.h: Miscellaneous function for SpaghettiMonster.
// Copyright (C) 2017-2023 Selene ToyKeeper
// SPDX-License-Identifier: GPL-3.0-or-later

#pragma once

#ifdef USE_DYNAMIC_UNDERCLOCKING
void auto_clock_speed();
#endif

#if defined(USE_BLINK_NUM) || defined(USE_BLINK_DIGIT)
#ifndef BLINK_BRIGHTNESS
#define BLINK_BRIGHTNESS (MAX_LEVEL/6)
#endif
uint8_t blink_digit(uint8_t num);
#endif

#ifdef USE_BLINK_NUM
//#define USE_BLINK
uint8_t blink_num(uint8_t num);
#endif

/*
#ifdef USE_BLINK
uint8_t blink(uint8_t num, uint8_t speed);
#endif
*/

#ifdef USE_INDICATOR_LED
// FIXME: Remove this, replace with button_led()
// lvl: 0=off, 1=low, 2=high
void indicator_led(uint8_t lvl);
#endif

#ifdef USE_BUTTON_LED
// lvl: 0=off, 1=low, 2=high
void button_led_set(uint8_t lvl);
#endif

// if any type of aux LEDs exist, define a shorthand flag for it
#if defined(USE_INDICATOR_LED) || defined(USE_AUX_RGB_LEDS) || defined(USE_BUTTON_LED)
#define HAS_AUX_LEDS
#endif

#ifdef USE_AUX_RGB_LEDS
// value: 0b00BBGGRR
// each pair of bits: 0=off, 1=low, 2=high
void rgb_led_set(uint8_t value);
#endif

#ifdef USE_TRIANGLE_WAVE
uint8_t triangle_wave(uint8_t phase);
#endif

#ifdef USE_REBOOT
void reboot();
#endif