// 按键导航管理器 // 根据当前界面上下文分发BOOT/KEY2的单击/双击/长按事件 // 所有回调通过xTaskCreate派发到独立任务,避免阻塞esp_timer #pragma once #ifdef __cplusplus extern "C" { #endif #include "esp_err.h" // 导航上下文枚举 typedef enum { NAV_CTX_HOME, // Home界面 NAV_CTX_IMG, // Img浏览 NAV_CTX_IMG_DELETE, // Img删除确认(第一步) NAV_CTX_IMG_DELETE_CONFIRM,// Img删除二次确认(第二步) NAV_CTX_PEIWANG, // APP配对界面 NAV_CTX_UPDATE, // 更新界面 NAV_CTX_IMAGE_SHAR, // 发送方等待配对 NAV_CTX_IMAGE_RECEPTION, // 接收方等待配对 NAV_CTX_SHARING, // 发送方传输中 NAV_CTX_RECEIVING, // 接收方接收中 } nav_context_t; // 初始化按键导航(注册所有按键回调) void key_nav_init(void); // 切换导航上下文 void key_nav_set_context(nav_context_t ctx); // 获取当前导航上下文 nav_context_t key_nav_get_context(void); // === 按键事件处理函数(供外部回调调用) === void key_nav_boot_click(void); void key_nav_boot_double_click(void); void key_nav_boot_long_press(void); void key_nav_key2_click(void); void key_nav_key2_double_click(void); void key_nav_key2_long_press(void); #ifdef __cplusplus } #endif