aboutsummaryrefslogtreecommitdiffstats
path: root/quantum
diff options
context:
space:
mode:
authorGravatar Drashna Jaelre <drashna@live.com>2020-05-18 06:05:35 -0700
committerGravatar GitHub <noreply@github.com>2020-05-18 06:05:35 -0700
commitd0e0202b272a28d6a1e7f0d059396067bb861272 (patch)
treefb1c7fc315cf53846bda0f55985232e71ee9ce82 /quantum
parente55d55edc08d5a5ca557e3ff442ca47ccd731067 (diff)
downloadqmk_firmware-d0e0202b272a28d6a1e7f0d059396067bb861272.tar.gz
Add query functions for RGB Light and RGB Matrix (#8960)
* Add additional query functions for RGBLIGHT * Add additional query functions for RGB Matrix * Change names of enable check functions * Fix macro for rgb matrix takeover of rgblight functions * Add documentation for rgb_matrix_get_hsv() * Add *_get_hsv function to rgblight
Diffstat (limited to 'quantum')
-rw-r--r--quantum/rgb_matrix.c11
-rw-r--r--quantum/rgb_matrix.h13
-rw-r--r--quantum/rgblight.c6
-rw-r--r--quantum/rgblight.h2
4 files changed, 32 insertions, 0 deletions
diff --git a/quantum/rgb_matrix.c b/quantum/rgb_matrix.c
index 3fae9d737..91032b656 100644
--- a/quantum/rgb_matrix.c
+++ b/quantum/rgb_matrix.c
@@ -440,6 +440,8 @@ void rgb_matrix_set_suspend_state(bool state) {
g_suspend_state = state;
}
+bool rgb_matrix_get_suspend_state(void) { return g_suspend_state; }
+
void rgb_matrix_toggle(void) {
rgb_matrix_config.enable ^= 1;
rgb_task_state = STARTING;
@@ -466,6 +468,8 @@ void rgb_matrix_disable_noeeprom(void) {
rgb_matrix_config.enable = 0;
}
+uint8_t rgb_matrix_is_enabled(void) { return rgb_matrix_config.enable; }
+
void rgb_matrix_step(void) {
rgb_matrix_config.mode++;
if (rgb_matrix_config.mode >= RGB_MATRIX_EFFECT_MAX) rgb_matrix_config.mode = 1;
@@ -521,6 +525,8 @@ void rgb_matrix_decrease_speed(void) {
eeconfig_update_rgb_matrix();
}
+uint8_t rgb_matrix_get_speed(void) { return rgb_matrix_config.speed; }
+
led_flags_t rgb_matrix_get_flags(void) { return rgb_effect_params.flags; }
void rgb_matrix_set_flags(led_flags_t flags) { rgb_effect_params.flags = flags; }
@@ -546,3 +552,8 @@ void rgb_matrix_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val) {
rgb_matrix_config.hsv.v = val;
if (rgb_matrix_config.hsv.v > RGB_MATRIX_MAXIMUM_BRIGHTNESS) rgb_matrix_config.hsv.v = RGB_MATRIX_MAXIMUM_BRIGHTNESS;
}
+
+HSV rgb_matrix_get_hsv(void) { return rgb_matrix_config.hsv; }
+uint8_t rgb_matrix_get_hue(void) { return rgb_matrix_config.hsv.h; }
+uint8_t rgb_matrix_get_sat(void) { return rgb_matrix_config.hsv.s; }
+uint8_t rgb_matrix_get_val(void) { return rgb_matrix_config.hsv.v; }
diff --git a/quantum/rgb_matrix.h b/quantum/rgb_matrix.h
index 96494836e..7c37311b4 100644
--- a/quantum/rgb_matrix.h
+++ b/quantum/rgb_matrix.h
@@ -104,11 +104,13 @@ void rgb_matrix_indicators_user(void);
void rgb_matrix_init(void);
void rgb_matrix_set_suspend_state(bool state);
+bool rgb_matrix_get_suspend_state(void);
void rgb_matrix_toggle(void);
void rgb_matrix_enable(void);
void rgb_matrix_enable_noeeprom(void);
void rgb_matrix_disable(void);
void rgb_matrix_disable_noeeprom(void);
+uint8_t rgb_matrix_is_enabled(void);
void rgb_matrix_step(void);
void rgb_matrix_step_reverse(void);
void rgb_matrix_increase_hue(void);
@@ -119,6 +121,7 @@ void rgb_matrix_increase_val(void);
void rgb_matrix_decrease_val(void);
void rgb_matrix_increase_speed(void);
void rgb_matrix_decrease_speed(void);
+uint8_t rgb_matrix_get_speed(void);
led_flags_t rgb_matrix_get_flags(void);
void rgb_matrix_set_flags(led_flags_t flags);
void rgb_matrix_mode(uint8_t mode);
@@ -126,6 +129,10 @@ void rgb_matrix_mode_noeeprom(uint8_t mode);
uint8_t rgb_matrix_get_mode(void);
void rgb_matrix_sethsv(uint16_t hue, uint8_t sat, uint8_t val);
void rgb_matrix_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val);
+HSV rgb_matrix_get_hsv(void);
+uint8_t rgb_matrix_get_hue(void);
+uint8_t rgb_matrix_get_sat(void);
+uint8_t rgb_matrix_get_val(void);
#ifndef RGBLIGHT_ENABLE
# define rgblight_toggle rgb_matrix_toggle
@@ -133,6 +140,7 @@ void rgb_matrix_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val);
# define rgblight_enable_noeeprom rgb_matrix_enable_noeeprom
# define rgblight_disable rgb_matrix_disable
# define rgblight_disable_noeeprom rgb_matrix_disable_noeeprom
+# define rgblight_is_enabled rgb_matrix_is_enabled
# define rgblight_step rgb_matrix_step
# define rgblight_sethsv rgb_matrix_sethsv
# define rgblight_sethsv_noeeprom rgb_matrix_sethsv_noeeprom
@@ -145,9 +153,14 @@ void rgb_matrix_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val);
# define rgblight_decrease_val rgb_matrix_decrease_val
# define rgblight_increase_speed rgb_matrix_increase_speed
# define rgblight_decrease_speed rgb_matrix_decrease_speed
+# define rgblight_get_speed rgb_matrix_get_speed
# define rgblight_mode rgb_matrix_mode
# define rgblight_mode_noeeprom rgb_matrix_mode_noeeprom
# define rgblight_get_mode rgb_matrix_get_mode
+# define rgblight_get_hue rgb_matrix_get_hue
+# define rgblight_get_sat rgb_matrix_get_sat
+# define rgblight_get_val rgb_matrix_get_val
+# define rgblight_get_hsv rgb_matrix_get_hsv
#endif
typedef struct {
diff --git a/quantum/rgblight.c b/quantum/rgblight.c
index 64123774c..b50be200e 100644
--- a/quantum/rgblight.c
+++ b/quantum/rgblight.c
@@ -368,6 +368,8 @@ void rgblight_disable_noeeprom(void) {
rgblight_set();
}
+bool rgblight_is_enabled(void) { return rgblight_config.enable; }
+
void rgblight_increase_hue_helper(bool write_to_eeprom) {
uint8_t hue = rgblight_config.hue + RGBLIGHT_HUE_STEP;
rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom);
@@ -522,6 +524,10 @@ uint8_t rgblight_get_sat(void) { return rgblight_config.sat; }
uint8_t rgblight_get_val(void) { return rgblight_config.val; }
+HSV rgblight_get_hsv(void) {
+ return (HSV){ rgblight_config.hue, rgblight_config.sat, rgblight_config.val };
+}
+
void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) {
if (!rgblight_config.enable) {
return;
diff --git a/quantum/rgblight.h b/quantum/rgblight.h
index 6fc3b6f17..c36b328a3 100644
--- a/quantum/rgblight.h
+++ b/quantum/rgblight.h
@@ -350,6 +350,8 @@ uint8_t rgblight_get_mode(void);
uint8_t rgblight_get_hue(void);
uint8_t rgblight_get_sat(void);
uint8_t rgblight_get_val(void);
+bool rgblight_is_enabled(void);
+HSV rgblight_get_hsv(void);
/* === qmk_firmware (core)internal Functions === */
void rgblight_init(void);