diff options
| author | Selene ToyKeeper | 2025-07-04 04:57:34 -0600 |
|---|---|---|
| committer | Selene ToyKeeper | 2025-07-04 04:57:34 -0600 |
| commit | 2b19de99a2c4acd8041a50593ff3a7586fe06a27 (patch) | |
| tree | 5ba7d4e4f2f2dcbade9b34b47035e207d65cc882 /fsm/ramping.c | |
| parent | Merge branch 'rgb-voltage-configurable' of github.com:SiteRelEnby/anduril int... (diff) | |
| download | anduril-2b19de99a2c4acd8041a50593ff3a7586fe06a27.tar.gz anduril-2b19de99a2c4acd8041a50593ff3a7586fe06a27.tar.bz2 anduril-2b19de99a2c4acd8041a50593ff3a7586fe06a27.zip | |
made new settings apply to all button LEDs on lights bigger than 8K ROM
This replaces "USE_CONFIGURABLE_RGB_VOLTAGE_LEVELS"
with "USE_AUX_THRESHOLD_CONFIG", which controls the brightness of
button LEDs while the main LEDs are on,
and during post-off voltage display.
Same basic concept, but works on single-color LEDs too,
and lets the user finally configure POVD thresholds.
The code for this is a bit messy, but the aux LED code as a whole
is pretty messy since it wasn't designed for the things it does now.
The entire thing needs a refactor or rewrite someday. But not today.
For now, this is just enough to make the pull request
cover more use cases before merging into trunk.
I've tested it on a variety of lights, but am not yet entirely
comfortable with it. However, it worked on at least these:
- 1-color button LED, no RGB
- front RGB, 1-color button LED
- front RGB, hardwired also to RGB button
- RGB button, no other aux
These may need extra changes,
and may have extra config options which do nothing...
- front RGB, no button LED
- 1-color front aux, no button LED
- no aux at all
- attiny85 lights (some could theoretically support the new options,
but none even try)
Diffstat (limited to '')
| -rw-r--r-- | fsm/ramping.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/fsm/ramping.c b/fsm/ramping.c index e0c391a..f8ca4ec 100644 --- a/fsm/ramping.c +++ b/fsm/ramping.c @@ -8,14 +8,20 @@ #ifdef HAS_AUX_LEDS inline void set_level_aux_leds(uint8_t level) { + #ifdef USE_AUX_THRESHOLD_CONFIG + #define AUX_BRIGHTNESS ((level > cfg.button_led_low_ramp_level) \ + << (level > cfg.button_led_high_ramp_level)) + #else + #define AUX_BRIGHTNESS ((level > 0) + (level > DEFAULT_LEVEL)) + #endif #ifdef USE_INDICATOR_LED_WHILE_RAMPING // use side-facing aux LEDs while main LEDs are on if (! go_to_standby) { #ifdef USE_INDICATOR_LED - indicator_led((level > 0) + (level > DEFAULT_LEVEL)); + indicator_led(AUX_BRIGHTNESS); #endif #ifdef USE_BUTTON_LED - button_led_set((level > 0) + (level > DEFAULT_LEVEL)); + button_led_set(AUX_BRIGHTNESS); #endif } #else // turn off front-facing aux LEDs while main LEDs are on @@ -27,12 +33,15 @@ inline void set_level_aux_leds(uint8_t level) { #ifdef USE_AUX_RGB_LEDS rgb_led_set(0); #ifdef USE_BUTTON_LED - button_led_set((level > 0) + (level > DEFAULT_LEVEL)); + button_led_set(AUX_BRIGHTNESS); #endif #endif } #endif #endif + #ifdef AUX_BRIGHTNESS + #undef AUX_BRIGHTNESS + #endif } #endif // ifdef HAS_AUX_LEDS @@ -41,9 +50,9 @@ inline void set_level_aux_leds(uint8_t level) { #include "anduril/aux-leds.h" // for rgb_led_voltage_readout() inline void set_level_aux_rgb_leds(uint8_t level) { if (! go_to_standby) { - #ifdef USE_CONFIGURABLE_RGB_VOLTAGE_LEVELS - if ((level > 0) && (actual_level > cfg.use_aux_rgb_leds_while_on_min_level)){ - rgb_led_voltage_readout(level > cfg.use_aux_rgb_leds_while_on); + #ifdef USE_AUX_THRESHOLD_CONFIG + if (level > cfg.button_led_low_ramp_level) { + rgb_led_voltage_readout(level > cfg.button_led_high_ramp_level); } #else if (level > 0) { @@ -56,7 +65,13 @@ inline void set_level_aux_rgb_leds(uint8_t level) { // some drivers can be wired with RGB or single color to button // ... so support both even though only one is connected #ifdef USE_BUTTON_LED + #ifdef USE_AUX_THRESHOLD_CONFIG + button_led_set( + (level > cfg.button_led_low_ramp_level) + << (level > cfg.button_led_high_ramp_level)); + #else button_led_set((level > 0) + (level > DEFAULT_LEVEL)); + #endif #endif } } |
