/* * SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD * * SPDX-License-Identifier: MIT */ #pragma once #include "stackchan_camera.h" #include #include #include namespace hal_bridge { struct TouchPoint_t { int num = 0; int x = -1; int y = -1; }; struct Data_t { TouchPoint_t touchPoint; bool isXiaozhiMode = false; bool isXiaozhiModeToggleEnabled = false; }; void lock(); void unlock(); Data_t& get_data(); void set_touch_point(int num, int x, int y); TouchPoint_t get_touch_point(); bool is_xiaozhi_mode(); void set_xiaozhi_mode(bool mode); void toggle_xiaozhi_chat_state(); void disply_lvgl_lock(); void disply_lvgl_unlock(); lv_disp_t* display_get_lvgl_display(); void xiaozhi_board_init(); void start_xiaozhi_app(); bool is_xiaozhi_ready(); i2c_master_bus_handle_t board_get_i2c_bus(); StackChanCamera* board_get_camera(); int board_get_battery_level(); bool board_is_battery_charging(); void board_set_backlight_brightness(uint8_t brightness, bool permanent = false); uint8_t board_get_backlight_brightness(); void board_set_speaker_volume(uint8_t volume, bool permanent = false); uint8_t board_get_speaker_volume(); void app_play_sound(const std::string_view& sound); } // namespace hal_bridge