mcu_hi3321_watch/tjd/ui/common/TjdUiScreenManage.cpp
2025-05-26 20:15:20 +08:00

94 lines
3.2 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*----------------------------------------------------------------------------
* Copyright (c) TJD Technologies Co., Ltd. 2025. All rights reserved.
*
* Description: TjdUiScreenManage.cpp
*
* Author: luziquan@ss-tjd.com
*
* Create: 2025-04-07
*--------------------------------------------------------------------------*/
#include "TjdUiScreenManage.h"
#include "sys_config.h"
namespace TJD {
#define ENABLE_PRINT_INFO 0
#if ENABLE_PRINT_INFO
#define static_print_info(...) sys_ui_log_i(__VA_ARGS__) //一般信息打印宏控制
#define static_print_warn(...) sys_ui_log_w(__VA_ARGS__) //警告信息打印一般常开
#define static_print_error(...) sys_ui_log_e(__VA_ARGS__) //错误信息打印一般常开
#define static_print_debug(...) sys_ui_log_d(__VA_ARGS__)
#else
#define static_print_info(...)
#define static_print_warn(...)
#define static_print_error(...)
#define static_print_debug(...)
#endif
void TjdUiScreenManage::SetScreenOnSystime(uint32_t time_ms)
{
const power_display_svr_api_t *display_api = power_display_svr_get_api();
errcode_t ret = display_api->set_screen_auto_off_timeout(time_ms);
if (ret != ERRCODE_SUCC) {
static_print_error("set screen on systime failed %d", ret);
}
}
//设置屏幕亮屏超时时长单位ms。总时长等于:屏幕默认熄屏时长+屏幕超时时长。
void TjdUiScreenManage::SetScreenKeepOnTimeout(uint32_t time_ms)
{
const power_display_svr_api_t *display_api = power_display_svr_get_api();
errcode_t ret = display_api->set_screen_set_keepon_timeout(0);
if (ret != ERRCODE_SUCC) {
static_print_error("set screen keep on timeout failed %d", ret);
}
if (display_api->get_screen_state() != SCREEN_ON) {
display_api->turn_on_screen();
}
ret = display_api->set_screen_set_keepon_timeout(time_ms);
if (ret != ERRCODE_SUCC) {
static_print_error("set screen keep on timeout failed %d", ret);
}
}
void TjdUiScreenManage::ResetScreenKeepOnTimeout(void)
{
const power_display_svr_api_t *display_api = power_display_svr_get_api();
errcode_t ret = display_api->set_screen_set_keepon_timeout(0);
if (ret != ERRCODE_SUCC) {
static_print_error("reset screen keep on timeout failed %d", ret);
}
}
void TjdUiScreenManage::SetScreenAlwayOn(void)
{
const power_display_svr_api_t *display_api = power_display_svr_get_api();
display_api->set_auto_timeout_function(0);
errcode_t ret = display_api->set_screen_set_keepon_timeout(-1);
if (ret != ERRCODE_SUCC) {
static_print_error("set screen always on failed %d", ret);
}
}
void TjdUiScreenManage::CloseScreen(void)
{
const power_display_svr_api_t *display_api = power_display_svr_get_api();
errcode_t ret = display_api->set_screen_set_keepon_timeout(0);
if (ret != ERRCODE_SUCC) {
static_print_error("close screen failed %d", ret);
}
// return display_api->turn_off_screen();
}
void TjdUiScreenManage::DisableBackHomeInterval(void)
{
static_print_debug("set disable go slice");
set_back_to_home_interval(0xffffffff);
}
void TjdUiScreenManage::ResetBackHomeInterval(void)
{
static_print_debug("set go slice time:%d", time_s);
set_back_to_home_interval(TJDUI_DEFAULT_GO_MAIN_SLICE_AFTER_SCREEN_OFF_S);
}
}; // namespace TJD