knob1.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // Copyright 2022 Leon Anavi <leon@anavi.org>
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "quantum.h"
  4. #include <stdio.h>
  5. void keyboard_post_init_kb(void) {
  6. // Enable RGB LED
  7. setPinOutput(GP11);
  8. writePinHigh(GP11);
  9. rgblight_enable();
  10. // Offload to the user func
  11. keyboard_post_init_user();
  12. }
  13. #ifdef ENCODER_ENABLE
  14. bool encoder_update_kb(uint8_t index, bool clockwise) {
  15. if (!encoder_update_user(index, clockwise)) { return false; }
  16. if (clockwise) {
  17. tap_code(KC_VOLU);
  18. } else {
  19. tap_code(KC_VOLD);
  20. }
  21. return true;
  22. }
  23. #endif
  24. #ifdef OLED_ENABLE
  25. bool oled_task_kb(void) {
  26. if (!oled_task_user()) {
  27. return false;
  28. }
  29. // Host Keyboard Layer Status
  30. oled_write_ln_P(PSTR("ANAVI Knob 1"), false);
  31. oled_write_ln_P(PSTR("Keymap: Default"), false);
  32. // Host Keyboard LED Status
  33. led_t led_state = host_keyboard_led_state();
  34. oled_write_P(PSTR("Num Lock: "), false);
  35. oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false);
  36. oled_write_P(PSTR("Caps Lock: "), false);
  37. oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
  38. oled_write_P(PSTR("Scroll Lock: "), false);
  39. oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false);
  40. #ifdef RGBLIGHT_ENABLE
  41. static char rgbStatusLine1[26] = {0};
  42. snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());
  43. oled_write_ln(rgbStatusLine1, false);
  44. static char rgbStatusLine2[26] = {0};
  45. snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
  46. oled_write_ln(rgbStatusLine2, false);
  47. #endif
  48. return false;
  49. }
  50. #endif