mirror of
https://github.com/meshtastic/firmware.git
synced 2025-12-22 18:52:30 +00:00
* initial commit * preset rotary1 encoder * define TAB+ESC * haptic feedback * allow switch off haptic feedback * enable audio amplifier * include PR4684 * fix for tft target * add ES8311 audio codec * fix KB scan duplicate * display workaround to avoid debris * fix debris on display * keyboard backlight * enable screen options * fsm based bounce-free rotary encoder implementation * use fsm RotaryEncoder only for T-Lora Pager * change inputbroker default config to allow using rotary wheel for screens AND menues --------- Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com> Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
30 lines
789 B
C++
30 lines
789 B
C++
#include "TCA8418KeyboardBase.h"
|
|
|
|
class TLoraPagerKeyboard : public TCA8418KeyboardBase
|
|
{
|
|
public:
|
|
TLoraPagerKeyboard();
|
|
void reset(void);
|
|
void trigger(void) override;
|
|
void setBacklight(bool on) override;
|
|
virtual ~TLoraPagerKeyboard() {}
|
|
|
|
protected:
|
|
void pressed(uint8_t key) override;
|
|
void released(void) override;
|
|
void hapticFeedback(void);
|
|
|
|
void updateModifierFlag(uint8_t key);
|
|
bool isModifierKey(uint8_t key);
|
|
void toggleBacklight(bool off = false);
|
|
|
|
private:
|
|
uint8_t modifierFlag; // Flag to indicate if a modifier key is pressed
|
|
uint32_t last_modifier_time; // Timestamp of the last modifier key press
|
|
int8_t last_key;
|
|
int8_t next_key;
|
|
uint32_t last_tap;
|
|
uint8_t char_idx;
|
|
int32_t tap_interval;
|
|
};
|