diff options
author | Dasky <32983009+daskygit@users.noreply.github.com> | 2021-08-19 19:58:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-19 11:58:17 -0700 |
commit | 7f1c90b7a8d66b806f87229fb96e5c69ee9fb1a4 (patch) | |
tree | 4c4d1fc9be221d4f008f77463bfc02fe4b1bfa4c /drivers/sensors/pimoroni_trackball.h | |
parent | e988f58374a138a1af79a141dc8eda54c8782907 (diff) |
[Core] Speed up pimoroni trackball driver (#13823)
Diffstat (limited to 'drivers/sensors/pimoroni_trackball.h')
-rw-r--r-- | drivers/sensors/pimoroni_trackball.h | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/drivers/sensors/pimoroni_trackball.h b/drivers/sensors/pimoroni_trackball.h index 9e3c64c19c..6b2a41425d 100644 --- a/drivers/sensors/pimoroni_trackball.h +++ b/drivers/sensors/pimoroni_trackball.h @@ -1,4 +1,5 @@ /* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com> + * Copyright 2021 Dasky (@daskygit) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -13,23 +14,24 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ - #pragma once #include "quantum.h" #include "pointing_device.h" -#ifndef TRACKBALL_ADDRESS -# define TRACKBALL_ADDRESS 0x0A -#endif -#define TRACKBALL_WRITE ((TRACKBALL_ADDRESS << 1) | I2C_WRITE) -#define TRACKBALL_READ (TRACKBALL_ADDRESS << 1) - -void trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); -void trackball_check_click(bool pressed, report_mouse_t *mouse); -void trackball_register_button(bool pressed, enum mouse_buttons button); +typedef struct pimoroni_data { + uint8_t left; + uint8_t right; + uint8_t up; + uint8_t down; + uint8_t click; +} pimoroni_data; -float trackball_get_precision(void); -void trackball_set_precision(float precision); -bool trackball_is_scrolling(void); -void trackball_set_scrolling(bool scroll); +void trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); +void trackball_click(bool pressed, report_mouse_t* mouse); +int16_t trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale); +void trackball_adapt_values(int8_t* mouse, int16_t* offset); +float trackball_get_precision(void); +void trackball_set_precision(float precision); +bool trackball_is_scrolling(void); +void trackball_set_scrolling(bool scroll); |