Переглянути джерело

Implement kb function for rgb matrix to led lookup (#5738)

XScorpion2 6 роки тому
батько
коміт
bb208f3e3b
2 змінених файлів з 25 додано та 1 видалено
  1. 19 0
      keyboards/sol/sol.c
  2. 6 1
      quantum/rgb_matrix.c

+ 19 - 0
keyboards/sol/sol.c

@@ -1 +1,20 @@
 #include "sol.h"
+
+#if defined(RGB_MATRIX_ENABLE)
+uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i) {
+  if (row == 4 && column == 5) {
+    led_i[0] = 33;
+    return 1;
+  } else if (row == 4 && column == 6) {
+    led_i[0] = 34;
+    return 1;
+  } else if (row == 10 && column == 5) {
+    led_i[0] = 68;
+    return 1;
+  } else if (row == 10 && column == 6) {
+    led_i[0] = 69;
+    return 1;
+  }
+  return 0;
+}
+#endif

+ 6 - 1
quantum/rgb_matrix.c

@@ -144,9 +144,14 @@ void eeconfig_debug_rgb_matrix(void) {
   dprintf("rgb_matrix_config.speed = %d\n", rgb_matrix_config.speed);
 }
 
+__attribute__ ((weak))
+uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i) {
+  return 0;
+}
+
 uint8_t rgb_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *led_i) {
   // TODO: This is kinda expensive, fix this soonish
-  uint8_t led_count = 0;
+  uint8_t led_count = rgb_matrix_map_row_column_to_led_kb(row, column, led_i);
   for (uint8_t i = 0; i < DRIVER_LED_TOTAL && led_count < LED_HITS_TO_REMEMBER; i++) {
     matrix_co_t matrix_co = g_rgb_leds[i].matrix_co;
     if (row == matrix_co.row && column == matrix_co.col) {