summaryrefslogtreecommitdiff
path: root/keyboards/ploopyco/trackball_thumb/trackball_thumb.c
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2024-02-18 21:17:15 +1100
committerGitHub <noreply@github.com>2024-02-18 21:17:15 +1100
commit9d9cdaaa2d035787b0b50c26f2975695fdbc16f4 (patch)
tree1a9f5d16ffc0e3bd27bc14791c25405a79ccd069 /keyboards/ploopyco/trackball_thumb/trackball_thumb.c
parent2eb9ff8efd1df2c98724481c71c8ab8a5b62e31e (diff)
Add encoder abstraction. (#21548)
Diffstat (limited to 'keyboards/ploopyco/trackball_thumb/trackball_thumb.c')
-rw-r--r--keyboards/ploopyco/trackball_thumb/trackball_thumb.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/keyboards/ploopyco/trackball_thumb/trackball_thumb.c b/keyboards/ploopyco/trackball_thumb/trackball_thumb.c
index bbc782da45..326410cf13 100644
--- a/keyboards/ploopyco/trackball_thumb/trackball_thumb.c
+++ b/keyboards/ploopyco/trackball_thumb/trackball_thumb.c
@@ -17,6 +17,7 @@
*/
#include "trackball_thumb.h"
+#include "encoder.h"
#ifndef OPT_DEBOUNCE
# define OPT_DEBOUNCE 5 // (ms) Time between scroll events
@@ -57,9 +58,6 @@ uint16_t last_mid_click = 0; // Stops scrollwheel from being read if it was
bool debug_encoder = false;
bool is_drag_scroll = false;
-// require, since core encoder.c (where is is normally defined isn't present
-__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { return true; }
-
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) {
return false;
@@ -75,25 +73,25 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
return true;
}
-void encoder_init(void) { opt_encoder_init(); }
+void encoder_driver_init(void) { opt_encoder_init(); }
-bool encoder_read(void) {
+void encoder_driver_task(void) {
// Lovingly ripped from the Ploopy Source
// If the mouse wheel was just released, do not scroll.
if (timer_elapsed(last_mid_click) < SCROLL_BUTT_DEBOUNCE) {
- return false;
+ return;
}
// Limit the number of scrolls per unit time.
if (timer_elapsed(last_scroll) < OPT_DEBOUNCE) {
- return false;
+ return;
}
// Don't scroll if the middle button is depressed.
if (is_scroll_clicked) {
#ifndef IGNORE_SCROLL_CLICK
- return false;
+ return;
#endif
}
@@ -104,10 +102,8 @@ bool encoder_read(void) {
int dir = opt_encoder_handler(p1, p2);
- if (dir == 0) return false;
- ;
- encoder_update_kb(0, dir == 1);
- return true;
+ if (dir == 0) return;
+ encoder_queue_event(0, dir == 1);
}
report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) {