Trackball rewrite (#600)

- Implement generic trackball settings
- Refactor T-Deck trackball driver into generic driver at `Drivers/gpio-trackball-module`
- Automatically bind/unbind trackball devices with LVGL
- Automatically load settings for trackball devices on boot
This commit is contained in:
Ken Van Hoeylandt
2026-07-30 13:38:19 +02:00
committed by GitHub
parent de6fc3b346
commit c729e8340f
39 changed files with 1194 additions and 666 deletions
@@ -1,27 +1,15 @@
#pragma once
#include <cstdint>
#include <lvgl/devices/trackball.h>
namespace tt::settings::trackball {
enum class TrackballMode : uint8_t {
Encoder = 0, // Scroll wheel navigation (default)
Pointer = 1 // Mouse cursor mode
};
bool load(LvglTrackballSettings& settings);
struct TrackballSettings {
bool trackballEnabled = false;
TrackballMode trackballMode = TrackballMode::Encoder;
uint8_t encoderSensitivity = 1; // Steps per tick (1-10)
uint8_t pointerSensitivity = 10; // Pixels per tick (1-10)
};
LvglTrackballSettings loadOrGetDefault();
bool load(TrackballSettings& settings);
LvglTrackballSettings getDefault();
TrackballSettings loadOrGetDefault();
TrackballSettings getDefault();
bool save(const TrackballSettings& settings);
bool save(const LvglTrackballSettings& settings);
}