30 lines
1.0 KiB
C
30 lines
1.0 KiB
C
#pragma once
|
|
#include <stdint.h>
|
|
|
|
typedef enum {
|
|
EVT_BUTTON, // GPIO edge: gpio, level, ts_us
|
|
EVT_HOLD_EXPIRE, // per-button hold timer fired: btn_idx
|
|
EVT_COMBO_SLEEP, // all-4 held 5s
|
|
EVT_COMBO_SETTINGS, // fwd+back held 1s
|
|
EVT_BATT_TICK, // 500ms periodic
|
|
EVT_PEER_TICK, // 1s periodic
|
|
EVT_AUTOSAVE, // one-shot 30s: flush NVS
|
|
EVT_LIFE_DELTA_EXP, // one-shot: clear life delta overlay
|
|
EVT_RESET_CMD_EXP, // one-shot: end reset_cmd broadcast
|
|
EVT_IDLE_SLEEP, // one-shot: idle timeout
|
|
EVT_LED_BREATHE, // 10ms periodic: breathing animation
|
|
} evt_type_t;
|
|
|
|
typedef struct {
|
|
evt_type_t type;
|
|
int gpio; // EVT_BUTTON only
|
|
int level; // EVT_BUTTON only: 0=pressed 1=released
|
|
int64_t ts_us; // EVT_BUTTON only
|
|
int btn_idx; // EVT_HOLD_EXPIRE only: 0=fwd 1=left 2=right 3=back
|
|
} app_event_t;
|
|
|
|
#define BTN_IDX_FWD 0
|
|
#define BTN_IDX_LEFT 1
|
|
#define BTN_IDX_RIGHT 2
|
|
#define BTN_IDX_BACK 3
|