94 lines
3.2 KiB
C++
94 lines
3.2 KiB
C++
/*----------------------------------------------------------------------------
|
||
* 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
|