snatchpad.c (1736B)
- // Copyright 2022 xia0 (@xia0)
- // SPDX-License-Identifier: GPL-2.0-or-later
- #include "quantum.h"
- #ifdef ENCODER_ENABLE
- bool encoder_update_kb(uint8_t index, bool clockwise) {
- if (!encoder_update_user(index, clockwise)) {
- return false;
- }
- uint8_t layer = get_highest_layer(layer_state);
- if (index == 0) { /* First encoder */
- switch (layer) {
- case 0:
- if (clockwise) {
- tap_code_delay(KC_VOLU, 10);
- } else {
- tap_code_delay(KC_VOLD, 10);
- }
- break;
- case 2:
- if (clockwise) {
- tap_code16(LCTL(KC_MINUS));
- } else {
- tap_code16(LCTL(KC_EQUAL));
- }
- break;
- default:
- if (clockwise) {
- tap_code(KC_MS_L);
- } else {
- tap_code(KC_MS_R);
- }
- break;
- }
- } else if (index == 1) { /* Second encoder */
- switch (layer) {
- case 0:
- if (clockwise) {
- tap_code(KC_MFFD);
- } else {
- tap_code(KC_MRWD);
- }
- break;
- case 2:
- if (clockwise) {
- tap_code16(LCTL(KC_Y));
- } else {
- tap_code16(LCTL(KC_Z));
- }
- break;
- default:
- if (clockwise) {
- tap_code(KC_MS_D);
- } else {
- tap_code(KC_MS_U);
- }
- break;
- }
- }
- return true;
- }
- #endif