Files
StackChan/firmware/main/hal/board/hal_bridge.h
T
2026-04-20 16:27:36 +08:00

57 lines
1.3 KiB
C++

/*
* SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD
*
* SPDX-License-Identifier: MIT
*/
#pragma once
#include "stackchan_camera.h"
#include <lvgl.h>
#include <driver/i2c_master.h>
#include <string_view>
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