commeownder/main/events.h

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