mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-08-17 23:55:04 +00:00
57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <lvgl.h>
|
|
|
|
namespace trackball {
|
|
|
|
/**
|
|
* @brief Trackball operating mode
|
|
*/
|
|
enum class Mode {
|
|
Encoder, // Navigation via enc_diff (scroll wheel behavior)
|
|
Pointer // Mouse cursor via point.x/y
|
|
};
|
|
|
|
/**
|
|
* @brief Initialize trackball as an LVGL input device, backed by the kernel tdeck_trackball driver.
|
|
* @return LVGL input device pointer, or nullptr if the kernel device isn't found/started
|
|
*/
|
|
lv_indev_t* init();
|
|
|
|
/**
|
|
* @brief Deinitialize trackball
|
|
*/
|
|
void deinit();
|
|
|
|
/**
|
|
* @brief Set encoder mode sensitivity
|
|
* @param sensitivity Steps per trackball tick (1-10, default: 1)
|
|
*/
|
|
void setEncoderSensitivity(uint8_t sensitivity);
|
|
|
|
/**
|
|
* @brief Set pointer mode sensitivity
|
|
* @param sensitivity Pixels per trackball tick (1-10, default: 10)
|
|
*/
|
|
void setPointerSensitivity(uint8_t sensitivity);
|
|
|
|
/**
|
|
* @brief Enable or disable trackball input processing
|
|
* @param enabled Boolean value to enable or disable
|
|
*/
|
|
void setEnabled(bool enabled);
|
|
|
|
/**
|
|
* @brief Set trackball operating mode
|
|
* @param mode Encoder or Pointer mode
|
|
*/
|
|
void setMode(Mode mode);
|
|
|
|
/**
|
|
* @brief Get current trackball operating mode
|
|
* @return Current mode
|
|
*/
|
|
Mode getMode();
|
|
|
|
}
|