|
@@ -179,6 +179,47 @@ void clueboard_set_led(uint8_t id, uint8_t val) {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+const uint16_t oct_hues[10] = {
|
|
|
|
|
+ 0,
|
|
|
|
|
+ 30,
|
|
|
|
|
+ 60,
|
|
|
|
|
+ 90,
|
|
|
|
|
+ 120,
|
|
|
|
|
+ 150,
|
|
|
|
|
+ 180,
|
|
|
|
|
+ 210,
|
|
|
|
|
+ 240,
|
|
|
|
|
+ 300
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+#define MAX_OCT 9
|
|
|
|
|
+
|
|
|
|
|
+void clueboard_set_midi_led(uint8_t base_oct, uint8_t val)
|
|
|
|
|
+{
|
|
|
|
|
+ uint8_t sat = 255;
|
|
|
|
|
+
|
|
|
|
|
+ for (uint8_t i = 0; i < RGBLED_NUM; i++) {
|
|
|
|
|
+ sethsv(oct_hues[base_oct], sat, val, (LED_TYPE *)&led[i]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ uint8_t next_oct = base_oct < MAX_OCT ? base_oct + 1 : base_oct;
|
|
|
|
|
+
|
|
|
|
|
+ uint16_t next_hue = base_oct < MAX_OCT ? oct_hues[next_oct] : 0;
|
|
|
|
|
+ uint8_t next_val = base_oct < MAX_OCT ? val : 0;
|
|
|
|
|
+ uint8_t next_sat = base_oct < MAX_OCT ? sat : 0;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ for (uint8_t i = 0; i < 3; i++) {
|
|
|
|
|
+ sethsv(next_hue, next_sat, next_val, (LED_TYPE *)&led[i]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for (uint8_t i = 11; i < 14; i++) {
|
|
|
|
|
+ sethsv(next_hue, next_sat, next_val, (LED_TYPE *)&led[i]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ rgblight_set();
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
void matrix_scan_user(void) {
|
|
void matrix_scan_user(void) {
|
|
|
rgblight_config_t rgblight_config;
|
|
rgblight_config_t rgblight_config;
|
|
|
rgblight_config.raw = eeconfig_read_rgblight();
|
|
rgblight_config.raw = eeconfig_read_rgblight();
|
|
@@ -197,10 +238,10 @@ void matrix_scan_user(void) {
|
|
|
clueboard_set_led(LAYER_FUNCTION, val);
|
|
clueboard_set_led(LAYER_FUNCTION, val);
|
|
|
}
|
|
}
|
|
|
} else if (layer & (1<<_ML)) {
|
|
} else if (layer & (1<<_ML)) {
|
|
|
- clueboard_set_led(LAYER_MOUSE, val);
|
|
|
|
|
|
|
+ clueboard_set_led(LAYER_MOUSE, val);
|
|
|
#if defined(MIDI_ENABLE)
|
|
#if defined(MIDI_ENABLE)
|
|
|
} else if (layer & (1<<_MI)) {
|
|
} else if (layer & (1<<_MI)) {
|
|
|
- clueboard_set_led(LAYER_MIDI, val);
|
|
|
|
|
|
|
+ clueboard_set_midi_led(midi_config.octave, val);
|
|
|
#endif
|
|
#endif
|
|
|
} else {
|
|
} else {
|
|
|
clueboard_set_led(LAYER_BASE, val);
|
|
clueboard_set_led(LAYER_BASE, val);
|