summaryrefslogtreecommitdiffstats
path: root/keyboards/canoe/canoe.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/canoe/canoe.c')
-rw-r--r--keyboards/canoe/canoe.c49
1 files changed, 40 insertions, 9 deletions
diff --git a/keyboards/canoe/canoe.c b/keyboards/canoe/canoe.c
index bc69df2e5e..a7427e1528 100644
--- a/keyboards/canoe/canoe.c
+++ b/keyboards/canoe/canoe.c
@@ -42,24 +42,55 @@ void backlight_init_ports(void) {
#endif
+// for keyboard subdirectory level init functions
+// @Override
+void matrix_init_kb(void) {
+ // call user level keymaps, if any
+ matrix_init_user();
+}
+
#ifdef RGBLIGHT_ENABLE
extern rgblight_config_t rgblight_config;
+// custom RGB driver
void rgblight_set(void) {
- if (!rgblight_config.enable) {
- for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- led[i].r = 0;
- led[i].g = 0;
- led[i].b = 0;
- }
+ if (!rgblight_config.enable) {
+ for (uint8_t i=0; i<RGBLED_NUM; i++) {
+ led[i].r = 0;
+ led[i].g = 0;
+ led[i].b = 0;
}
+ }
+
+ i2c_init();
+ i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
+}
+bool rgb_init = false;
+
+void matrix_scan_kb(void) {
+ // if LEDs were previously on before poweroff, turn them back on
+ if (rgb_init == false && rgblight_config.enable) {
i2c_init();
i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
+ rgb_init = true;
+ }
+
+ rgblight_task();
+#else
+void matrix_scan_kb(void) {
+#endif
+ matrix_scan_user();
+ /* Nothing else for now. */
}
-__attribute__ ((weak))
+__attribute__((weak)) // overridable
+void matrix_init_user(void) {
+
+}
+
+
+__attribute__((weak)) // overridable
void matrix_scan_user(void) {
- rgblight_task();
+
}
-#endif