Kaleidoscope-LEDControl¶
This is a plugin for Kaleidoscope, for controlling the LEDs, and LED effects. It is also a building block for plugins that control LEDs.
Using the extension¶
Plugin methods¶
.next_mode(void)
¶
Activates the next LED mode. Cycles to the first LED mode if the current LED mode is the last one.
.prev_mode(void)
¶
Activates the previous LED mode. Cycles to the last LED mode if the current LED mode is the first one.
.get_mode()
¶
Returns the current LED mode.
.get_mode<typename>()
¶
.set_mode(uint8_t mode_id)
¶
Activates a LED mode by its index in the firmware. If the index exceeds the numer of led modes, the method returns early.
.get_mode_index()
¶
Returns the index of the currently active LED mode.
.refreshAll()
¶
If the hardware has LEDs and LEDs are enabled, turn all LEDs off and then trigger the current LED mode to refresh.
.setCrgbAt(uint8_t led_index, cRGB crgb)
¶
Sets the specified LED to the provided color.
.setCrgbAt(KeyAddr key_addr, cRGB color)
¶
Sets the LED for the specified key to the provided color.
.getCrgbAt(uint8_t led_index)
¶
Get the LED color of the specified LED.
.getCrgbAt(KeyAddr key_addr)
¶
Get the LED color of the LED for the specified key.
.syncLeds(void)
¶
Force an update of all LEDs.
.set_all_leds_to(uint8_t r, uint8_t g, uint8_t b)
¶
Set all LEDs using the provided rgb values.
.set_all_leds_to(cRGB color)
¶
Set all LEDs to the specified color.
.setSyncInterval(uint8_t interval)
¶
Set the interval at which the LEDs should sync, in milliseconds.
Note: LED updates are considered on each cycle of the runtime. Because of that, the interval effectively means that at least
interval
milliseconds has passed before LEDs are synced.
.setBrightness(uint8_t brightness)
¶
Set the brightness for all LEDs.
.getBrightness()
¶
Returns the current brightness of the LEDs as a uint8_t.
.onSetup()
¶
See [[event-handler-hooks]]
.setup(void)
¶
.onKeyEvent(KeyEvent &event)
¶
See [[event-handler-hooks]]
.afterEachCycle()
¶
See [[event-handler-hooks]]
.update(void)
¶
Triggers the currently active LED mode to update. It is up to the LED mode to handle this correctly.
.refreshAt(KeyAddr key_addr)
¶
Triggers the currently active LED mode to refresh the LED at the specified key address.
.activate(LEDModeInterface *plugin)
¶
.disable()
¶
Turn off all LEDs and disables updating LEDs
.enable()
¶
Enables updating LEDs and calls
refreshAll()
.isEnabled()
¶
Returns a bool value reflecting whether LEDs are currently enabled.