Files
HeavenlyHeroStar/main/app/ui_handlers.c
T
rsgltzyd 8254bc7d50 feat: 添加第三屏幕及其音量控制功能
- 在 CMakeLists.txt 中添加 ui_Screen3.c 源文件以支持新屏幕
- 新增 ui_events.c 和 ui_events.h,定义音量控制按钮的点击事件处理函数
- 实现 ui_Screen3.c,构建第三屏幕的 UI 组件和事件回调
- 更新 ui.c 以初始化和加载第三屏幕
- 修改 ble_hid.c 和 ble_hid.h,添加消费者控制功能以支持音量调节
- 更新相关头文件,确保新屏幕与现有结构兼容
2026-07-02 22:23:20 +08:00

98 lines
1.7 KiB
C

#include "ui_handlers.h"
#include <stdbool.h>
#include "ble_hid.h"
#include "boot_button.h"
#include "esp_log.h"
#include "ui_events.h"
static const char *TAG = "ui_handlers";
static void send_hid_combo_or_warn(uint8_t modifier, uint8_t keycode)
{
if (ble_hid_ready()) {
ble_hid_send_combo(modifier, keycode);
} else {
ESP_LOGW(TAG, "HID not ready");
}
}
static void send_consumer_or_warn(uint16_t usage)
{
if (ble_hid_ready()) {
ble_hid_send_consumer(usage);
} else {
ESP_LOGW(TAG, "HID not ready");
}
}
static void on_boot_press(void)
{
send_hid_combo_or_warn(0, HID_KEY_C);
}
void ui_handlers_init(void)
{
boot_button_init(on_boot_press);
}
void update_year_action(lv_event_t * e)
{
(void)e;
}
void click_button_two(lv_event_t * e)
{
(void)e;
send_hid_combo_or_warn(HID_MOD_LCTRL, HID_KEY_C);
}
void click_button_three(lv_event_t * e)
{
(void)e;
send_hid_combo_or_warn(HID_MOD_LCTRL, HID_KEY_V);
}
void click_button_one(lv_event_t * e)
{
(void)e;
send_hid_combo_or_warn(HID_MOD_LCTRL, HID_KEY_X);
}
void click_consumer_vol_up(lv_event_t * e)
{
(void)e;
send_consumer_or_warn(HID_CONSUMER_VOLUME_UP);
}
void click_consumer_vol_down(lv_event_t * e)
{
(void)e;
send_consumer_or_warn(HID_CONSUMER_VOLUME_DOWN);
}
void click_consumer_mute(lv_event_t * e)
{
(void)e;
send_consumer_or_warn(HID_CONSUMER_MUTE);
}
void click_consumer_play_pause(lv_event_t * e)
{
(void)e;
send_consumer_or_warn(HID_CONSUMER_PLAY_PAUSE);
}
void click_consumer_prev(lv_event_t * e)
{
(void)e;
send_consumer_or_warn(HID_CONSUMER_SCAN_PREVIOUS);
}
void click_consumer_next(lv_event_t * e)
{
(void)e;
send_consumer_or_warn(HID_CONSUMER_SCAN_NEXT);
}