pan.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright 2020 RGBKB
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "quantum.h"
  4. #ifdef RGB_MATRIX_ENABLE
  5. # include "ws2812.h"
  6. static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) {
  7. if (i == 0 || i == 1) { // Encoder LEDs require GBR sequence
  8. ws2812_set_color(i, g, b, r);
  9. } else {
  10. ws2812_set_color(i, r, g, b);
  11. }
  12. }
  13. const rgb_matrix_driver_t rgb_matrix_driver = {
  14. .init = ws2812_init,
  15. .flush = ws2812_flush,
  16. .set_color = setled,
  17. .set_color_all = ws2812_set_color_all,
  18. };
  19. #endif
  20. #ifdef OLED_ENABLE
  21. bool oled_task_kb(void) {
  22. if (!oled_task_user()) {
  23. return false;
  24. }
  25. oled_write_P(PSTR("RGBKB Pan\n"), false);
  26. oled_write_P(PSTR("Layer: "), false);
  27. uint8_t layer = get_highest_layer(layer_state | default_layer_state);
  28. switch (layer) {
  29. case 0:
  30. oled_write_P(PSTR("Default\n"), false);
  31. break;
  32. case 1:
  33. oled_write_P(PSTR("Colemak\n"), false);
  34. break;
  35. case 2:
  36. oled_write_P(PSTR("Function\n"), false);
  37. break;
  38. case 3:
  39. oled_write_P(PSTR("Adjust\n"), false);
  40. break;
  41. default:
  42. oled_write_P(PSTR("Undefined\n"), false);
  43. }
  44. led_t led_state = host_keyboard_led_state();
  45. oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false);
  46. oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false);
  47. return false;
  48. }
  49. #endif