summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorKemoNine <mcrosson@kemonine.info>2020-12-15 06:00:52 +0000
committerPete Johanson <peter@peterjohanson.com>2021-01-08 16:08:13 -0500
commit99f932a47d4705c7ddde83256fada9aa7aa3bda6 (patch)
tree1fd1e7637d418c3b54dce38023651aa48d301e98 /app/src
parent167600f01d0000539bf1f963dbcee0d9b15600cc (diff)
(feat) Allow setting underglow color by key press
Diffstat (limited to 'app/src')
-rw-r--r--app/src/behaviors/behavior_rgb_underglow.c25
-rw-r--r--app/src/rgb_underglow.c13
2 files changed, 27 insertions, 11 deletions
diff --git a/app/src/behaviors/behavior_rgb_underglow.c b/app/src/behaviors/behavior_rgb_underglow.c
index 399123a..07f2494 100644
--- a/app/src/behaviors/behavior_rgb_underglow.c
+++ b/app/src/behaviors/behavior_rgb_underglow.c
@@ -21,28 +21,31 @@ static int behavior_rgb_underglow_init(const struct device *dev) { return 0; }
static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding,
struct zmk_behavior_binding_event event) {
switch (binding->param1) {
- case RGB_TOG:
+ case RGB_TOG_CMD:
return zmk_rgb_underglow_toggle();
- case RGB_HUI:
+ case RGB_HUI_CMD:
return zmk_rgb_underglow_change_hue(1);
- case RGB_HUD:
+ case RGB_HUD_CMD:
return zmk_rgb_underglow_change_hue(-1);
- case RGB_SAI:
+ case RGB_SAI_CMD:
return zmk_rgb_underglow_change_sat(1);
- case RGB_SAD:
+ case RGB_SAD_CMD:
return zmk_rgb_underglow_change_sat(-1);
- case RGB_BRI:
+ case RGB_BRI_CMD:
return zmk_rgb_underglow_change_brt(1);
- case RGB_BRD:
+ case RGB_BRD_CMD:
return zmk_rgb_underglow_change_brt(-1);
- case RGB_SPI:
+ case RGB_SPI_CMD:
return zmk_rgb_underglow_change_spd(1);
- case RGB_SPD:
+ case RGB_SPD_CMD:
return zmk_rgb_underglow_change_spd(-1);
- case RGB_EFF:
+ case RGB_EFF_CMD:
return zmk_rgb_underglow_cycle_effect(1);
- case RGB_EFR:
+ case RGB_EFR_CMD:
return zmk_rgb_underglow_cycle_effect(-1);
+ case RGB_COLOR_HSB_CMD:
+ return zmk_rgb_underglow_set_hsb((binding->param2 >> 16) & 0xFFFF,
+ (binding->param2 >> 8) & 0xFF, binding->param2 & 0xFF);
}
return -ENOTSUP;
diff --git a/app/src/rgb_underglow.c b/app/src/rgb_underglow.c
index 73a5c5e..a2c02ed 100644
--- a/app/src/rgb_underglow.c
+++ b/app/src/rgb_underglow.c
@@ -346,6 +346,19 @@ int zmk_rgb_underglow_toggle() {
return zmk_rgb_underglow_save_state();
}
+int zmk_rgb_underglow_set_hsb(uint16_t hue, uint8_t saturation, uint8_t brightness) {
+ if (hue > 360 || saturation > 100 || brightness > 100) {
+ return -ENOTSUP;
+ }
+
+ state.hue = hue;
+ state.saturation = saturation;
+ state.brightness = brightness;
+ state.current_effect = UNDERGLOW_EFFECT_SOLID;
+
+ return 0;
+}
+
int zmk_rgb_underglow_change_hue(int direction) {
if (!led_strip)
return -ENODEV;