Merge lp:~sammyshp/flashlight-firmware/smooth-sunset-v2 into lp:~toykeeper/flashlight-firmware/anduril2

Proposed by Sven Greiner
Status: Needs review
Proposed branch: lp:~sammyshp/flashlight-firmware/smooth-sunset-v2
Merge into: lp:~toykeeper/flashlight-firmware/anduril2
Diff against target: 94 lines (+23/-5)
3 files modified
ToyKeeper/spaghetti-monster/anduril/ramp-mode.c (+17/-5)
ToyKeeper/spaghetti-monster/anduril/ramp-mode.h (+5/-0)
ToyKeeper/spaghetti-monster/anduril/sunset-timer.c (+1/-0)
To merge this branch: bzr merge lp:~sammyshp/flashlight-firmware/smooth-sunset-v2
Reviewer Review Type Date Requested Status
Selene ToyKeeper Pending
Review via email: mp+407818@code.launchpad.net

Description of the change

Increase resolution of sunset timer steps for smoother fading.

To post a comment you must log in.

Unmerged revisions

620. By Sven Greiner

Fix ramping in sunset mode

619. By Sven Greiner

Add more steps to sunset mode

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ToyKeeper/spaghetti-monster/anduril/ramp-mode.c'
2--- ToyKeeper/spaghetti-monster/anduril/ramp-mode.c 2021-08-23 10:24:08 +0000
3+++ ToyKeeper/spaghetti-monster/anduril/ramp-mode.c 2021-08-30 08:47:10 +0000
4@@ -47,7 +47,6 @@
5
6 #ifdef USE_SUNSET_TIMER
7 // handle the shutoff timer first
8- static uint8_t timer_orig_level = 0;
9 uint8_t sunset_active = sunset_timer; // save for comparison
10 // clock tick
11 sunset_timer_state(event, arg);
12@@ -128,7 +127,7 @@
13 set_level_and_therm_target(memorized_level);
14 }
15 #ifdef USE_SUNSET_TIMER
16- timer_orig_level = actual_level;
17+ reset_sunset_timer();
18 #endif
19 return MISCHIEF_MANAGED;
20 }
21@@ -208,7 +207,7 @@
22 #endif
23 set_level_and_therm_target(memorized_level);
24 #ifdef USE_SUNSET_TIMER
25- timer_orig_level = actual_level;
26+ reset_sunset_timer();
27 #endif
28 return MISCHIEF_MANAGED;
29 }
30@@ -229,7 +228,10 @@
31 #ifdef USE_SUNSET_TIMER
32 // reduce output if shutoff timer is active
33 if (sunset_timer) {
34- uint8_t dimmed_level = timer_orig_level * (sunset_timer-1) / sunset_timer_peak;
35+ uint8_t dimmed_level = timer_orig_level * sunset_timer / sunset_timer_peak;
36+ const uint8_t dimmed_level_next = timer_orig_level * (sunset_timer-1) / sunset_timer_peak;
37+ const uint8_t dimmed_level_delta = dimmed_level - dimmed_level_next;
38+ dimmed_level -= dimmed_level_delta * (sunset_ticks/TICKS_PER_SECOND) / 60;
39 if (dimmed_level < 1) dimmed_level = 1;
40 #ifdef USE_SET_LEVEL_GRADUALLY
41 set_level_gradually(dimmed_level);
42@@ -353,7 +355,7 @@
43 memorized_level = nearest_level(actual_level);
44 set_level_and_therm_target(memorized_level);
45 #ifdef USE_SUNSET_TIMER
46- timer_orig_level = actual_level;
47+ reset_sunset_timer();
48 #endif
49 return MISCHIEF_MANAGED;
50 }
51@@ -552,6 +554,16 @@
52 #define set_level_and_therm_target(level) set_level(level)
53 #endif
54
55+#ifdef USE_SUNSET_TIMER
56+void reset_sunset_timer() {
57+ if (sunset_timer) {
58+ timer_orig_level = actual_level;
59+ sunset_timer_peak = sunset_timer;
60+ sunset_ticks = 0;
61+ }
62+}
63+#endif
64+
65
66 #endif
67
68
69=== modified file 'ToyKeeper/spaghetti-monster/anduril/ramp-mode.h'
70--- ToyKeeper/spaghetti-monster/anduril/ramp-mode.h 2021-08-23 10:24:08 +0000
71+++ ToyKeeper/spaghetti-monster/anduril/ramp-mode.h 2021-08-30 08:47:10 +0000
72@@ -197,5 +197,10 @@
73 uint8_t globals_config_state(Event event, uint16_t arg);
74 #endif
75
76+#ifdef USE_SUNSET_TIMER
77+uint8_t timer_orig_level = 0;
78+void reset_sunset_timer();
79+#endif
80+
81
82 #endif
83
84=== modified file 'ToyKeeper/spaghetti-monster/anduril/sunset-timer.c'
85--- ToyKeeper/spaghetti-monster/anduril/sunset-timer.c 2020-08-07 03:22:32 +0000
86+++ ToyKeeper/spaghetti-monster/anduril/sunset-timer.c 2021-08-30 08:47:10 +0000
87@@ -41,6 +41,7 @@
88 if ((sunset_timer > 0) && (sunset_timer < 4)) {
89 sunset_timer = 3;
90 sunset_timer_peak = 3;
91+ sunset_ticks = 0;
92 }
93 }
94 // 5H: add 5m to timer, per second, until released

Subscribers

People subscribed via source and target branches

to status/vote changes: