aboutsummaryrefslogtreecommitdiff
path: root/quantum/rgblight
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/rgblight')
-rw-r--r--quantum/rgblight/rgblight.c22
-rw-r--r--quantum/rgblight/rgblight.h7
-rw-r--r--quantum/rgblight/rgblight_drivers.c2
-rw-r--r--quantum/rgblight/rgblight_drivers.h1
4 files changed, 15 insertions, 17 deletions
diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c
index 530cb04688..62137c020b 100644
--- a/quantum/rgblight/rgblight.c
+++ b/quantum/rgblight/rgblight.c
@@ -145,6 +145,15 @@ __attribute__((weak)) RGB rgblight_hsv_to_rgb(HSV hsv) {
return hsv_to_rgb(hsv);
}
+void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1) {
+ led1->r = r;
+ led1->g = g;
+ led1->b = b;
+#ifdef RGBW
+ led1->w = 0;
+#endif
+}
+
void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) {
HSV hsv = {hue, sat, val};
RGB rgb = rgblight_hsv_to_rgb(hsv);
@@ -155,15 +164,6 @@ void sethsv(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) {
sethsv_raw(hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val, led1);
}
-void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1) {
- led1->r = r;
- led1->g = g;
- led1->b = b;
-#ifdef RGBW
- led1->w = 0;
-#endif
-}
-
void rgblight_check_config(void) {
/* Add some out of bound checks for RGB light config */
@@ -243,6 +243,8 @@ void rgblight_init(void) {
rgblight_timer_init(); // setup the timer
+ rgblight_driver.init();
+
if (rgblight_config.enable) {
rgblight_mode_noeeprom(rgblight_config.mode);
}
@@ -1566,4 +1568,4 @@ uint8_t rgblight_velocikey_match_speed(uint8_t minValue, uint8_t maxValue) {
return MAX(minValue, maxValue - (maxValue - minValue) * ((float)typing_speed / TYPING_SPEED_MAX_VALUE));
}
-#endif \ No newline at end of file
+#endif
diff --git a/quantum/rgblight/rgblight.h b/quantum/rgblight/rgblight.h
index 9e2b073776..0ed67ff6e3 100644
--- a/quantum/rgblight/rgblight.h
+++ b/quantum/rgblight/rgblight.h
@@ -240,8 +240,6 @@ void rgblight_unblink_all_but_layer(uint8_t layer);
#endif
-extern rgb_led_t led[RGBLIGHT_LED_COUNT];
-
extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM;
extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM;
extern const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[3] PROGMEM;
@@ -290,11 +288,6 @@ typedef struct _rgblight_ranges_t {
extern rgblight_ranges_t rgblight_ranges;
-/* === Utility Functions ===*/
-void sethsv(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1);
-void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1); // without RGBLIGHT_LIMIT_VAL check
-void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1);
-
/* === Low level Functions === */
void rgblight_set(void);
void rgblight_set_clipping_range(uint8_t start_pos, uint8_t num_leds);
diff --git a/quantum/rgblight/rgblight_drivers.c b/quantum/rgblight/rgblight_drivers.c
index 45b60e1a5f..8902b8f842 100644
--- a/quantum/rgblight/rgblight_drivers.c
+++ b/quantum/rgblight/rgblight_drivers.c
@@ -7,6 +7,7 @@
# include "ws2812.h"
const rgblight_driver_t rgblight_driver = {
+ .init = ws2812_init,
.setleds = ws2812_setleds,
};
@@ -14,6 +15,7 @@ const rgblight_driver_t rgblight_driver = {
# include "apa102.h"
const rgblight_driver_t rgblight_driver = {
+ .init = apa102_init,
.setleds = apa102_setleds,
};
diff --git a/quantum/rgblight/rgblight_drivers.h b/quantum/rgblight/rgblight_drivers.h
index f7125a6f3d..af28b918e1 100644
--- a/quantum/rgblight/rgblight_drivers.h
+++ b/quantum/rgblight/rgblight_drivers.h
@@ -7,6 +7,7 @@
#include "color.h"
typedef struct {
+ void (*init)(void);
void (*setleds)(rgb_led_t *ledarray, uint16_t number_of_leds);
} rgblight_driver_t;