aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/fsm-ramping.c
diff options
context:
space:
mode:
authorSelene ToyKeeper2023-04-25 01:07:15 -0600
committerSelene ToyKeeper2023-04-25 01:07:15 -0600
commit5f6bb2bda2dd4eccbdfba94e5d35cedc8c0c42dc (patch)
tree37ceff579db3293ea44947d6426873afd04e2065 /spaghetti-monster/fsm-ramping.c
parentadded stepped tint ramping (diff)
downloadanduril-5f6bb2bda2dd4eccbdfba94e5d35cedc8c0c42dc.tar.gz
anduril-5f6bb2bda2dd4eccbdfba94e5d35cedc8c0c42dc.tar.bz2
anduril-5f6bb2bda2dd4eccbdfba94e5d35cedc8c0c42dc.zip
updated D4Sv2-tintramp -> Emisar 2-channel build target ...
... and reworked how gradual_tick() works ... and updated LT1S Pro to use new method
Diffstat (limited to '')
-rw-r--r--spaghetti-monster/fsm-ramping.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/spaghetti-monster/fsm-ramping.c b/spaghetti-monster/fsm-ramping.c
index 280e4b3..393c425 100644
--- a/spaghetti-monster/fsm-ramping.c
+++ b/spaghetti-monster/fsm-ramping.c
@@ -398,9 +398,20 @@ inline void set_level_gradually(uint8_t lvl) {
// call this every frame or every few frames to change brightness very smoothly
void gradual_tick() {
+ uint8_t gt = gradual_target;
+ if (gt < actual_level) gt = actual_level - 1;
+ else if (gt > actual_level) gt = actual_level + 1;
+ gt --;
+
// call the relevant hardware-specific function
GradualTickFuncPtr gradual_tick_func = gradual_tick_modes[CH_MODE];
- gradual_tick_func();
+ bool done = gradual_tick_func(gt);
+
+ if (done) {
+ uint8_t orig = gradual_target;
+ set_level(gt + 1);
+ gradual_target = orig;
+ }
}