mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-04-07 14:25:44 +00:00
encoders: use encoder_map instead of custom code
This commit is contained in:
parent
123b5b4ed9
commit
56d3759893
@ -30,6 +30,7 @@ enum layer_number {
|
||||
#define RS_HENK LT(2,KC_INT4) // raise
|
||||
#define DEL_ALT ALT_T(KC_DEL)
|
||||
|
||||
// In the buttom row, KC_MS_BTN3 binds middle-click to the encoder's button press
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
//|-------------------------------------------------------| |-------------------------------------------------------|
|
||||
@ -40,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
|
||||
//|-------------------------------------------------------| |-------------------------------------------------------|
|
||||
KC_LGUI, DEL_ALT, LW_MHEN, KC_SPC, KC_MS_BTN1, KC_MS_BTN2, KC_ENT, RS_HENK, KC_BSPC, KC_ESC,
|
||||
KC_PGUP, KC_MS_BTN3, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
XXXXXXX, KC_MS_BTN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
//`--------------' `--------------'
|
||||
),
|
||||
[_LOWER] = LAYOUT(
|
||||
@ -52,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LSFT, KC_GRV, KC_TILD, KC_NUBS, KC_PIPE, XXXXXXX, KC_EQL, KC_PLUS, KC_LABK, KC_RABK, KC_QUES, KC_UNDS,
|
||||
//|-------------------------------------------------------| |-------------------------------------------------------|
|
||||
KC_LGUI, DEL_ALT, KC_TRNS, KC_SPC, KC_MS_BTN4, KC_MS_BTN5, KC_ENT, TT(3), KC_BSPC, KC_ESC,
|
||||
KC_PGUP, KC_MS_BTN3, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
XXXXXXX, KC_MS_BTN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
//`--------------' `--------------'
|
||||
),
|
||||
[_RAISE] = LAYOUT(
|
||||
@ -64,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOT, KC_SLSH, KC_MINS,
|
||||
//|-------------------------------------------------------| |-------------------------------------------------------|
|
||||
KC_LGUI, DEL_ALT, TT(3), KC_SPC, KC_MS_BTN4, KC_MS_BTN5, KC_ENT, KC_TRNS, KC_BSPC, KC_ESC,
|
||||
KC_PGUP, KC_MS_BTN3, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
XXXXXXX, KC_MS_BTN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
//`--------------' `--------------'
|
||||
),
|
||||
[_TRACKBALL] = LAYOUT(
|
||||
@ -76,55 +77,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD,RGB_RMOD, SCRL_IN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|-------------------------------------------------------| |-------------------------------------------------------|
|
||||
KC_LGUI, DEL_ALT, KC_TRNS, KC_SPC, KC_MS_BTN1, KC_MS_BTN2, KC_ENT, RS_HENK, KC_BSPC, KC_ESC,
|
||||
KC_PGUP, KC_MS_BTN3, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
XXXXXXX, KC_MS_BTN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
//`--------------' `--------------'
|
||||
)
|
||||
};
|
||||
|
||||
keyevent_t encoder1_ccw = {
|
||||
.key = (keypos_t){.row = 4, .col = 2},
|
||||
.pressed = false
|
||||
// Same function on all layers for now.
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
|
||||
[1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
|
||||
[2] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
|
||||
[3] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
|
||||
};
|
||||
|
||||
keyevent_t encoder1_cw = {
|
||||
.key = (keypos_t){.row = 4, .col = 5},
|
||||
.pressed = false
|
||||
};
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
if (clockwise) {
|
||||
encoder1_cw.pressed = true;
|
||||
encoder1_cw.time = (timer_read() | 1);
|
||||
action_exec(encoder1_cw);
|
||||
} else {
|
||||
encoder1_ccw.pressed = true;
|
||||
encoder1_ccw.time = (timer_read() | 1);
|
||||
action_exec(encoder1_ccw);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
if (encoder1_ccw.pressed) {
|
||||
encoder1_ccw.pressed = false;
|
||||
encoder1_ccw.time = (timer_read() | 1);
|
||||
action_exec(encoder1_ccw);
|
||||
}
|
||||
|
||||
if (encoder1_cw.pressed) {
|
||||
encoder1_cw.pressed = false;
|
||||
encoder1_cw.time = (timer_read() | 1);
|
||||
action_exec(encoder1_cw);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
switch (get_highest_layer(state)) {
|
||||
@ -157,4 +123,3 @@ bool oled_task_user(void) {
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user