feat: 添加第三屏幕及其音量控制功能

- 在 CMakeLists.txt 中添加 ui_Screen3.c 源文件以支持新屏幕
- 新增 ui_events.c 和 ui_events.h,定义音量控制按钮的点击事件处理函数
- 实现 ui_Screen3.c,构建第三屏幕的 UI 组件和事件回调
- 更新 ui.c 以初始化和加载第三屏幕
- 修改 ble_hid.c 和 ble_hid.h,添加消费者控制功能以支持音量调节
- 更新相关头文件,确保新屏幕与现有结构兼容
This commit is contained in:
2026-07-02 22:23:20 +08:00
parent e056a113a2
commit 8254bc7d50
10 changed files with 513 additions and 33 deletions
+45
View File
@@ -18,6 +18,15 @@ static void send_hid_combo_or_warn(uint8_t modifier, uint8_t keycode)
}
}
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);
@@ -50,3 +59,39 @@ 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);
}