diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-01-06 23:06:26 -0500 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-01-06 23:06:26 -0500 |
| commit | f764da4483d3d462731a376e5c92ffc9e144187d (patch) | |
| tree | 2db4dc1dbb3e16438353212c3611bf908397b325 | |
| parent | 4a0c54f0bad4a853e5bec7b9ad7ad5c6e1e32bd2 (diff) | |
| download | marsond-f764da4483d3d462731a376e5c92ffc9e144187d.tar.gz | |
De-uglify code slightly.
| -rw-r--r-- | marsond.c | 42 |
1 files changed, 19 insertions, 23 deletions
@@ -352,6 +352,14 @@ void release_key(int code) { write_event(&ev); } +void shift_timing(long long *last, const char *name, int code) { + if(*last && (gettime_millis() < (*last + shift_ms))) { + debug_fg("!!! Enter pressed; last %s shift press < %dms ago, sending %s shift release", name, shift_ms, name); + release_key(code); + *last = 0; + } +} + int main(int argc, char **argv) { int i; long long last_l_shift = 0, last_r_shift = 0; @@ -456,32 +464,20 @@ int main(int argc, char **argv) { debug_fg("got event: type %d, code 0x%02x, value %d", ev.type, ev.code, ev.value); - if(ev.type == EV_KEY && ev.value == 1) { - if(ev.code == KEY_RIGHTSHIFT) { - last_r_shift = (ev.value ? gettime_millis() : 0); - debug_fg("last_r_shift %lld", last_r_shift); - } else if(ev.code == KEY_LEFTSHIFT) { - last_l_shift = (ev.value ? gettime_millis() : 0); - debug_fg("last_l_shift %lld", last_l_shift); - } - } - /* ev.value: 0 == release, 1 == initial press, 2 == repeat */ if(ev.type == EV_KEY) { - if(ev.code == KEY_ENTER && ev.value == 1) { - if(last_r_shift && (gettime_millis() < (last_r_shift + shift_ms))) { - debug_fg("!!! Enter pressed; last right shift press < %dms ago, sending right shift release", shift_ms); - release_key(KEY_RIGHTSHIFT); - last_r_shift = 0; - } - if(last_l_shift && (gettime_millis() < (last_l_shift + shift_ms))) { - debug_fg("!!! Enter pressed; last left shift press < %dms ago, sending left shift release", shift_ms); - release_key(KEY_LEFTSHIFT); - last_l_shift = 0; + if(ev.value == 1) { + if(ev.code == KEY_RIGHTSHIFT) { + last_r_shift = (ev.value ? gettime_millis() : 0); + debug_fg("last_r_shift %lld", last_r_shift); + } else if(ev.code == KEY_LEFTSHIFT) { + last_l_shift = (ev.value ? gettime_millis() : 0); + debug_fg("last_l_shift %lld", last_l_shift); + } else if(ev.code == KEY_ENTER) { + shift_timing(&last_r_shift, "right", KEY_RIGHTSHIFT); + shift_timing(&last_l_shift, "left", KEY_LEFTSHIFT); } - } - - if(ev.code == KEY_ENTER && ev.value == 0) { + } else if(ev.code == KEY_ENTER && ev.value == 0) { debug_fg("!!! got Enter key release, delaying %dms", delay_ms); usleep(delay_ms * 1000); } |
