diff options
Diffstat (limited to 'keyboards/rubi')
-rw-r--r-- | keyboards/rubi/keymaps/default/keymap.c | 31 | ||||
-rw-r--r-- | keyboards/rubi/keymaps/via/keymap.c | 31 | ||||
-rw-r--r-- | keyboards/rubi/rubi.c | 35 |
3 files changed, 65 insertions, 32 deletions
diff --git a/keyboards/rubi/keymaps/default/keymap.c b/keyboards/rubi/keymaps/default/keymap.c index 054e3ce232..e0e7290dfe 100644 --- a/keyboards/rubi/keymaps/default/keymap.c +++ b/keyboards/rubi/keymaps/default/keymap.c @@ -56,3 +56,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS ), }; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (get_highest_layer(layer_state) == 0) { + uint16_t mapped_code = 0; + if (clockwise) { + mapped_code = handle_encoder_cw(); + } else { + mapped_code = handle_encoder_ccw(); + } + if (mapped_code != 0) { + tap_code16(mapped_code); + } + } else { + if (clockwise) { + if (oled_mode == OLED_MODE_CALC) { + handle_encoder_cw(); + } else if (oled_mode == OLED_MODE_DEFAULT) { + change_encoder_mode(false); + } + } else { + if (oled_mode == OLED_MODE_CALC) { + handle_encoder_ccw(); + } else if (oled_mode == OLED_MODE_DEFAULT) { + change_encoder_mode(true); + } + } + } + } + return true; +} diff --git a/keyboards/rubi/keymaps/via/keymap.c b/keyboards/rubi/keymaps/via/keymap.c index 3003db8886..1e8cb70c7c 100644 --- a/keyboards/rubi/keymaps/via/keymap.c +++ b/keyboards/rubi/keymaps/via/keymap.c @@ -51,3 +51,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS ), }; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (get_highest_layer(layer_state) == 0) { + uint16_t mapped_code = 0; + if (clockwise) { + mapped_code = handle_encoder_cw(); + } else { + mapped_code = handle_encoder_ccw(); + } + if (mapped_code != 0) { + tap_code16(mapped_code); + } + } else { + if (clockwise) { + if (oled_mode == OLED_MODE_CALC) { + handle_encoder_cw(); + } else if (oled_mode == OLED_MODE_DEFAULT) { + change_encoder_mode(false); + } + } else { + if (oled_mode == OLED_MODE_CALC) { + handle_encoder_ccw(); + } else if (oled_mode == OLED_MODE_DEFAULT) { + change_encoder_mode(true); + } + } + } + } + return true; +} diff --git a/keyboards/rubi/rubi.c b/keyboards/rubi/rubi.c index 6cdf8302c1..50e5fcf782 100644 --- a/keyboards/rubi/rubi.c +++ b/keyboards/rubi/rubi.c @@ -73,36 +73,7 @@ bool led_update_kb(led_t led_state) { return true; } -__attribute__ ((weak)) void encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (get_highest_layer(layer_state) == 0) { - uint16_t mapped_code = 0; - if (clockwise) { - mapped_code = handle_encoder_cw(); - } else { - mapped_code = handle_encoder_ccw(); - } - if (mapped_code != 0) { - tap_code16(mapped_code); - } - } else { - if (clockwise) { - if (oled_mode == OLED_MODE_CALC) { - handle_encoder_cw(); - } else if (oled_mode == OLED_MODE_DEFAULT) { - change_encoder_mode(false); - } - } else { - if (oled_mode == OLED_MODE_CALC) { - handle_encoder_ccw(); - } else if (oled_mode == OLED_MODE_DEFAULT) { - change_encoder_mode(true); - } - } - } - } -} - -void encoder_update_kb(uint8_t index, bool clockwise) { - encoder_update_user(index, clockwise); +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + return true; } |