[Core] Refactor keyevent_t
for 1ms timing resolution (#15847)
This commit is contained in:
@@ -28,7 +28,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -40,7 +41,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -57,12 +57,14 @@ void set_custom_encoder_mode_user(bool custom_mode) {
|
||||
|
||||
keyevent_t encoder_ccw = {
|
||||
.key = (keypos_t){.row = 4, .col = 7},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder_cw = {
|
||||
.key = (keypos_t){.row = 4, .col = 10},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
|
||||
@@ -70,12 +72,12 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (custom_encoder_mode) {
|
||||
if (clockwise) {
|
||||
encoder_cw.pressed = true;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
}
|
||||
else {
|
||||
encoder_ccw.pressed = true;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
}
|
||||
return false;
|
||||
@@ -86,13 +88,13 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder_ccw)) {
|
||||
encoder_ccw.pressed = false;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder_cw)) {
|
||||
encoder_cw.pressed = false;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -95,46 +95,50 @@ void keyboard_post_init_user(void) {
|
||||
|
||||
keyevent_t encoder_left_ccw = {
|
||||
.key = (keypos_t){.row = 5, .col = 0},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder_left_cw = {
|
||||
.key = (keypos_t){.row = 5, .col = 1},
|
||||
.pressed = false
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder_right_ccw = {
|
||||
.key = (keypos_t){.row = 5, .col = 2},
|
||||
.pressed = false
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder_right_cw = {
|
||||
.key = (keypos_t){.row = 5, .col = 3},
|
||||
.pressed = false
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder_left_ccw)) {
|
||||
encoder_left_ccw.pressed = false;
|
||||
encoder_left_ccw.time = (timer_read() | 1);
|
||||
encoder_left_ccw.time = timer_read();
|
||||
action_exec(encoder_left_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder_left_cw)) {
|
||||
encoder_left_cw.pressed = false;
|
||||
encoder_left_cw.time = (timer_read() | 1);
|
||||
encoder_left_cw.time = timer_read();
|
||||
action_exec(encoder_left_cw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder_right_ccw)) {
|
||||
encoder_right_ccw.pressed = false;
|
||||
encoder_right_ccw.time = (timer_read() | 1);
|
||||
encoder_right_ccw.time = timer_read();
|
||||
action_exec(encoder_right_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder_right_cw)) {
|
||||
encoder_right_cw.pressed = false;
|
||||
encoder_right_cw.time = (timer_read() | 1);
|
||||
encoder_right_cw.time = timer_read();
|
||||
action_exec(encoder_right_cw);
|
||||
}
|
||||
|
||||
@@ -145,21 +149,21 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
encoder_left_cw.pressed = true;
|
||||
encoder_left_cw.time = (timer_read() | 1);
|
||||
encoder_left_cw.time = timer_read();
|
||||
action_exec(encoder_left_cw);
|
||||
} else {
|
||||
encoder_left_ccw.pressed = true;
|
||||
encoder_left_ccw.time = (timer_read() | 1);
|
||||
encoder_left_ccw.time = timer_read();
|
||||
action_exec(encoder_left_ccw);
|
||||
}
|
||||
} else {
|
||||
if (clockwise) {
|
||||
encoder_right_cw.pressed = true;
|
||||
encoder_right_cw.time = (timer_read() | 1);
|
||||
encoder_right_cw.time = timer_read();
|
||||
action_exec(encoder_right_cw);
|
||||
} else {
|
||||
encoder_right_ccw.pressed = true;
|
||||
encoder_right_ccw.time = (timer_read() | 1);
|
||||
encoder_right_ccw.time = timer_read();
|
||||
action_exec(encoder_right_ccw);
|
||||
}
|
||||
}
|
||||
|
@@ -52,46 +52,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
keyevent_t encoder1_ccw = {
|
||||
.key = (keypos_t){.row = 0, .col = 12},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder1_cw = {
|
||||
.key = (keypos_t){.row = 0, .col = 13},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder2_ccw = {
|
||||
.key = (keypos_t){.row = 0, .col = 14},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder2_cw = {
|
||||
.key = (keypos_t){.row = 0, .col = 15},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder1_ccw)) {
|
||||
encoder1_ccw.pressed = false;
|
||||
encoder1_ccw.time = (timer_read() | 1);
|
||||
encoder1_ccw.time = timer_read();
|
||||
action_exec(encoder1_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder1_cw)) {
|
||||
encoder1_cw.pressed = false;
|
||||
encoder1_cw.time = (timer_read() | 1);
|
||||
encoder1_cw.time = timer_read();
|
||||
action_exec(encoder1_cw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder2_ccw)) {
|
||||
encoder2_ccw.pressed = false;
|
||||
encoder2_ccw.time = (timer_read() | 1);
|
||||
encoder2_ccw.time = timer_read();
|
||||
action_exec(encoder2_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder2_cw)) {
|
||||
encoder2_cw.pressed = false;
|
||||
encoder2_cw.time = (timer_read() | 1);
|
||||
encoder2_cw.time = timer_read();
|
||||
action_exec(encoder2_cw);
|
||||
}
|
||||
}
|
||||
@@ -100,21 +104,21 @@ 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);
|
||||
encoder1_cw.time = timer_read();
|
||||
action_exec(encoder1_cw);
|
||||
} else {
|
||||
encoder1_ccw.pressed = true;
|
||||
encoder1_ccw.time = (timer_read() | 1);
|
||||
encoder1_ccw.time = timer_read();
|
||||
action_exec(encoder1_ccw);
|
||||
}
|
||||
} else if (index == 1) {
|
||||
if (clockwise) {
|
||||
encoder2_cw.pressed = true;
|
||||
encoder2_cw.time = (timer_read() | 1);
|
||||
encoder2_cw.time = timer_read();
|
||||
action_exec(encoder2_cw);
|
||||
} else {
|
||||
encoder2_ccw.pressed = true;
|
||||
encoder2_ccw.time = (timer_read() | 1);
|
||||
encoder2_ccw.time = timer_read();
|
||||
action_exec(encoder2_ccw);
|
||||
}
|
||||
}
|
||||
|
@@ -44,46 +44,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
keyevent_t encoder1_ccw = {
|
||||
.key = (keypos_t){.row = 0, .col = 4},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder1_cw = {
|
||||
.key = (keypos_t){.row = 0, .col = 5},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder2_ccw = {
|
||||
.key = (keypos_t){.row = 0, .col = 6},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder2_cw = {
|
||||
.key = (keypos_t){.row = 0, .col = 7},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder1_ccw)) {
|
||||
encoder1_ccw.pressed = false;
|
||||
encoder1_ccw.time = (timer_read() | 1);
|
||||
encoder1_ccw.time = timer_read();
|
||||
action_exec(encoder1_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder1_cw)) {
|
||||
encoder1_cw.pressed = false;
|
||||
encoder1_cw.time = (timer_read() | 1);
|
||||
encoder1_cw.time = timer_read();
|
||||
action_exec(encoder1_cw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder2_ccw)) {
|
||||
encoder2_ccw.pressed = false;
|
||||
encoder2_ccw.time = (timer_read() | 1);
|
||||
encoder2_ccw.time = timer_read();
|
||||
action_exec(encoder2_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder2_cw)) {
|
||||
encoder2_cw.pressed = false;
|
||||
encoder2_cw.time = (timer_read() | 1);
|
||||
encoder2_cw.time = timer_read();
|
||||
action_exec(encoder2_cw);
|
||||
}
|
||||
}
|
||||
@@ -92,21 +96,21 @@ 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);
|
||||
encoder1_cw.time = timer_read();
|
||||
action_exec(encoder1_cw);
|
||||
} else {
|
||||
encoder1_ccw.pressed = true;
|
||||
encoder1_ccw.time = (timer_read() | 1);
|
||||
encoder1_ccw.time = timer_read();
|
||||
action_exec(encoder1_ccw);
|
||||
}
|
||||
} else if (index == 1) {
|
||||
if (clockwise) {
|
||||
encoder2_cw.pressed = true;
|
||||
encoder2_cw.time = (timer_read() | 1);
|
||||
encoder2_cw.time = timer_read();
|
||||
action_exec(encoder2_cw);
|
||||
} else {
|
||||
encoder2_ccw.pressed = true;
|
||||
encoder2_ccw.time = (timer_read() | 1);
|
||||
encoder2_ccw.time = timer_read();
|
||||
action_exec(encoder2_ccw);
|
||||
}
|
||||
}
|
||||
|
@@ -82,91 +82,99 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
keyevent_t encoder1_ccw = {
|
||||
.key = (keypos_t){.row = 4, .col = 0},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder1_cw = {
|
||||
.key = (keypos_t){.row = 4, .col = 1},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder2_ccw = {
|
||||
.key = (keypos_t){.row = 4, .col = 2},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder2_cw = {
|
||||
.key = (keypos_t){.row = 4, .col = 3},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder3_ccw = {
|
||||
.key = (keypos_t){.row = 9, .col = 1},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder3_cw = {
|
||||
.key = (keypos_t){.row = 9, .col = 0},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder4_ccw = {
|
||||
.key = (keypos_t){.row = 9, .col = 3},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder4_cw = {
|
||||
.key = (keypos_t){.row = 9, .col = 2},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder1_ccw)) {
|
||||
encoder1_ccw.pressed = false;
|
||||
encoder1_ccw.time = (timer_read() | 1);
|
||||
encoder1_ccw.time = timer_read();
|
||||
action_exec(encoder1_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder1_cw)) {
|
||||
encoder1_cw.pressed = false;
|
||||
encoder1_cw.time = (timer_read() | 1);
|
||||
encoder1_cw.time = timer_read();
|
||||
action_exec(encoder1_cw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder2_ccw)) {
|
||||
encoder2_ccw.pressed = false;
|
||||
encoder2_ccw.time = (timer_read() | 1);
|
||||
encoder2_ccw.time = timer_read();
|
||||
action_exec(encoder2_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder2_cw)) {
|
||||
encoder2_cw.pressed = false;
|
||||
encoder2_cw.time = (timer_read() | 1);
|
||||
encoder2_cw.time = timer_read();
|
||||
action_exec(encoder2_cw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder3_ccw)) {
|
||||
encoder3_ccw.pressed = false;
|
||||
encoder3_ccw.time = (timer_read() | 1);
|
||||
encoder3_ccw.time = timer_read();
|
||||
action_exec(encoder3_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder3_cw)) {
|
||||
encoder3_cw.pressed = false;
|
||||
encoder3_cw.time = (timer_read() | 1);
|
||||
encoder3_cw.time = timer_read();
|
||||
action_exec(encoder3_cw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder4_ccw)) {
|
||||
encoder4_ccw.pressed = false;
|
||||
encoder4_ccw.time = (timer_read() | 1);
|
||||
encoder4_ccw.time = timer_read();
|
||||
action_exec(encoder4_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder4_cw)) {
|
||||
encoder4_cw.pressed = false;
|
||||
encoder4_cw.time = (timer_read() | 1);
|
||||
encoder4_cw.time = timer_read();
|
||||
action_exec(encoder4_cw);
|
||||
}
|
||||
}
|
||||
@@ -175,41 +183,41 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
encoder1_cw.pressed = true;
|
||||
encoder1_cw.time = (timer_read() | 1);
|
||||
encoder1_cw.time = timer_read();
|
||||
action_exec(encoder1_cw);
|
||||
} else {
|
||||
encoder1_ccw.pressed = true;
|
||||
encoder1_ccw.time = (timer_read() | 1);
|
||||
encoder1_ccw.time = timer_read();
|
||||
action_exec(encoder1_ccw);
|
||||
}
|
||||
} else if (index == 1) {
|
||||
if (clockwise) {
|
||||
encoder2_cw.pressed = true;
|
||||
encoder2_cw.time = (timer_read() | 1);
|
||||
encoder2_cw.time = timer_read();
|
||||
action_exec(encoder2_cw);
|
||||
} else {
|
||||
encoder2_ccw.pressed = true;
|
||||
encoder2_ccw.time = (timer_read() | 1);
|
||||
encoder2_ccw.time = timer_read();
|
||||
action_exec(encoder2_ccw);
|
||||
}
|
||||
} else if (index == 2) {
|
||||
if (clockwise) {
|
||||
encoder3_cw.pressed = true;
|
||||
encoder3_cw.time = (timer_read() | 1);
|
||||
encoder3_cw.time = timer_read();
|
||||
action_exec(encoder3_cw);
|
||||
} else {
|
||||
encoder3_ccw.pressed = true;
|
||||
encoder3_ccw.time = (timer_read() | 1);
|
||||
encoder3_ccw.time = timer_read();
|
||||
action_exec(encoder3_ccw);
|
||||
}
|
||||
} else if (index == 3) {
|
||||
if (clockwise) {
|
||||
encoder4_cw.pressed = true;
|
||||
encoder4_cw.time = (timer_read() | 1);
|
||||
encoder4_cw.time = timer_read();
|
||||
action_exec(encoder4_cw);
|
||||
} else {
|
||||
encoder4_ccw.pressed = true;
|
||||
encoder4_ccw.time = (timer_read() | 1);
|
||||
encoder4_ccw.time = timer_read();
|
||||
action_exec(encoder4_ccw);
|
||||
}
|
||||
}
|
||||
|
@@ -111,7 +111,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
key.row = 1;
|
||||
key.col = 0;
|
||||
}
|
||||
action_exec((keyevent_t){.key = key, .pressed = true, .time = (timer_read() | 1)});
|
||||
action_exec((keyevent_t){.key = key, .pressed = false, .time = (timer_read() | 1)});
|
||||
action_exec(MAKE_KEYEVENT(key.row, key.col, true));
|
||||
action_exec(MAKE_KEYEVENT(key.row, key.col, false));
|
||||
return true;
|
||||
}
|
||||
|
@@ -96,7 +96,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
key.row = 1;
|
||||
key.col = 0;
|
||||
}
|
||||
action_exec((keyevent_t){.key = key, .pressed = true, .time = (timer_read() | 1)});
|
||||
action_exec((keyevent_t){.key = key, .pressed = false, .time = (timer_read() | 1)});
|
||||
action_exec(MAKE_KEYEVENT(key.row, key.col, true));
|
||||
action_exec(MAKE_KEYEVENT(key.row, key.col, false));
|
||||
return true;
|
||||
}
|
||||
|
@@ -178,7 +178,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -190,7 +191,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -25,7 +25,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -37,7 +38,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -28,7 +28,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -40,7 +41,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -30,7 +30,9 @@ void encoder_action_unregister(void)
|
||||
keyevent_t encoder_event = (keyevent_t){
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)};
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
@@ -41,7 +43,9 @@ void encoder_action_register(uint8_t index, bool clockwise)
|
||||
keyevent_t encoder_event = (keyevent_t){
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)};
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
|
@@ -29,7 +29,9 @@ void encoder_action_unregister(void)
|
||||
keyevent_t encoder_event = (keyevent_t){
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)};
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
@@ -40,7 +42,9 @@ void encoder_action_register(uint8_t index, bool clockwise)
|
||||
keyevent_t encoder_event = (keyevent_t){
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)};
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
|
@@ -169,7 +169,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -181,7 +182,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -54,24 +54,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
keyevent_t encoder_ccw = {
|
||||
.key = (keypos_t){.row = 5, .col = 0},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder_cw = {
|
||||
.key = (keypos_t){.row = 5, .col = 1},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder_ccw)) {
|
||||
encoder_ccw.pressed = false;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder_cw)) {
|
||||
encoder_cw.pressed = false;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
}
|
||||
}
|
||||
@@ -79,11 +81,11 @@ void matrix_scan_user(void) {
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
encoder_cw.pressed = true;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
} else {
|
||||
encoder_ccw.pressed = true;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
}
|
||||
return true;
|
||||
|
@@ -63,7 +63,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -75,7 +76,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -115,7 +115,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -127,7 +128,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -26,7 +26,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -38,7 +39,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -26,7 +26,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -38,7 +39,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -26,7 +26,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -38,7 +39,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -26,7 +26,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -38,7 +39,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -85,15 +85,11 @@ bool oled_task_kb(void) {
|
||||
#endif
|
||||
|
||||
static void process_encoder_matrix(encodermap_t pos) {
|
||||
action_exec((keyevent_t){
|
||||
.key = (keypos_t){.row = pos.r, .col = pos.c}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */
|
||||
});
|
||||
action_exec(MAKE_KEYEVENT(pos.r, pos.c, true));
|
||||
#if TAP_CODE_DELAY > 0
|
||||
wait_ms(TAP_CODE_DELAY);
|
||||
#endif
|
||||
action_exec((keyevent_t){
|
||||
.key = (keypos_t){.row = pos.r, .col = pos.c}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */
|
||||
});
|
||||
action_exec(MAKE_KEYEVENT(pos.r, pos.c, false));
|
||||
}
|
||||
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
|
@@ -87,7 +87,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state >> 1 ? ENC_CW : ENC_CCW,
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -99,7 +100,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? ENC_CW : ENC_CCW,
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read()
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -135,7 +135,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state >> 1 ? ENC_CW : ENC_CCW,
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -146,7 +147,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? ENC_CW : ENC_CCW,
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -37,15 +37,11 @@ const encodermap_t touch_encoder_map[NUMBER_OF_TOUCH_ENCODERS][TOUCH_ENCODER_OPT
|
||||
};
|
||||
|
||||
static void process_encoder_matrix(encodermap_t pos) {
|
||||
action_exec((keyevent_t){
|
||||
.key = (keypos_t){.row = pos.r, .col = pos.c}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */
|
||||
});
|
||||
action_exec(MAKE_KEYEVENT(pos.r, pos.c, true));
|
||||
#if TAP_CODE_DELAY > 0
|
||||
wait_ms(TAP_CODE_DELAY);
|
||||
#endif
|
||||
action_exec((keyevent_t){
|
||||
.key = (keypos_t){.row = pos.r, .col = pos.c}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */
|
||||
});
|
||||
action_exec(MAKE_KEYEVENT(pos.r, pos.c, false));
|
||||
}
|
||||
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
|
@@ -57,10 +57,7 @@ bool dip_switch_update_kb(uint8_t index, bool active) {
|
||||
}
|
||||
case 1: {
|
||||
// Handle RGB Encoder switch press
|
||||
action_exec((keyevent_t){
|
||||
.key = (keypos_t){.row = isLeftHand ? 4 : 10, .col = 6},
|
||||
.pressed = active, .time = (timer_read() | 1) /* time should not be 0 */
|
||||
});
|
||||
action_exec(MAKE_KEYEVENT(isLeftHand ? 4 : 10, 6, active));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -68,15 +65,11 @@ bool dip_switch_update_kb(uint8_t index, bool active) {
|
||||
}
|
||||
|
||||
static void process_encoder_matrix(encodermap_t pos) {
|
||||
action_exec((keyevent_t){
|
||||
.key = (keypos_t){.row = pos.r, .col = pos.c}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */
|
||||
});
|
||||
action_exec(MAKE_KEYEVENT(pos.r, pos.c, true));
|
||||
#if TAP_CODE_DELAY > 0
|
||||
wait_ms(TAP_CODE_DELAY);
|
||||
#endif
|
||||
action_exec((keyevent_t){
|
||||
.key = (keypos_t){.row = pos.r, .col = pos.c}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */
|
||||
});
|
||||
action_exec(MAKE_KEYEVENT(pos.r, pos.c, false));
|
||||
}
|
||||
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
|
@@ -48,24 +48,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
keyevent_t encoder_ccw = {
|
||||
.key = (keypos_t){.row = 4, .col = 0},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder_cw = {
|
||||
.key = (keypos_t){.row = 4, .col = 1},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder_ccw)) {
|
||||
encoder_ccw.pressed = false;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder_cw)) {
|
||||
encoder_cw.pressed = false;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
}
|
||||
}
|
||||
@@ -73,12 +75,12 @@ void matrix_scan_user(void) {
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
encoder_cw.pressed = true;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
wait_ms(20);
|
||||
} else {
|
||||
encoder_ccw.pressed = true;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
wait_ms(20);
|
||||
}
|
||||
|
@@ -54,24 +54,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
keyevent_t encoder_ccw = {
|
||||
.key = (keypos_t){.row = 6, .col = 0},
|
||||
.pressed = false
|
||||
};
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder_cw = {
|
||||
.key = (keypos_t){.row = 6, .col = 1},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder_ccw)) {
|
||||
encoder_ccw.pressed = false;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder_cw)) {
|
||||
encoder_cw.pressed = false;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
}
|
||||
}
|
||||
@@ -86,14 +88,14 @@ uint8_t current_frame = 0;
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
encoder_cw.pressed = true;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
wait_ms(20);
|
||||
anim_sleep = timer_read32();
|
||||
oled_on();
|
||||
} else {
|
||||
encoder_ccw.pressed = true;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
wait_ms(20);
|
||||
anim_sleep = timer_read32();
|
||||
|
@@ -29,24 +29,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
keyevent_t encoder_ccw = {
|
||||
.key = (keypos_t){.row = 13, .col = 0},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder_cw = {
|
||||
.key = (keypos_t){.row = 13, .col = 1},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder_ccw)) {
|
||||
encoder_ccw.pressed = false;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder_cw)) {
|
||||
encoder_cw.pressed = false;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
}
|
||||
}
|
||||
@@ -54,11 +56,11 @@ void matrix_scan_user(void) {
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
encoder_cw.pressed = true;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
} else {
|
||||
encoder_ccw.pressed = true;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
}
|
||||
return true;
|
||||
|
@@ -37,24 +37,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
keyevent_t encoder_ccw = {
|
||||
.key = (keypos_t){.row = 12, .col = 0},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
keyevent_t encoder_cw = {
|
||||
.key = (keypos_t){.row = 12, .col = 1},
|
||||
.pressed = false
|
||||
.pressed = false,
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder_ccw)) {
|
||||
encoder_ccw.pressed = false;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder_cw)) {
|
||||
encoder_cw.pressed = false;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
}
|
||||
}
|
||||
@@ -62,11 +64,11 @@ void matrix_scan_user(void) {
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
encoder_cw.pressed = true;
|
||||
encoder_cw.time = (timer_read() | 1);
|
||||
encoder_cw.time = timer_read();
|
||||
action_exec(encoder_cw);
|
||||
} else {
|
||||
encoder_ccw.pressed = true;
|
||||
encoder_ccw.time = (timer_read() | 1);
|
||||
encoder_ccw.time = timer_read();
|
||||
action_exec(encoder_ccw);
|
||||
}
|
||||
return true;
|
||||
|
@@ -30,7 +30,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -42,10 +43,11 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -26,7 +26,7 @@
|
||||
void encoder_action_unregister(void) {
|
||||
for (int index = 0; index < 2; ++index) {
|
||||
if (encoder_state[index]) {
|
||||
keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = (timer_read() | 1)};
|
||||
keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = timer_read(), .type = KEY_EVENT};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
@@ -34,7 +34,7 @@
|
||||
}
|
||||
|
||||
void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = (timer_read() | 1)};
|
||||
keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = timer_read(), .type = KEY_EVENT};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
@@ -46,4 +46,3 @@
|
||||
return false;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@@ -29,7 +29,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -41,7 +42,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -37,7 +37,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -49,7 +50,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -98,7 +98,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -110,7 +111,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
@@ -124,4 +126,4 @@ void matrix_scan_kb(void) {
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
encoder_action_register(index, clockwise);
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
@@ -29,7 +29,8 @@ void encoder_action_unregister(void) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
@@ -41,7 +42,8 @@ void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
|
@@ -37,7 +37,8 @@ static void exec_encoder_action(uint8_t index, bool clockwise, bool pressed) {
|
||||
keyevent_t encoder_event = (keyevent_t) {
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = pressed,
|
||||
.time = (timer_read() | 1)
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
// clang-format on
|
||||
action_exec(encoder_event);
|
||||
|
@@ -30,7 +30,9 @@ void encoder_action_unregister(void)
|
||||
keyevent_t encoder_event = (keyevent_t){
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)};
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
@@ -41,7 +43,9 @@ void encoder_action_register(uint8_t index, bool clockwise)
|
||||
keyevent_t encoder_event = (keyevent_t){
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)};
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
|
@@ -30,7 +30,9 @@ void encoder_action_unregister(void)
|
||||
keyevent_t encoder_event = (keyevent_t){
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)};
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
@@ -41,7 +43,9 @@ void encoder_action_register(uint8_t index, bool clockwise)
|
||||
keyevent_t encoder_event = (keyevent_t){
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)};
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
@@ -64,4 +68,3 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -30,7 +30,9 @@ void encoder_action_unregister(void)
|
||||
keyevent_t encoder_event = (keyevent_t){
|
||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = false,
|
||||
.time = (timer_read() | 1)};
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
@@ -41,7 +43,9 @@ void encoder_action_register(uint8_t index, bool clockwise)
|
||||
keyevent_t encoder_event = (keyevent_t){
|
||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
||||
.pressed = true,
|
||||
.time = (timer_read() | 1)};
|
||||
.time = timer_read(),
|
||||
.type = KEY_EVENT
|
||||
};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
|
@@ -43,20 +43,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
||||
#ifdef ENCODER_ENABLE
|
||||
keyevent_t encoder1_ccw = {.key = (keypos_t){.row = 4, .col = 4}, .pressed = false};
|
||||
keyevent_t encoder1_ccw = {.key = (keypos_t){.row = 4, .col = 4}, .pressed = false, .type = KEY_EVENT};
|
||||
|
||||
keyevent_t encoder1_cw = {.key = (keypos_t){.row = 4, .col = 6}, .pressed = false};
|
||||
keyevent_t encoder1_cw = {.key = (keypos_t){.row = 4, .col = 6}, .pressed = false, .type = KEY_EVENT};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (IS_PRESSED(encoder1_ccw)) {
|
||||
encoder1_ccw.pressed = false;
|
||||
encoder1_ccw.time = (timer_read() | 1);
|
||||
encoder1_ccw.time = timer_read();
|
||||
action_exec(encoder1_ccw);
|
||||
}
|
||||
|
||||
if (IS_PRESSED(encoder1_cw)) {
|
||||
encoder1_cw.pressed = false;
|
||||
encoder1_cw.time = (timer_read() | 1);
|
||||
encoder1_cw.time = timer_read();
|
||||
action_exec(encoder1_cw);
|
||||
}
|
||||
}
|
||||
@@ -64,11 +64,11 @@ void matrix_scan_user(void) {
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
encoder1_cw.pressed = true;
|
||||
encoder1_cw.time = (timer_read() | 1);
|
||||
encoder1_cw.time = timer_read();
|
||||
action_exec(encoder1_cw);
|
||||
} else {
|
||||
encoder1_ccw.pressed = true;
|
||||
encoder1_ccw.time = (timer_read() | 1);
|
||||
encoder1_ccw.time = timer_read();
|
||||
action_exec(encoder1_ccw);
|
||||
}
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user