diff options
author | Bad Diode <bd@badd10de.dev> | 2023-06-29 22:35:00 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2023-06-29 22:35:00 +0200 |
commit | db570495288125294e8cd33e8d03cb14b8ac0671 (patch) | |
tree | 22e8765023709ad57af50197dcaa32a4ba226b80 /src/app.c | |
parent | 6cd23251029da176a696560e175853ed38fe34d4 (diff) | |
download | launchpad-polymaker-db570495288125294e8cd33e8d03cb14b8ac0671.tar.gz launchpad-polymaker-db570495288125294e8cd33e8d03cb14b8ac0671.zip |
Add sensitivity threshold to avoid bouncing
Diffstat (limited to 'src/app.c')
-rw-r--r-- | src/app.c | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -683,16 +683,30 @@ app_surface_event(u8 type, u8 index, u8 value) { | |||
683 | if (value) { | 683 | if (value) { |
684 | float vel = value; | 684 | float vel = value; |
685 | switch (state.kbd_sense) { | 685 | switch (state.kbd_sense) { |
686 | case SENS_NO: { value = 100; } break; | 686 | case SENS_NO: { |
687 | if (value < 7) { | ||
688 | return; | ||
689 | } | ||
690 | value = 100; | ||
691 | } break; | ||
687 | case SENS_LOW: { | 692 | case SENS_LOW: { |
693 | if (value < 20) { | ||
694 | return; | ||
695 | } | ||
688 | vel = LERP(vel / 127, 55, 105); | 696 | vel = LERP(vel / 127, 55, 105); |
689 | value = vel; | 697 | value = vel; |
690 | } break; | 698 | } break; |
691 | case SENS_MED: { | 699 | case SENS_MED: { |
700 | if (value < 10) { | ||
701 | return; | ||
702 | } | ||
692 | vel = LERP(vel / 127, 40, 110); | 703 | vel = LERP(vel / 127, 40, 110); |
693 | value = vel; | 704 | value = vel; |
694 | } break; | 705 | } break; |
695 | case SENS_HIGH: { | 706 | case SENS_HIGH: { |
707 | if (value < 5) { | ||
708 | return; | ||
709 | } | ||
696 | vel = LERP(vel / 127, 20, 120); | 710 | vel = LERP(vel / 127, 20, 120); |
697 | value = vel; | 711 | value = vel; |
698 | } break; | 712 | } break; |