diff options
| author | QMK Bot <hello@qmk.fm> | 2023-03-06 01:28:47 +0000 |
|---|---|---|
| committer | QMK Bot <hello@qmk.fm> | 2023-03-06 01:28:47 +0000 |
| commit | b8c9cb8b09d667e32481e525f40f7633d59ccc08 (patch) | |
| tree | 92c1787153106ee2b7bfa699a9eb2bd394ffafe6 /keyboards/anavi/knobs3/knobs3.c | |
| parent | cfa473e161dcfd2bb5756d61907f0a57fe2a70c9 (diff) | |
| parent | 61f3f5676a1f4ba31ad9ed7bdcba164178230275 (diff) | |
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'keyboards/anavi/knobs3/knobs3.c')
| -rw-r--r-- | keyboards/anavi/knobs3/knobs3.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/keyboards/anavi/knobs3/knobs3.c b/keyboards/anavi/knobs3/knobs3.c new file mode 100644 index 0000000000..efae010163 --- /dev/null +++ b/keyboards/anavi/knobs3/knobs3.c @@ -0,0 +1,73 @@ +// Copyright 2022 Leon Anavi <leon@anavi.org> +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" +#include <stdio.h> + +void keyboard_post_init_kb(void) { + // Enable RGB LED + setPinOutput(GP11); + writePinHigh(GP11); + rgblight_enable(); + + // Offload to the user func + keyboard_post_init_user(); +} + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (0 == index) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (1 == index) { + if (clockwise) { + tap_code(KC_UP); + } else { + tap_code(KC_DOWN); + } + } else if (2 == index) { + if (clockwise) { + tap_code(KC_LEFT); + } else { + tap_code(KC_RIGHT); + } + } + return true; +} +#endif + +#ifdef OLED_ENABLE + +bool oled_task_kb(void) { + + if (!oled_task_user()) { + return false; + } + + // Host Keyboard Layer Status + oled_write_ln_P(PSTR("ANAVI Knobs 3"), false); + oled_write_ln_P(PSTR("Keymap: Default"), false); + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("Num Lock: "), false); + oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Caps Lock: "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Scroll Lock: "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false); +#ifdef RGBLIGHT_ENABLE + static char rgbStatusLine1[26] = {0}; + snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode()); + oled_write_ln(rgbStatusLine1, false); + static char rgbStatusLine2[26] = {0}; + snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val()); + oled_write_ln(rgbStatusLine2, false); +#endif + return false; +} +#endif |
